Construcción, evaluación y seguimiento de un sistema RAG local avanzado |  Mistral 7b + LlamaIndex + W&B |  de Nikita Kiselov |  enero de 2024

Explore la construcción de un sistema RAG avanzado en su computadora. Guía paso a paso del ciclo completo con código.

Imagen del autor | Mistral + LlamaIndex + W&B

Recuperación de Generación Aumentada (RAG) es una poderosa técnica de PNL que combina grandes modelos de lenguaje con acceso selectivo al conocimiento. Nos permite reducir las alucinaciones LLM al proporcionar las piezas relevantes del contexto de nuestros documentos. La idea de este artículo es mostrar cómo puede construir su sistema RAG utilizando LLM que se ejecuta localmente, qué técnicas se pueden utilizar para mejorarlo y, finalmente, cómo realizar un seguimiento de los experimentos y comparar los resultados en W&B.

Cubriremos los siguientes aspectos clave:

  1. Edificio un sistema RAG local de referencia utilizando Mistral-7b y LlamaIndex.
  2. evaluando su desempeño en términos de fidelidad y pertinencia.
  3. Seguimiento experimentos de un extremo a otro utilizando pesos y sesgos (W&B).
  4. Implementar trapo avanzado técnicas, como nodos jerárquicos y reclasificación.

El cuaderno completo, incluidos los comentarios detallados y el código completo, está disponible en GitHub.

Imagen generada por el DALLE | Máster en Derecho local

Primero, instale la biblioteca LlamaIndex. Comenzaremos configurando el entorno y cargando los documentos para nuestros experimentos. LlamaIndex admite una variedad de cargadores de datos personalizados, lo que permite una integración de datos flexible.

# Loading the PDFReader from llama_index
from llama_index import VectorStoreIndex, download_loader

# Initialise the custom loader
PDFReader = download_loader("PDFReader")
loader = PDFReader()

# Read the PDF file
documents = loader.load_data(file=Path("./Mixtral.pdf"))p

Ahora podemos configurar nuestro LLM. Como estoy usando MacBook con M1, es extremadamente útil usarlo llama.cpp. Funciona de forma nativa tanto con Metal como con Cuda y permite ejecutar LLM con RAM limitada. Para instalarlo puedes consultar su repositorio oficial o intenta ejecutar: