Personalización del nodo
Queremos permitirle crear y ejecutar su propio nodo de servicio de agente. Probablemente no utilizará la base de conocimientos predeterminada de Phi-3 LLM y la guía de París. ¡Así que vamos a mostrarte cómo personalizar tu nodo!
Configuraciones preestablecidas
En gaianet/config.json
contiene todas las opciones de configuración del nodo, como los ajustes de LLM, la colección de vectores para la base de conocimientos y los avisos. Puede editar este archivo directamente para utilizar sus modelos y colecciones de vectores, o puede seleccionar un archivo de configuración diferente. config.json
al inicializar el nodo.
Basta con pasar una URL a la función config.json
en su gaianet init
la URL de la página config.json
debe apuntar al archivo de texto real.
Disponemos de varios config.json
archivos para elegir en este repositorio. Por ejemplo, el siguiente comando inicializa un nodo GaiaNet con un modelo Llama 3 8B:
El subcomando config
Incluso después de inicializar el nodo, puede realizar cambios en su configuración editando el archivo config.json
archivo. Sin embargo, es una buena práctica utilizar el archivo gaianet
CLI para realizar los cambios ya que es más seguro y sencillo.
Después de realizar cualquier cambio en la configuración del nodo, la funcióngaianet init
DEBE ejecutarse.
gaianet config list
muestra el config.json
campos que se pueden modificar.
Selección de un LLM
Huggingface cuenta con más de 10.000 LLM de código abierto para elegir. Cada uno de ellos tiene diferentes tamaños (los modelos más grandes son más capaces, pero más caros de ejecutar), capacidades únicas (por ejemplo, algunos pueden soportar una gran longitud de contexto, no tienen censura, o sobresalen en matemáticas), experiencia en el dominio (como la codificación o la medicina), y/o estilos (algunos responden en código, pueden hablar como un pirata, etc.).
Realizar cambios en el archivo del modelo, la plantilla de avisos y los parámetros de longitud del contexto del modelo te permitirá sustituir el LLM predeterminado de tu nodo por un modelo alternativo ajustado. Los parámetros varían en función del modelo, pero se pueden encontrar en las fichas de modelo de la organización gaianet Huggingface.
Por ejemplo, el siguiente comando cambia el LLM a un modelo Llama 3 8B:
El modelo llama 3 8B requiere al menos 16 GB de RAM.
Si ninguno de los modelos ajustados publicados es perfecto para su caso de uso, también puede ajustar su propio LLM siguiendo estas guías. Su nodo GaiaNet puede ejecutar sus propios modelos afinados.
En
--chat-url
podría apuntar a un archivo local bajo$HOME/gaianet
en lugar de una URL pública. Eso te permite utilizar un archivo de modelo LLM entrenado o afinado de forma privada.
Selección de una base de conocimientos
Una característica clave de GaiaNet es que los usuarios pueden crear y desplegar bases de conocimiento propias en el nodo para complementar el LLM. Cada base de conocimientos es un archivo de instantáneas para una colección de vectores. Puede utilizar bases de conocimiento ya hechas, pero le animamos a crear su propia base de conocimiento. Deberá hacer lo siguiente
especifique la dirección URL de la colección de vectores (es decir, la dirección
instantánea
osnapshot.tar.gz
archivo) en elinstantánea
opción.utilizar el mismo modelo de incrustación que generó esta colección de vectores.
modificar el
system_prompt
para dotar al modelo de conocimientos previos.modificar el
rag_prompt
para ordenar al modelo que responda a la pregunta cuando se recupere el contexto de la colección de vectores.
El siguiente ejemplo cambia la base de conocimientos del nodo de "Guía de París" a "Guía de Londres":
En
--snapshot
podría apuntar a un archivo local bajo$HOME/gaianet
en lugar de una URL pública. Eso te permite utilizar una instantánea de colección de vectores privada.
Dependiendo de la calidad y el tamaño de los vectores, es posible que también tenga que cambiar el qdrant-
para personalizar el comportamiento de recuperación.
qdrant-limit
establece el número máximo de contextos relevantes que se añadirán a la pregunta. Si su base de conocimientos se compone de grandes secciones de texto (es decir, cada capítulo del libro es un vector), probablemente debería hacer esto 1 o 2 para limitar la longitud de la solicitud a un tamaño razonable.qdrant-score-threshold
es la "puntuación" mínima de coincidencia que debe alcanzar el contenido de conocimiento para ser considerado "relevante". Depende de la calidad del texto de conocimiento y del modelo de incrustación. En general, esta puntuación debe ser superior a 0,5 para reducir el contexto irrelevante en la pregunta.
El modelo de incrustación codifica y transforma el texto en vectores para poder almacenarlo, buscarlo y recuperarlo. Para un material en un contexto diferente, es posible que necesites un modelo de incrustación distinto para conseguir un rendimiento óptimo. La tabla de clasificación MTEB es un buen lugar para ver las referencias de rendimiento de los modelos de incrustación. Puedes encontrar muchos de ellos en la organización gaianet de Huggingface.
Personalización de los avisos
En config.json
También puedes personalizar los avisos. A menudo, las preguntas se adaptan al LLM ajustado o a la base de conocimientos para generar respuestas óptimas del nodo.
En --sistema-prompt
establece un indicador del sistema. Proporciona el fondo y la "personalidad" del nodo. Cada solicitud de API puede establecer su propio aviso del sistema.
En --rag-prompt
es el mensaje que se añade después del mensaje del sistema (o consulta del usuario). Introduce el contexto RAG recuperado de la base de datos de vectores, que le sigue.
En --rag-policy
especifica el lugar en el que rag-prompt
y el contexto deben ir. Por defecto, su valor es mensaje de sistema
y pone el contexto en el prompt del sistema. Pero también puedes ponerlo en último-mensaje-usuario
que pone el rag-prompt
y el contexto frente al último mensaje del usuario.
Próximos pasos
Recuerde reiniciar el nodo después de realizar cambios en la configuración.
Última actualización