📄 Litepaper
GaiaNet: Red de agentes GenAI
Abstracto
Los modelos de lenguaje grande de código abierto especializados, ajustados y mejorados con RAG son elementos clave en las aplicaciones emergentes de agentes de IA. Sin embargo, esas aplicaciones de agente también presentan desafíos únicos para la computación en la nube tradicional y la infraestructura SaaS, incluidos los nuevos requisitos para la portabilidad de aplicaciones, la virtualización, el aislamiento de seguridad, los costos, la privacidad de los datos y la propiedad.
GaiaNet es una infraestructura informática descentralizada que permite a todo el mundo crear, desplegar, escalar y monetizar sus propios agentes de IA que reflejen sus estilos, valores, conocimientos y experiencia. Un nodo GaiaNet consta de un tiempo de ejecución de aplicaciones multiplataforma y de alto rendimiento, un LLM afinado, un modelo de incrustación de conocimiento, una base de datos vectorial, un administrador de solicitudes, un servidor API abierto y un sistema de complementos para llamar a herramientas y funciones externas utilizando salidas LLM. Puede ser implementado por cualquier trabajador del conocimiento como un gemelo digital y ofrecerse como un servicio de API web. Se podría crear una nueva clase de activos negociables y un mercado a partir de bases de conocimientos y componentes individualizados. Los nodos similares de GaiaNet están organizados en dominios de GaiaNet, que ofrecen servicios de agentes de IA confiables y confiables al público. El nodo y los dominios de GaiaNet están gobernados por la DAO (Organización Autónoma Descentralizada) de GaiaNet. A través de los contratos inteligentes Purpose Bound Money, la red GaiaNet es un mercado descentralizado para los servicios de agentes de IA.
Introducción
La aparición de ChatGPT y el Gran Modelo de Lenguaje (LLM) ha revolucionado la forma en que los humanos producen y consumen conocimiento. En un año, las aplicaciones nativas de IA han pasado de ser chatbots a copilotos y a agentes.
Los agentes de IA evolucionarían cada vez más de herramientas de apoyo (similares a los copilotos) a entidades autónomas capaces de completar tareas de forma independiente. — Dr. Andrew Ng en la cumbre Sequoia Capital AI Ascent 2024
Los agentes son aplicaciones de software que pueden completar tareas por sí solos y de forma autónoma como un humano. El agente puede comprender la tarea, planificar los pasos para completar la tarea, ejecutar todos los pasos, manejar errores y excepciones, y entregar los resultados. Si bien un LLM potente podría actuar como el "cerebro" del agente, necesitamos conectarnos a fuentes de datos externas (ojos y oídos), bases de conocimientos e indicaciones específicas del dominio (habilidades), almacenes de contexto (memoria) y herramientas externas (manos). Para las tareas de los agentes, a menudo necesitamos personalizar el propio LLM
- para reducir las alucinaciones en un dominio específico.
- para generar respuestas en un formato específico (por ejemplo, un esquema JSON).
- para responder a preguntas "políticamente incorrectas" (por ejemplo, para analizar exploits de CVE para un agente en el dominio de seguridad).
- y para responder a las solicitudes en un estilo específico (por ejemplo, para imitar a una persona).
Los agentes son software complejo que requiere una cantidad significativa de ingeniería y recursos. Hoy en día, la mayoría de los agentes son de código cerrado y están alojados en LLM basados en SaaS. Algunos ejemplos populares son los GPT y los copilotos de Microsoft/GitHub en los LLM de OpenAI, y Duet en los LLM Gemini de Google.
Sin embargo, como hemos comentado, un requisito clave para los agentes es personalizar y adaptar su LLM subyacente y su pila de software para tareas específicas del dominio, un área en la que el SaaS centralizado funciona muy mal. Por ejemplo, con ChatGPT, cada pequeña tarea debe ser manejada por un modelo muy grande. También es enormemente caro ajustar o modificar cualquier modelo de ChatGPT. Los LLM de talla única son perjudiciales para el caso de uso del agente en cuanto a capacidades, alineación y estructura de costos. Además, los LLM alojados en SaaS carecen de controles de privacidad sobre cómo se puede utilizar y compartir el conocimiento privado del agente. Debido a estas deficiencias, es difícil para los trabajadores del conocimiento individuales crear y monetizar agentes para su propio dominio y tareas en plataformas SaaS como OpenAI, Google, Anthropic, Microsoft y AWS.
En este artículo, proponemos una plataforma de software descentralizada y una red de protocolo para agentes de IA para todos. En concreto, nuestros objetivos son dobles.
Objetivo #1: Empodere a las personas para que incorporen su conocimiento y experiencia privados en las aplicaciones personales de agentes de LLM. Esas aplicaciones tienen como objetivo realizar tareas de conocimiento y usar herramientas como lo haría el individuo, pero también reflejan el estilo y los valores del individuo.
Objetivo #2: Permita que las personas proporcionen y amplíen sus agentes de LLM como servicios, y obtengan una compensación por su experiencia y trabajo.
GaiaNet es "YouTube para el conocimiento y las habilidades".
Código abierto y descentralización
A partir de abril de 2024, hay más de 6000 LLM de código abierto publicados en Hugging face. En comparación con los LLM de código cercano, como GPT-4, los LLM de código abierto ofrecen ventajas en privacidad, costo y sesgo sistemático. Incluso con el rendimiento general del control de calidad, los LLM de código abierto están cerrando rápidamente la brecha con las contrapartes de código cercano.
Para los casos de uso de agentes de IA, se ha demostrado que los LLM más pequeños pero específicos de la tarea a menudo superan a los modelos generales más grandes.
Sin embargo, es difícil para las personas y las empresas implementar y orquestar múltiples LLM ajustados en su propia infraestructura de GPU heterogénea. La compleja pila de software para los agentes, así como la compleja interacción con herramientas externas, son frágiles y propensas a errores.
Además, los agentes LLM tienen características de escalado completamente diferentes a las de los servidores de aplicaciones anteriores. El LLM es extremadamente intensivo desde el punto de vista computacional. Por lo general, un servidor de agente LLM solo puede atender a un usuario a la vez y, a menudo, se bloquea durante segundos. La necesidad de escalado ya no es manejar muchas solicitudes asincrónicas en un solo servidor, sino equilibrar la carga entre muchos servidores discretos en la escala de Internet.
El proyecto GaiaNet proporciona un SDK y un tiempo de ejecución multiplataforma y altamente eficiente para LLM de código abierto ajustados con bases de conocimiento patentadas, indicaciones personalizadas, respuestas estructuradas y herramientas externas para la llamada a funciones. Un nodo GaiaNet puede iniciarse en minutos en cualquier dispositivo personal, en la nube o periférico. A continuación, puede ofrecer servicios a través de una red web3 incentivada.
Nodo GaiaNet
La unidad operativa básica de la red GaiaNet es un nodo. Un nodo GaiaNet es una pila de software optimizada que permite a cualquier persona técnicamente competente ejecutar un agente de IA por su cuenta. La pila de software en el nodo GaiaNet consta de los siguientes 7 componentes clave.
1 Tiempo de ejecución de la aplicación. Las aplicaciones de GaiaNet se ejecutan en un sandbox ligero, seguro y de alto rendimiento llamado WasmEdge. Como proyecto de código abierto gestionado por la Fundación Linux y la CNCF, el tiempo de ejecución de WasmEdge funciona a la perfección con las principales herramientas nativas de la nube, como Docker, containerd, CRI-O, Podman y Kubernetes. También es la máquina virtual elegida por las principales cadenas de bloques públicas para ejecutar contratos inteligentes dentro y fuera de la cadena de forma segura y eficiente.
WasmEdge es un tiempo de ejecución multiplataforma y de alto rendimiento. Puede ejecutar modelos de IA en casi todas las CPU, GPU y aceleradores de IA a velocidad nativa, lo que lo convierte en un tiempo de ejecución ideal para agentes de IA descentralizados.
2 LLM afinado. El nodo GaiaNet es compatible con casi todos los LLM de código abierto, modelos multimodales (por ejemplo, modelos de visión grande o LVM), modelos de texto a imagen (por ejemplo, Stable Diffusion) y modelos de texto a vídeo. Eso incluye todos los modelos ajustados que utilizan datos personales o patentados.
El propietario del nodo puede ajustar los modelos de código abierto utilizando una amplia variedad de herramientas. Por ejemplo, el propietario del nodo puede ajustar un LLM utilizando historiales de chat personales para que el LLM ajustado pueda imitar su propio estilo de habla. También puede afinar un LLM para enfocarlo en un dominio de conocimiento específico para reducir las alucinaciones y mejorar la calidad de las respuestas a las preguntas en ese dominio. Un LLM ajustado puede garantizar la salida de texto JSON que coincida con un esquema predeterminado para su uso con herramientas externas.
Además de los LLM, el propietario del nodo podía ajustar los modelos de Stable Diffusion con sus propias fotos para generar imágenes que se parecieran a ella.
3 Modelo de incrustación. El nodo GaiaNet necesita gestionar un cuerpo de conocimiento público o propietario para el agente de IA. Es una característica clave que permite al agente especializarse y superar a modelos mucho más grandes en un dominio específico. Los modelos de incrustación son LLM especialmente entrenados que convierten las oraciones de entrada en una representación vectorial, en lugar de generar finalizaciones. Dado que los modelos de incrustación se entrenan a partir de LLM, pueden "incrustar" el "significado" de las oraciones en los vectores para que oraciones similares se encuentren cerca unas de otras en el espacio de alta dimensión ocupado por esos vectores.
Con el modelo de incrustación, un nodo de GaiaNet puede ingerir un cuerpo de texto, imágenes, PDF, enlaces web, archivos de audio y vídeo, y generar una colección de vectores de incrustación basados en su contenido. El modelo de incrustación también convierte las preguntas y conversaciones de los usuarios en vectores, lo que permite al nodo GaiaNet identificar rápidamente los contenidos de su base de conocimientos que son relevantes para la conversación actual.
4 Base de datos vectorial. Los vectores de incrustación que forman la base de conocimiento del nodo GaiaNet se almacenan en el propio nodo para un rendimiento óptimo y la máxima privacidad. El nodo GaiaNet incluye una base de datos vectorial Qdrant.
5 Mensajes personalizados. Además de los argumentos de ajuste y conocimiento, la forma más fácil de personalizar un LLM para nuevas aplicaciones es simplemente solicitarlo. Al igual que los humanos, los LLM son notables aprendices de una sola vez. Simplemente puede darle un ejemplo de cómo realizar una tarea, y aprenderá y realizará tareas similares por sí mismo. La ingeniería de indicaciones es un campo práctico para investigar y desarrollar dichas solicitudes.
Además, las indicaciones efectivas podrían depender en gran medida del modelo en uso. Un mensaje que funciona bien para un modelo grande, como Mixtral 8x22b, probablemente no funcionará bien para un modelo pequeño como Mistral 7b.
El nodo GaiaNet puede soportar varios prompts diferentes que se eligen y utilizan dinámicamente en las aplicaciones. Por ejemplo
- En
system_prompt
es una introducción general a la tarea del agente que se supone que debe realizar el nodo. A menudo contiene una personalidad para ayudar al LLM a responder con el tono adecuado. Por ejemplo, elsystem_prompt
para un asistente de enseñanza universitaria podría ser: "Eres un asistente de enseñanza para la clase 101 de ciencias de la computación de UC Berkeley. Explique los conceptos y responda las preguntas en detalle. No responda a ninguna pregunta que no esté relacionada con las matemáticas o la informática". - En
rag_prompt
es un mensaje de prefijo que se inserta dinámicamente delante de los resultados de búsqueda de la base de conocimientos en un chat RAG. Podría ser algo como esto: "Por favor, responda a la pregunta basándose en hechos y opiniones en el contexto que se indica a continuación. No hagas nada que no esté en el contexto. ---------”
La comunidad de LLM ha desarrollado muchas indicaciones útiles para diferentes casos de uso de aplicaciones. El nodo GaiaNet te permite gestionarlos y experimentar fácilmente con ellos.
A través de nuestro SDK para desarrolladores, los propietarios y operadores de GaiaNet podrían personalizar la lógica de la generación dinámica de avisos a su manera. Por ejemplo, un nodo de GaiaNet podría realizar una búsqueda en Google de cualquier pregunta del usuario y añadir los resultados de la búsqueda en el mensaje como contexto.
6 Llamadas a funciones y uso de herramientas. El LLM no solo es excelente para generar lenguaje humano, sino que también sobresale en la generación de instrucciones de máquinas. A través del ajuste fino y la ingeniería de avisos, podríamos lograr que algunos LLM generen consistentemente objetos JSON estructurados o código informático en muchas tareas del lenguaje, como resumir y extraer elementos clave de un párrafo de texto.
El nodo GaiaNet permite especificar el formato de salida del texto generado. Puede asignarle un archivo de especificación gramatical para hacer cumplir que las respuestas siempre se ajusten a un esquema JSON predefinido.
Una vez que el LLM devuelve una respuesta JSON estructurada, el agente normalmente necesita pasar el JSON a una herramienta que realice la tarea y devuelva una respuesta. Por ejemplo, la pregunta del usuario podría ser.
¿Cómo es el clima en Singapur?
El LLM genera la siguiente respuesta JSON.
{"tool":"get_current_weather", "location":"Singapore","unit":"celsius"}
El nodo GaiaNet debe saber cuál es la herramienta asociada a get_current_weather y luego invocarla. Los propietarios y operadores de nodos de GaiaNet pueden configurar cualquier número de herramientas externas mapeando un nombre de herramienta con un punto final de servicio web. En el ejemplo anterior, la herramienta get_current_weather podría estar asociada a un servicio web que toma estos datos JSON. El nodo GaiaNet envía el JSON al punto final del servicio web a través de HTTPS POST y recibe una respuesta.
42
A continuación, opcionalmente, alimenta la respuesta al LLM para generar una respuesta en lenguaje humano.
El clima actual en Singapur es de 42C.
A través del SDK de nodo GaiaNet, los desarrolladores no se limitan a utilizar servicios web. Pueden escribir plugins para procesar las respuestas de LLM localmente en el nodo. Por ejemplo, el LLM puede devolver código Python, que se puede ejecutar localmente en un sandbox y para que el nodo GaiaNet realice una operación compleja.
7 El servidor de API. Todos los nodos de GaiaNet deben tener la misma API para preguntas y respuestas. Eso permite que las aplicaciones front-end funcionen con, y potencialmente se equilibren la carga con cualquier nodo de GaiaNet. Elegimos admitir la especificación OpenAI API, que permite que los nodos de GaiaNet se conviertan en reemplazos directos de los puntos finales de OpenAI API para un gran ecosistema de aplicaciones.
El servidor de API se ejecuta de forma segura y multiplataforma en el tiempo de ejecución de WasmEdge. Une todos los demás componentes en el nodo GaiaNet. Recibe solicitudes de usuario, genera una incrustación a partir de la solicitud, busca en la base de datos vectorial, agrega resultados de búsqueda al contexto de solicitud, genera una respuesta LLM y, a continuación, opcionalmente utiliza la respuesta para realizar llamadas a funciones. El servidor API también proporciona una interfaz de usuario de chatbot basada en la web para que los usuarios chateen con el LLM perfeccionado mejorado con RAG en el nodo.
Red GaiaNet
Si bien cada nodo de GaiaNet ya es un poderoso agente de IA capaz de responder preguntas complejas y realizar acciones, los nodos individuales no son adecuados para proporcionar servicios públicos. Hay varias razones importantes.
- Para los consumidores y usuarios públicos, es muy difícil juzgar la fiabilidad de los nodos individuales de GaiaNet. La información errónea dañina podría ser difundida por operadores de nodos maliciosos.
- Para los propietarios y operadores de nodos de GaiaNet, no existe ningún incentivo económico para proporcionar dichos servicios al público, lo que podría ser muy costoso de ejecutar.
- Los servidores de agentes de IA tienen características de escalado muy diferentes a las de los servidores de aplicaciones de Internet tradicionales. Cuando el agente está procesando una solicitud de usuario, normalmente ocupa todos los recursos informáticos del hardware. En lugar de utilizar software para escalar usuarios simultáneos en un solo servidor, el desafío de GaiaNet es escalar a muchos nodos idénticos diferentes para una aplicación grande.
Esos desafíos han dado lugar al dominio GaiaNet, que forma la base de la red web3 de GaiaNet. Un dominio GaiaNet es una colección de nodos GaiaNet disponibles bajo un único nombre de dominio de Internet. El operador del dominio decide qué nodos de GaiaNet se pueden registrar bajo el dominio y pone los servicios de nodo a disposición del público. Por ejemplo, un dominio de GaiaNet podría ser un asistente de enseñanza de Ciencias de la Computación para UC Berkeley. El dominio podría proporcionar servicios a través de https://cs101.gaianet.berkeley.edu
. El operador del dominio debe hacer lo siguiente.
- Verifique y admita nodos individuales para que se registren en el dominio. Todos esos nodos deben cumplir con los requisitos, como el LLM, la base de conocimientos y las solicitudes, establecidos por el operador del dominio para garantizar la calidad del servicio. El registro de nodos en un dominio se puede realizar a través de una lista blanca o una lista negra. Depende del operador del dominio.
- Supervise el rendimiento de cada nodo en tiempo real y elimine los inactivos.
- Promociona las aplicaciones de chatbot de "asistente de enseñanza" al público objetivo.
- Establezca el precio de los servicios de API.
- Equilibrio de carga entre nodos activos.
- Recibir pagos de los usuarios.
- Pagar a los nodos por sus servicios.
Cada nodo de GaiaNet tiene un ID de nodo único en forma de dirección ETH. La clave privada asociada con la dirección ETH se almacena en el nodo. Una vez que un nodo se registra con éxito en un dominio, tiene derecho a recibir pagos tanto de los ingresos por servicio como de los premios de red del dominio. El dominio podría enviar pagos directamente a la dirección ETH del nodo. O bien, el dominio podría proporcionar un mecanismo para que un operador de nodo registre varios nodos bajo una sola dirección de Metamask, como firmar una frase de desafío utilizando las claves privadas del nodo. En ese caso, el operador del nodo recibirá pagos agregados en su cuenta de Metamask para todos los nodos asociados.
Cada dominio de GaiaNet tiene un contrato inteligente asociado que se utiliza para los pagos en custodia. Es similar al modelo de pago con crédito de OpenAI, en el que los usuarios compran créditos primero y luego los consumen con el tiempo. Cuando el usuario pague en el contrato inteligente, se le emitirá automáticamente un token de acceso. Utiliza este token para realizar llamadas a la API al dominio, que luego se equilibra la carga a los nodos aleatorios del dominio. A medida que el usuario consume esos servicios, su fondo en el contrato se agota y el token de acceso deja de funcionar si ya no tiene saldo.
El precio y el pago del servicio API son determinados por el operador del dominio. Por lo general, se denomina en monedas estables USD. El operador de dominio paga una parte de los ingresos a los operadores de nodos que proporcionaron los servicios. La red GaiaNet es un mercado descentralizado de servicios de agentes.
Los fondos bloqueados en los contratos de dominio de GaiaNet son para un único propósito: consumir los servicios API. Se llama Dinero Ligado a un Propósito.
Un aspecto clave del protocolo GaiaNet es que los operadores de dominios son "proveedores de confianza" en el ecosistema de nodos descentralizados. La red de protocolo está diseñada para incentivar la confianza de los operadores a través de diseños de tokenómica como la minería y el staking. Los nodos, dominios, usuarios y desarrolladores de GaiaNet forman una DAO para hacer crecer la red y beneficiar a todos los contribuyentes.
Token GaiaNet
El token GaiaNet es un token de utilidad diseñado para facilitar las transacciones, apoyar la gobernanza y fomentar la confianza en la red. Sirve para tres propósitos principales.
- Como token de gobernanza DAO, los titulares pueden participar en el establecimiento de las reglas de la red.
- Como token de participación, los titulares avalan la confiabilidad de los operadores de dominios. Los stakers obtienen una parte de los ingresos por servicios del operador de dominio. Pero también podrían reducirse si el operador del dominio se comporta mal, como difundir información errónea o proporcionar servicios poco fiables.
- Como token de pago, el token GaiaNet podría depositarse en el contrato de custodia del dominio y utilizarse para pagar los servicios a lo largo del tiempo.
La utilidad de pago del token GaiaNet está diseñada para equilibrar la oferta y la demanda de la red. El valor del activo del token GaiaNet se determina en el momento en que entra o sale del contrato inteligente de custodia en función de los tipos de cambio en tiempo real.
Los consumidores de servicios podrían asegurar ahorros gracias a la posible apreciación del token. Por ejemplo, si un usuario deposita 100 dólares en tokens GaiaNet en el contrato, y cuando se paga el dominio y los nodos, el valor del token ha subido a 110 dólares, habría recibido 110 dólares en servicios de agente.
Por el contrario, si el precio del token cae, los proveedores de servicios (dominios y nodos) ahora tienen la oportunidad de "minar" los tokens a bajo precio. Si los tokens iniciales de USD 100 solo valen USD 90 ahora, los proveedores de servicios obtendrán más tokens por cada unidad de electricidad y cómputo que proporcionen. Eso incentiva a más nodos a unirse a la red y especular sobre un aumento posterior en el valor de los tokens.
Un ejercicio: se prevé que OpenAI alcance los 5.000 millones de dólares en ARR en 2024. Supongamos que la mayoría de los clientes empresariales pagan trimestralmente, es decir, 1.250 millones de dólares de capitalización de mercado en circulación, además del valor empresarial actual de OpenAI si emitieran un token de pago. Se prevé que el tamaño total del mercado de servicios de IA alcance los 2 billones de dólares en unos pocos años. Eso se traduce en una capitalización de mercado de USD 500 mil millones solo para un token de utilidad de pago.
Mercado de componentes para activos de IA
GaiaNet es una plataforma de desarrollo para crear tus servicios de agente. Le proporcionamos herramientas para que lo haga.
- Herramientas para generar conjuntos de datos de ajuste y realizar ajustes en máquinas con CPU y GPU.
- Herramientas para ingerir documentos y crear incrustaciones vectoriales para la base de conocimientos.
- SDK basado en Rust para generar y gestionar mensajes de forma dinámica.
- SDK basado en Rust para ampliar la capacidad del agente para invocar herramientas y software en el nodo.
Para los desarrolladores que no desean operar nodos, estamos construyendo un mercado para
- Modelos afinados
- Bases de conocimiento y conjuntos de datos
- Complementos de llamada a funciones
Todos esos componentes son activos basados en blockchain representados por NFT. Un operador de nodo podría comprar NFT para los componentes que desea utilizar y compartir los ingresos del servicio con los desarrolladores de componentes. Eso permite que se emitan activos diversos y generadores de flujo de caja desde el ecosistema GaiaNet.
Conclusión
GaiaNet proporciona herramientas de código abierto para que individuos y equipos creen servicios de agentes utilizando sus conocimientos y habilidades patentados. Los desarrolladores podían crear LLM ajustados, colecciones de conocimientos y complementos para el agente, y emitir activos basados en esos componentes. El protocolo GaiaNet hace que esos nodos sean detectables y accesibles a través de los dominios de GaiaNet.