Coautores:
- Prakul Agarwal, gerente sénior de productos, aprendizaje automático en MongoDB
- Jerry Liu, cofundador de LlamaIndex
Los modelos de lenguaje grande (LLM) como ChatGPT han revolucionado la forma en que los usuarios pueden obtener respuestas a sus preguntas. Sin embargo, el «conocimiento» de los LLM está restringido por aquello en lo que fueron capacitados, lo que para ChatGPT significa información disponible públicamente en Internet hasta septiembre de 2021. ¿Cómo pueden los LLM responder preguntas utilizando fuentes de conocimiento privadas como los datos de su empresa y desbloquear su verdadero poder transformador? ?
Este blog discutirá cómo LlamaIndex y MongoDB pueden permitirle lograr este resultado rápidamente. El cuaderno adjunto proporciona un tutorial de código sobre cómo consultar cualquier documento PDF mediante consultas en inglés.
Tradicionalmente, la IA se ha utilizado para analizar datos, identificar patrones y hacer predicciones basadas en datos existentes. Los avances recientes han llevado a que la IA sea mejor en la generación de cosas nuevas (en lugar de solo analizar las cosas existentes). Esto se conoce como IA generativa. La IA generativa está impulsada principalmente por modelos de aprendizaje automático llamados modelos de lenguaje grande (LLM). Los LLM están pre-entrenados en grandes cantidades de texto disponible públicamente. Hay varios LLM propietarios de compañías como OpenAI, Cohere, AI21, así como muchos LLM emergentes de código abierto como Llama, Dolly, etc.
También te puede interesarTodo sobre la Memoria a Corto Plazo LargoHay 2 escenarios principales donde el conocimiento de los LLM se queda corto:
- Datos privados, como la base de conocimientos interna de su empresa, distribuidos en archivos PDF, Google Docs, páginas Wiki y aplicaciones como Salesforce y Slack
- Datos más nuevos que cuando los LLM fueron capacitados por última vez. Pregunta de ejemplo: ¿Quién es el primer ministro británico más reciente?
Actualmente, existen 2 paradigmas principales para ampliar las asombrosas capacidades de razonamiento y generación de conocimiento de los LLM: ajuste fino del modelo y aprendizaje en contexto.
El ajuste fino del modelo puede ser más complejo y costoso de poner en funcionamiento. También hay algunas preguntas abiertas, como cómo eliminar información de un modelo ajustado para asegurarse de que cumple con las leyes locales (p. ej., RGPD en Europa) y, para cambiar los datos, debe volver a ajustarlos constantemente.
El aprendizaje en contexto requiere la inserción de nuevos datos como parte de las indicaciones de entrada al LLM. Herramientas como LlamaIndex y MongoDB Developer Data Platform pueden ayudar a realizar este aumento de datos de manera segura, de alto rendimiento y rentable.
También te puede interesarTUBERÍAS DE PNLLlamaIndex proporciona una interfaz simple y flexible para conectar LLM con datos externos.
- Ofrece conectores de datos a varias fuentes de datos y formatos de datos (API, PDF, documentos, etc.).
- Proporciona índices sobre los datos estructurados y no estructurados para su uso con LLM.
- Estructura la información externa para que pueda usarse con las limitaciones de la ventana de solicitud de cualquier LLM.
- Expone una interfaz de consulta que recibe una solicitud de entrada y devuelve una salida aumentada por conocimiento.
Es fácil almacenar los documentos ingeridos (es decir, objetos de nodo), indexar metadatos, etc. en MongoDB usando las abstracciones incorporadas en LlamaIndex. Hay una opción para almacenar los «documentos» como una colección real en MongoDB usando MongoDocumentStore
. Hay una opción para persistir los «Índices» usando el MongoIndexStore
.
Almacenar los documentos e índices de LlamaIndex en una base de datos se vuelve necesario en un par de escenarios:
- Los casos de uso con grandes conjuntos de datos pueden requerir más que almacenamiento en memoria.
- Ingerir y procesar datos de varias fuentes (por ejemplo, PDF, Google Docs, Slack).
- El requisito de mantener continuamente actualizaciones de las fuentes de datos subyacentes.
Ser capaz de persistir estos datos permite procesar los datos una vez y luego poder consultarlos para varias aplicaciones posteriores.
También te puede interesarEstoy de vuelta, Deep Learning y PNLMongoDB ofrece un clúster Atlas gratuito para siempre en el servicio de nube pública de su elección. Esto se puede lograr muy rápidamente siguiendo este tutorial. O puede comenzar directamente aquí.
LlamaIndex utiliza los módulos LLM de LangChain (otro marco popular para crear aplicaciones de IA generativa) y permite personalizar el LLM subyacente que se usará (el modelo predeterminado es el texto-davinci-003 de OpenAI). LlamaIndex siempre usa el LLM elegido para construir la respuesta final y, a veces, también se usa durante la creación del índice.
- Conecte fuentes de conocimiento privadas mediante conectores LlamaIndex (ofrecidos a través de LlamaHub).
- Cargar en los Documentos. Un documento representa un contenedor ligero alrededor de la fuente de datos.
- Analice los objetos Documentos en objetos Nodo. Los nodos representan «fragmentos» de documentos de origen (por ejemplo, un fragmento de texto). Estos objetos de nodo pueden conservarse en una colección de MongoDB o mantenerse en la memoria.
- Construir índice a partir de nodos. Hay varios tipos de índices en LlamaIndex como «Índice de lista» (esto almacena nodos como cadena secuencial), «Índice de almacenamiento de vectores» (esto almacena cada nodo y una incrustación correspondiente en un almacenamiento de vectores). Según el tipo de índice, estos índices pueden persistir en una colección MongoDB o una base de datos vectorial.
- Finalmente consulta el index. Aquí es donde se analiza la consulta, se recuperan los nodos relevantes mediante el uso de índices y se proporcionan como entrada a un «modelo de lenguaje grande» (LLM). Diferentes tipos de consultas pueden usar diferentes índices.
Queremos consultar el «Informe técnico de GPT-4» publicado por OpenAI en marzo de 2023. Este era un documento PDF con 100 páginas. Esta es una publicación reciente, por lo que no se incluyó como parte de los datos de capacitación originales de ChatGPT.
Aquí tenéis el resumen de las distintas consultas que nos podemos hacer al PDF.
También te puede interesarMachine Learning en Inteligencia ArtificialConsulta
«¿Cómo le va a GPT4 en el examen de la barra?»
Respuesta
«GPT-4 se desempeña bien en el examen de la barra uniforme, con una puntuación en el 10% superior de los examinados (Tabla 1, Figura 4)».
Uso de tokens LLM
Uso total de tokens de incrustación: 18 tokens
Uso total de tokens LLM: 1889 tokensConsulta
«¿Cuánto mejor es GPT-4 en la reducción de alucinaciones sobre GPT-3.5?»
Respuesta
«GPT-4 mejora el último modelo GPT-3.5 en 19 puntos porcentuales, con ganancias significativas en todos los temas».
Consulta
«¿Qué problemas se observaron después de ajustar GPT-4 con RHLF?»
Respuesta
“Después de ajustar GPT-4 con RHLF, los problemas observados incluyeron que el modelo se volvió demasiado cauteloso en ciertas formas, como rechazar solicitudes inocuas y cubrirse excesivamente o “rechazar en exceso”. Además, el modelo todavía era bastante frágil y, a veces, mostraba comportamientos no deseados basados en avisos en los que las instrucciones para los etiquetadores no estaban bien especificadas».
Consulta
“¿Qué es RBRM?”
Respuesta
“RBRM significa Modelo de recompensa basado en reglas. Es una técnica utilizada para proporcionar una señal de recompensa adicional al modelo de política GPT-4 durante el ajuste fino de PPO en un subconjunto de indicaciones de capacitación. El RBRM toma tres cosas como entrada: el indicador (opcional), el resultado del modelo de política y una rúbrica escrita por humanos (p. ej., un conjunto de reglas en estilo de opción múltiple) sobre cómo se debe evaluar este resultado. El RBRM luego clasifica el resultado según la rúbrica”.
Las capturas de pantalla a continuación muestran cómo el documento PDF se convierte en «nodos LlamaIndex» e «índices LlamaIndex» y se conserva en MongoDB.
Más detalles pueden ser encontrados aquí. ¡También echa un vistazo al cuaderno de referencia a continuación!
Lectura de datos de MongoDB: enlace
Varios índices en LlamaIndex: enlace
Cuaderno de referencia
https://colab.research.google.com/drive/1SNIeLW38Nvx6MtL3-_LPS2XTIzqD4gS6?usp=sharing