miércoles, marzo 27, 2024

Serverless & Bullet-Proof Web Sites (2 de 2): Web2Blocks & WebScalerAI

En la primera de este artículo: "Serverless & Bullet-Proof Web Sites (1 de 2)" terminamos hablando de cómo utilizar Web3 para hacer paneles de control para botnets o redes sociales utilizando arquitecturas Dapps, pero lo dejé ahí porque quería esperar a la RootedCON 2024 de este año para hablar de los proyectos que hicimos nosotros de continuación de estas ideas.

Figura 1:Serverless & Bullet-Proof Web Sites (2 de 2): Web2Blocks & WebScalerAI

El primero de ellos es Web2Blocks para guardar páginas web en cadenas BlockChain, y el segundo de ellos es WebScalerAI, que busca reducir el tamaño de las páginas web que hay que almacenar en una cade de bloques utilizando GenAI para amplificar texto e imágenes de páginas web. Os los enseño un poco.

Web2Blocks: Un Web back-end en BlockChain

El objetivo de este proyecto es bastante sencillo, se trata de almacenar una página web, por ejemplo un blog como éste, en una estructura de bloques de una cadena de BlockChain, que evite que se pueda censurar siempre y cuando se conozca la estructura de bloques que almacenan la web

Figura 2: La extensión permite anclar una web en una cadena BlockChain

Para ello hicimos una extensión que hace las dos funciones, la de guardar en bloques de la cadena de BlockChain el contenido de la web, y la de buscar una web buscando los bloques que conforman esa web para poder cargarla en el navegador.

Figura 3: Índice de bloques de la web "blog"

Así, se busca el contenido en todos y cada uno de los bloques marcados en el "índice de bloques" de una determinada web - que para nuestra PoC - almacenamos con un nombre simple, y se recompone la página en el cliente. 

Figura 4: La extensión permite buscar web por su nombre

Las posibilidades de esta arquitectura son muchas, para evitar que se borren contenidos, que se censure una web, o para evitar que pueda ser eliminada,

Figura 5: La extensión descarga la web de la cadena de Blockchain y la pinta

Por supuesto, en esta arquitectura se puede aún añadir una capa mayor de protección, permitiendo que la página web esté cifrada y cargada desde un SmartContract, y que este SmartContract solo descifre el contenido de esa web si el usuario ha decido abrir la web con un Latch Web3.

Al final, se trata de jugar con una arquitectura web que utiliza otras estructuras de almacenamiento para, usando las tecnologías Web3 darle más control al creador del contenido de esa web.

Figura 7: Misma web cargada desde HTTP Server y BlockChain

Pero claro, almacenar una página web con muchos elementos, puede tener un tamaño que hagan muy caro utilizar estructuras BlockChain, así que se nos ocurrió que podríamos usar GenAI para reducir el tamaño de la web.

Figura 8: Demo de Web2Blocks en vídeo

Y ahí nació la idea de WebScalerAI, que ahora paso a contaros con esta pequeña PoC que tenemos a continuación.

WebScalerAI: Comprimir y Descomprimir Webs con GenAI & DeepLearning

La idea es bastante sencilla. Se trata de reducir el texto de una web, haciendo una reducción del texto y de las imágenes que se almacenan en el backend, por ejemplo en una cadena de BlockChain como en el caso anterior de Web2Blocks.


Figura 10: Una web con imágenes a mínima calidad y texto en "Prompting"
ocupa 400 Kb

Para ello, los textos se podrían reducir por un "Prompt" para un LLM/SLM que corriera en un entorno Cloud, o como creemos nosotros que será en el futuro, que es en cada aplicación. Esto significarían que tendríamos un navegador web con un SLM como parte de sus funcionalidades.

Figura 11: Expandida esta web pesa 1.5 MB entre texto e imágenes

Así, sólo habría que enviar el Prompt y una extensión del navegador, como la que tenemos en nuestra PoC hace el "inflado" del texto para que se pueda leer.

Figura 12: Super-reducida ocupa 100Kb

Con las imágenes, la misma idea. O bien contar con una generación mediante Prompting de un algoritmos de difusión que corriera en el navegador, o bien mediante el envío de una imagen de un tamaño muy pequeño y su ampliación mediante IA.

Figura 13: Página expandida con WebScalerAI

Para nuestras pruebas hicimos todo tipo de combinaciones, y probamos incluso Transformers en el navegador con la librería transformers.js que tenéis en GitHub - que es un SLM tipo distilbert - y para ampliación de imágenes en el navegador usando DeepLearning (CNN) usamos la librería waifu2x-js que tenéis en GitHub.
Al final, el resultado es el que véis en el vídeo. Una web con un texto y una serie de imágenes se puede comprimir o descomprimir usando GenAI & DeepLearning para lograr - cuando el objetivo sea el mínimo tamaño -, reducir al máximo el peso de una web.


Figura 15: WebScalerAI - Comprimir y Descomprimir Webs
con GenAI & DeepLearning

Al final son sólo pruebas y propuestas de nuestro equipo de "Ideas Locas" para seguir creando pasitos que nos lleven a entender mejor este mundo, y tomar mejores decisiones en todo lo que construimos.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


No hay comentarios:

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares