Ir al contenido principal

Uso de MLflow AI Gateway y Llama 2 para construir aplicaciones de IA generativa

Logre una mayor precisión utilizando la Generación Aumentada por Recuperación (RAG) con sus propios datos

Data Intelligence Platforms

Para crear bots de soporte al cliente, grafos de conocimiento internos o sistemas de Q&A, los clientes suelen utilizar aplicaciones de generación aumentada por recuperación (RAG) que aprovechan modelos preentrenados junto con sus datos propietarios. Sin embargo, la falta de barreras de protección para la gestión segura de credenciales y la prevención de abusos impide que los clientes democraticen el acceso y el desarrollo de estas aplicaciones. Recientemente anunciamos la MLflow AI Gateway, una puerta de enlace de API de nivel empresarial y altamente escalable que permite a las organizaciones gestionar sus LLM y ponerlos a disposición para la experimentación y la producción. Hoy nos complace anunciar la ampliación de AI Gateway para dar un mejor soporte a las aplicaciones de RAG. Ahora las organizaciones pueden centralizar la gobernanza de las API de modelos alojados de forma privada (a través de Databricks Model Serving), las API propietarias (OpenAI, Co:here, Anthropic), y ahora las API de modelos abiertos a través de MosaicML para desarrollar e implementar aplicaciones RAG con confianza. 

En esta publicación de blog, explicaremos cómo puede crear e implementar una aplicación RAG en la plataforma de IA de Databricks Lakehouse utilizando el modelo Llama2-70B-Chat para la generación de texto y el modelo Instructor-XL para las incrustaciones de texto, que están alojados y optimizados a través de las API de inferencia de nivel Starter de MosaicML. Usar modelos alojados nos permite comenzar rápidamente y tener una forma rentable para experimentar con un bajo rendimiento. 

La aplicación RAG que estamos creando en este blog responde preguntas sobre jardinería y da recomendaciones para el cuidado de las plantas. 

Si ya está familiarizado con RAG y solo quiere ver un ejemplo de cómo se integra todo, consulte nuestro demo (con notebooks de ejemplo) que le muestra cómo usar Llama2, la inferencia de MosaicML y la búsqueda vectorial para crear su aplicación RAG en Databricks.

¿Qué es RAG?

RAG es una arquitectura popular que permite a los clientes mejorar el rendimiento del modelo aprovechando sus propios datos. Esto se hace recuperando datos o documentos relevantes y proporcionándolos como contexto para el LLM. RAG demostró ser exitoso en el soporte de chatbots y sistemas de preguntas y respuestas que necesitan mantener información actualizada o acceder a conocimientos específicos del dominio.

Utilice la AI Gateway para establecer barreras de protección para llamar a las API de modelos

El recientemente anunciado MLflow AI Gateway permite a las organizaciones centralizar la gobernanza, la gestión de credenciales y los límites de tasa para sus API de modelos, incluidos los LLM de SaaS, a través de un objeto llamado Ruta. La distribución de Rutas permite a las organizaciones democratizar el acceso a los LLM y, al mismo tiempo, garantizar que el comportamiento del usuario no abuse del sistema ni lo haga colapsar. El AI Gateway también proporciona una interfaz estándar para consultar los LLM a fin de facilitar la actualización de los modelos detrás de las rutas a medida que se lanzan nuevos modelos de última generación. 

Solemos ver que las organizaciones crean una Ruta por caso de uso y muchas Rutas pueden apuntar al mismo punto de conexión de la API del modelo para garantizar que se utilice por completo. 

