Generación e índices aumentados de recuperación

Nota:

Inteligencia artificial de Azure Studio está actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Este artículo habla de la importancia y la necesidad de la generación aumentada de recuperación (RAG) y el Índice en la IA generativa.

¿Qué es RAG?

Algunos aspectos básicos primero. Los modelos de lenguaje grande (LLM), como ChatGPT, se entrenan en datos públicos de Internet que estaban disponibles en el momento en que se entrenaron. Pueden responder a preguntas relacionadas con los datos en los que se han entrenado. Es posible que estos datos públicos no sean suficientes para satisfacer todas sus necesidades. Es posible que quiera que le respondan a preguntas basadas en sus datos privados. O, simplemente, los datos públicos pueden haber quedado obsoletos. La solución a este problema es Generación aumentada de recuperación (RAG), un patrón usado en IA que usa un LLM para generar respuestas con sus propios datos.

¿Cómo funciona RAG?

RAG es un patrón que usa los datos con un LLM para generar respuestas específicas de los datos. Cuando un usuario realiza una pregunta, se busca el almacén de datos en función de la entrada del usuario. A continuación, la pregunta del usuario se combina con los resultados coincidentes y se envía al LLM mediante un aviso (instrucciones explícitas a una IA o a un modelo de aprendizaje automático) para que genere la respuesta deseada. Esto se puede ilustrar de la siguiente manera.

Screenshot of the RAG pattern.

¿Qué es un índice y por qué lo necesito?

RAG usa los datos para generar respuestas a la pregunta del usuario. Para que el RAG funcione bien, tenemos que encontrar una manera de buscar y enviar sus datos de forma fácil y rentable a los LLM. Esto se logra mediante un índice. Un índice es un almacén de datos que permite buscar datos de forma eficaz. Esto es muy útil en RAG. Un índice se puede optimizar para las VM mediante la creación de vectores (texto o datos convertidos en secuencias numéricas mediante un modelo de inserción). Un buen índice suele tener funcionalidades de búsqueda eficaces, como búsquedas de palabras clave, búsquedas semánticas, búsquedas vectoriales o una combinación de ellas. Este patrón RAG optimizado puede ilustrarse del siguiente modo.

Screenshot of the RAG pattern with index.

Azure AI proporciona un activo de Índice para utilizar con el patrón RAG. El recurso Índice contiene información importante como dónde se almacena su índice, cómo acceder a su índice, cuáles son los modos en los que se puede buscar en su índice, si su índice tiene vectores, cuál es el modelo de incrustación utilizado para los vectores, etc. El índice de Azure AI usa Azure AI Search como almacén de índices principal o recomendado. Azure AI Search es un recurso de Azure que admite la recuperación de información sobre los datos vectoriales y textuales almacenados en los índices de búsqueda.

El índice de Azure AI también admite FAISS (Facebook AI Similarity Search), que es una biblioteca de código abierto que proporciona un almacén basado en archivos local. FAISS solo admite funcionalidades de búsqueda de vectores y solo se admite a través del SDK.

Pasos siguientes