Este cuaderno contiene los pasos y el código para demostrar el apoyo de la generación de recuperación a unión en Watsonx.ai. Presenta comandos para la recuperación de datos, la construcción y consulta de la base de conocimiento y las pruebas de modelos.
Use el modelo LLM, Langchain y Milvus para crear un sistema de generación aumentada de recuperación (RAG). Esto nos permitirá hacer preguntas sobre nuestros documentos (que no se incluyeron en los datos de capacitación), sin atreverse al modelo de lenguaje grande (LLM). Cuando usa RAG, si se le da una pregunta, primero hace un paso de recuperación para obtener cualquier documento relevante de una base de datos especial, una base de datos vectorial donde se indexaron estos documentos.
La generación aumentada de recuperación (RAG) es un patrón versátil que puede desbloquear una serie de casos de uso que requieren un retiro de información objetivo de información, como consultar una base de conocimiento en lenguaje natural.
Gran Modelos de idiomas (LLM) ha demostrado su capacidad para comprender el contexto y proporcionar respuestas precisas a varias tareas de PNL, incluida la resumen, las preguntas y respuestas, cuando se solicitan. Si bien pueden proporcionar muy buenas respuestas a las preguntas sobre la información con la que fueron capacitados, tienden a alucinar cuando el tema trata sobre información que "no saben", es decir, no se incluyó en sus datos de capacitación. La generación aumentada de recuperación combina recursos externos con LLM. Los dos componentes principales de un trapo son, por lo tanto, un retriever y un generador.
La parte de recuperación se puede describir como un sistema que puede codificar nuestros datos para que se puedan recuperar fácilmente las partes relevantes de él al consultarlos. La codificación se realiza utilizando incrustaciones de texto, es decir, un modelo capacitado para crear una representación vectorial de la información. La mejor opción para implementar un Retriever es una base de datos vectorial. Como base de datos vectorial, existen múltiples opciones, tanto de código abierto como de productos comerciales. Pocos ejemplos son ChromadB, Mevius, Faiss, Pinecone, Weaviate. Nuestra opción en este cuaderno será una instancia local de ChromAdB (persistente).
Para la parte del generador, la opción obvia es un LLM. En este cuaderno utilizaremos un modelo cuantizado de LLAMA V2, de la colección Kaggle Models.
La orquestación del Retriever y el generador se realizará usando Langchain. Una función especializada de Langchain nos permite crear el generador receptor en una línea de código.
En su forma más simple, RAG requiere 3 pasos:
690,000 palabras de texto limpiado de Wikipedia.
Hay tres archivos de preguntas, uno para cada año de estudiantes: S08, S09 y S10.
Los archivos "Preguntaswerpairs.txt" contienen tanto las preguntas como las respuestas. Las columnas en este archivo son las siguientes:
Las preguntas que se consideraron pobres fueron descartadas de este conjunto de datos.
Con frecuencia, hay múltiples líneas con la misma pregunta, que aparecen si esas preguntas fueron respondidas por múltiples individuos. https://www.kaggle.com/rtatman/questionanswer-dataset