Para esta aplicación RAG, queremos crear dos rutas de AI Gateway: una para nuestro modelo de embedding y otra para nuestro modelo de generación de texto. Usamos modelos abiertos para ambos porque queremos tener un camino compatible para el ajuste fino o el alojamiento privado en el futuro para evitar la dependencia del proveedor. Para ello, utilizaremos la API de inferencia de MosaicML. Estas API proporcionan acceso rápido y fácil a modelos de código abierto de última generación para la experimentación rápida y precios basados en tokens. MosaicML admite los modelos MPT y Llama2 para la finalización de texto, y los modelos Instructor para los embeddings de texto. En este ejemplo, usaremos Llama2-70b-Chat, que fue entrenado con 2 billones de tokens y ajustado por Meta para el diálogo, la seguridad y la utilidad, e Instructor-XL, un modelo de embedding de 1.2 mil millones de parámetros con ajuste fino de instrucciones de HKUNLP.

Es fácil crear una ruta para Llama2-70B-Chat usando el nuevo soporte para las API de inferencia de MosaicML en el AI Gateway:

De manera similar a la ruta de completado de texto configurada anteriormente, podemos crear otra ruta para Instructor-XL disponible a través de la API de inferencia de MosaicML

Para obtener una clave de API para los modelos alojados de MosaicML, regístrate aquí.

Usa LangChain para ensamblar el recuperador y la generación de texto

Ahora necesitamos crear nuestro índice vectorial a partir de nuestras incrustaciones de documentos para poder realizar búsquedas de similitud de documentos en tiempo real. Podemos usar LangChain y apuntarlo a nuestra AI Gateway Route para nuestro modelo de incrustaciones:

 

Luego, debemos unir nuestra plantilla de prompt y el modelo de generación de texto:

La cadena RetrievalQA encadena los dos componentes para que los documentos recuperados de la base de datos de vectores alimenten el contexto del modelo de resumen de texto:

Ahora puede registrar la cadena utilizando el flavor de LangChain de MLflow y desplegarla en un endpoint de Model Serving de CPU de Databricks. Usar MLflow proporciona automáticamente el versionado de modelos para añadir más rigor a su proceso de producción.

Después de completar la prueba de concepto, experimente para mejorar la calidad

Dependiendo de sus requisitos, hay muchos experimentos que puede ejecutar para encontrar las optimizaciones adecuadas para llevar su aplicación a producción. Usando las API de seguimiento y evaluación de MLflow, puede registrar cada parámetro, modelo base, métrica de rendimiento y salida del modelo para su comparación. La nueva IU de evaluación en MLflow facilita la comparación de las salidas de los modelos una al lado de la otra y todos los datos de seguimiento y evaluación de MLflow se almacenan en formatos consultables para un análisis más profundo. Algunos experimentos que vemos comúnmente:

  1. Latencia - Pruebe modelos más pequeños para reducir la latencia y el costo
  2. Calidad: prueba a hacer un ajuste fino de un modelo de código abierto con tus propios datos. Esto puede ayudar con el conocimiento específico del dominio y a cumplir con un formato de respuesta deseado.
  3. Privacidad - Pruebe alojar el modelo de forma privada en Databricks LLM-Optimized GPU Model Serving y use el AI Gateway para aprovechar al máximo el endpoint en distintos casos de uso

Comienza a desarrollar aplicaciones de RAG hoy mismo en Lakehouse AI con MosaicML

La plataforma de IA de Databricks Lakehouse permite a los desarrolladores crear y desplegar rápidamente aplicaciones de IA generativa con confianza.

Para replicar la aplicación de chat anterior en su organización, instale nuestra demostración completa del chatbot RAG directamente en su workspace usando Llama2, la inferencia de MosaicML y Vector Search en el Lakehouse.

Explora el demo del chatbot LLM RAG

 

Explora más a fondo y mejora tus aplicaciones RAG:

No te pierdas ninguna publicación de Databricks.

Suscríbete a nuestro blog y recibe las últimas publicaciones en tu bandeja de entrada.

¿Qué sigue?

image

Data Science e ML

October 31, 2023/9 min de leitura

Anunciando as métricas de LLM-como-juiz do MLflow 2.8 e as Melhores Práticas para Avaliação de LLM de Aplicações RAG, Parte 2

Creating High Quality RAG Applications with Databricks

Anúncios

December 6, 2023/7 min de leitura

Criando aplicativos RAG de alta qualidade com a Databricks