Desarrollo de una Aplicación de Preguntas y Respuestas Basada en RAG con Modelos Llama3 en SageMaker JumpStart

Elena Digital López

Las organizaciones generan vastas cantidades de datos que son de su propiedad, y es fundamental obtener información de estos datos para mejorar los resultados comerciales. La inteligencia artificial generativa (IA generativa) y los modelos fundacionales (FMs) juegan un papel importante en la creación de aplicaciones utilizando los datos de una organización que mejoran las experiencias de los clientes y la productividad de los empleados.

Los FMs suelen ser preentrenados en un gran corpus de datos disponible abiertamente en internet. Funcionan bien en tareas de comprensión del lenguaje natural, como la resumación, generación de texto y respuesta a preguntas sobre una amplia variedad de temas. Sin embargo, a veces pueden generar falsas respuestas o respuestas inexactas cuando responden preguntas para las cuales no han sido entrenados. Para prevenir respuestas incorrectas y mejorar la precisión de las respuestas, se utiliza una técnica denominada Generación Aumentada por Recuperación (RAG) para proporcionar a los modelos datos contextuales.

En este post, se proporciona una guía paso a paso para crear una aplicación RAG lista para la empresa, como un bot de respuestas a preguntas. Se usa el modelo de texto generativo Llama3-8B FM y el modelo de incrustación de texto BGE Large EN v1.5 para generar incrustaciones a partir de Amazon SageMaker JumpStart. También se muestra cómo se puede utilizar FAISS como almacén de incrustaciones y paquetes como LangChain para interactuar con los componentes y ejecutar inferencias dentro de un cuaderno de SageMaker Studio.

SageMaker JumpStart es una herramienta poderosa dentro de la plataforma de ML de Amazon SageMaker que proporciona a los practicantes de ML un centro integral de modelos fundacionales disponibles públicamente y propietarios.

Llama 3 (desarrollado por Meta) viene en dos tamaños de parámetros: 8B y 70B con una longitud de contexto de 8K, que puede soportar una amplia gama de casos de uso con mejoras en el razonamiento, generación de código y seguimiento de instrucciones. Llama 3 utiliza una arquitectura de transformador solo decodificador y un nuevo tokenizador que mejora el rendimiento del modelo con un tamaño de 128K. Además, Meta mejoró los procedimientos de post-entrenamiento que redujeron sustancialmente las tasas de negativa falsa, mejoraron la alineación y aumentaron la diversidad en las respuestas del modelo.

El modelo de incrustación BGE Large se refiere a BAAI general embedding large. Está desarrollado por BAAI y está diseñado para mejorar las capacidades de recuperación dentro de los grandes modelos de lenguaje (LLMs). El modelo admite tres métodos de recuperación: recuperación densa (BGE-M3), recuperación léxica (LLM Embedder) y recuperación de múltiples vectores (BGE Embedding Reranker).

RAG es una técnica que permite la integración de fuentes de conocimiento externas con FM. RAG involucra tres pasos principales: recuperación, augmentación y generación.

Primero, se recupera contenido relevante de una base de conocimiento externa basada en la consulta del usuario. Luego, se combina la información recuperada con la entrada original del usuario, creando un prompt aumentado. Finalmente, el FM procesa este prompt aumentado, que incluye tanto la consulta como la información contextual recuperada, y genera una respuesta adaptada al contexto específico, incorporando el conocimiento relevante de la fuente externa.

Para implementar esta solución se necesitan tres pasos principales: despliegue de modelos, procesamiento y vectorización de datos, y ejecución de inferencias.

Para demostrar esta solución, hay disponible un cuaderno de muestra en el repositorio de GitHub.

El cuaderno está impulsado por una instancia ml.t3.medium para demostrar el despliegue del modelo como un punto final de API utilizando un SDK a través de SageMaker JumpStart. Se pueden utilizar estos puntos finales del modelo para explorar, experimentar y optimizar la comparación de técnicas avanzadas de aplicación RAG utilizando LangChain. También se ilustra la integración del almacén de incrustaciones FAISS en el flujo de trabajo de RAG, destacando su papel en el almacenamiento y la recuperación de incrustaciones para mejorar el rendimiento de la aplicación.

En esta publicación, hemos mostrado una poderosa solución RAG utilizando SageMaker JumpStart para desplegar el modelo Llama 3 8B Instruct y el modelo de incrustación BGE Large En v1.5.

Demostramos cómo crear un robusto almacén de vectores procesando documentos de varios formatos y generando incrustaciones. Este almacén de vectores facilita la recuperación de documentos relevantes basados en las consultas de los usuarios utilizando los algoritmos de recuperación de LangChain. También mostramos la capacidad de preparar prompts personalizados adaptados para el modelo Llama 3, asegurando respuestas conscientes del contexto, y presentamos estas respuestas específicas del contexto en un formato amigable para el usuario.

Scroll al inicio