Tutorial: Elección de modelos de inserción y chat para RAG en Azure AI Search
Una solución RAG creada en Azure AI Search depende de modelos de incrustación para la vectorización y de modelos de chat para la búsqueda conversacional de sus datos.
En este tutorial ha:
- Obtenga información sobre qué modelos de la nube de Azure funcionan con la integración integrada
- Más información sobre los modelos de Azure que se usan para chat
- Implementación de modelos y recopilación de información del modelo para el código
- Configuración del acceso del motor de búsqueda a los modelos de Azure
- Más información sobre las aptitudes y vectorizadores personalizados para adjuntar modelos que no son de Azure
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Requisitos previos
Azure Portal, que se usa para implementar modelos y configurar asignaciones de roles en la nube de Azure.
Un rol de propietario o administrador de acceso o de usuario en su suscripción de Azure, necesario para crear asignaciones de roles. En este tutorial se usan al menos tres recursos de Azure. Las conexiones se autentican mediante Microsoft Entra ID, lo que requiere la capacidad de crear roles. Las asignaciones de roles para conectarse a modelos se documentan en este artículo. Si no puede crear roles, puede usar claves de API en su lugar.
Un proveedor de modelos, como Azure OpenAI, Visión de Azure AI a través de un recurso de varios servicios de Azure AI o Azure AI Foundry.
En este tutorial se usa Azure OpenAI. Se muestran otros proveedores para que conozca las opciones de vectorización integrada.
Azure AI Search, nivel básico o superior, proporciona una identidad administrada que se usa en las asignaciones de roles.
Una región compartida. Para completar todos los tutoriales de esta serie, la región debe admitir tanto Azure AI Search como el proveedor de modelos. Consulte las regiones admitidas para:
La Búsqueda de Azure AI se enfrenta actualmente a una disponibilidad limitada en algunas regiones. Para confirmar el estado de la región, compruebe la lista de regiones de la Búsqueda de Azure AI.
Sugerencia
Consulte este artículo para obtener una lista de regiones superpuestas.
Revisión de modelos que admiten la vectorización integrada
El contenido vectorizado mejora los resultados de la consulta en una solución RAG. La Búsqueda de Azure AI admite una acción de vectorización integrada en una canalización de indexación. También admite la vectorización en el momento de la consulta, la conversión de entradas de texto o de imagen en incrustaciones para un vector de búsqueda. En este paso, identifique un modelo de inserción que funcione para el contenido y las consultas. Si proporciona datos de vector sin procesar y consultas de vectores sin procesar, o si la solución RAG no incluye datos vectoriales, omita este paso.
Las consultas vectoriales que incluyen un paso de conversión de texto a vector deben usar el mismo modelo de inserción que se usó durante la indexación. El motor de búsqueda no produce un error si usa modelos diferentes, pero obtiene resultados deficientes.
Para cumplir el requisito del mismo modelo, elija insertar modelos a los que se pueda hacer referencia a través de aptitudes durante la indexación y a través de vectorizadores durante la ejecución de consultas. La siguiente tabla enumera los pares de habilidades y vectorizadores. Para ver cómo se usan los modelos de inserción, vaya directamente a Crear una canalización de indexación para el código que llama a una aptitud de inserción y un vectorizador coincidente.
Azure AI Search proporciona compatibilidad con aptitudes y vectorizadores para los siguientes modelos de inserción en la nube de Azure.
Cliente | Modelos de incrustración | Aptitud | Vectorizador |
---|---|---|---|
Azure OpenAI | text-embedding-ada-002, text-embedding-3-large, text-embedding-3-small |
AzureOpenAIEmbedding | AzureOpenAIEmbedding |
Visión de Azure AI | multimodal 4.0 1 | AzureAIVision | AzureAIVision |
Catálogo de modelos de Azure AI Foundry | Facebook-DinoV2-Image-Embeddings-ViT-Base, Facebook-DinoV2-Image-Embeddings-ViT-Giant, Cohere-embed-v3-english, Cohere-embed-v3-multilingual |
AML 2 | Catálogo de modelos de Azure AI Foundry |
1 Admite la vectorización de imágenes y texto.
2 Se accede a los modelos implementados en el catálogo de modelos a través de un punto de conexión de AML. Usamos la aptitud AML existente para esta conexión.
Puede usar otros modelos además de los que se enumeran aquí. Para más información, consulte Uso de modelos que no son de Azure para incrustaciones en este artículo.
Nota:
Las entradas de un modelo de inserción suelen ser datos fragmentados. En un patrón RAG de Azure AI Search, la fragmentación se controla en la canalización del indexador, que se trata en otro tutorial de esta serie.
Revisión de los modelos usados para la inteligencia artificial generativa en el momento de la consulta
Azure AI Search no tiene código de integración para los modelos de chat, por lo que debe elegir un LLM con el que esté familiarizado y que cumpla sus requisitos. Puede modificar el código de consulta para probar diferentes modelos sin tener que recompilar un índice ni volver a ejecutar ninguna parte de la canalización de indexación. Revise Buscar y generar respuestas para el código que llama al modelo de chat.
Los siguientes modelos se usan normalmente para una experiencia de búsqueda de chat:
Cliente | Modelos de chat |
---|---|
Azure OpenAI | GPT-35-Turbo, GPT-4, GPT-4o, GPT-4 Turbo |
Los modelos GPT-35-Turbo y GPT-4 están optimizados para funcionar con entradas con formato de conversación.
En este tutorial se usa GPT-4o. Durante las pruebas, hemos detectado que es menos probable que se complemente con sus propios datos de entrenamiento. Por ejemplo, dada la consulta "¿cuánta tierra está cubierta por el agua?", GPT-35-Turbo respondió utilizando su conocimiento integrado de la tierra para indicar que el 71 % de la tierra está cubierto por agua, aunque los datos de muestra no proporcionen ese hecho. En cambio, GPT-4o respondió (correctamente) con "No lo sé".
Implementación de modelos y recopilación de información
Los modelos se deben implementar y consultar a través de un punto de conexión. Tanto las aptitudes relacionadas con la inserción como los vectorizadores necesitan el número de dimensiones y el nombre del modelo.
En esta serie de tutoriales se usan los siguientes modelos y proveedores de modelos:
- Inserción de texto de 3 grandes en Azure OpenAI para incrustaciones
- GPT-4o en Azure OpenAI para la finalización del chat
Debe tener el rol Colaborador de OpenAI de Cognitive Services o uno superior para implementar modelos en Azure OpenAI.
Ir a Azure AI Foundry.
Seleccione Implementaciones en el menú de la izquierda.
Seleccione Implementar modelo>Implementar modelo base.
Seleccione text-embedding-3-large de la lista desplegable y confirme la selección.
Especifique un nombre de implementación. Se recomienda "text-embedding-3-large".
Acepte los valores predeterminados.
Seleccione Implementar.
Repita los pasos anteriores para gpt-4o.
Anote los nombres de modelo y el punto de conexión. La inserción de aptitudes y vectorizadores ensambla el punto de conexión completo internamente, por lo que solo necesita el URI del recurso. Por ejemplo, teniendo en cuenta
https://MY-FAKE-ACCOUNT.openai.azure.com/openai/deployments/text-embedding-3-large/embeddings?api-version=2024-06-01
, el punto de conexión que debe proporcionar en las definiciones de vectorizador y aptitud eshttps://MY-FAKE-ACCOUNT.openai.azure.com
.
Configuración del acceso del motor de búsqueda a los modelos de Azure
Para la ejecución de canalizaciones y consultas, en este tutorial se usa Microsoft Entra ID para la autenticación y los roles para la autorización.
Asígnese usted mismo y los permisos de identidad del servicio de búsqueda en Azure OpenAI. El código de este tutorial se ejecuta localmente. Las solicitudes a Azure OpenAI se originan en el sistema. Además, los resultados de búsqueda del motor de búsqueda se pasan a Azure OpenAI. Por estos motivos, tanto usted como el servicio de búsqueda necesitan permisos en Azure OpenAI.
Inicie sesión en Azure Portal y encuentre su servicio de búsqueda.
Configure Búsqueda de Azure AI para usar una identidad administrada por el sistema.
Busque el recurso de Azure OpenAI.
Seleccione Control de acceso (IAM) en el menú izquierdo.
Seleccione Agregar asignación de roles.
Seleccione Usuario de OpenAI de Cognitive Services.
Seleccione Identidad administrada y, después, seleccione Miembros. Busque la identidad administrada por el sistema para el servicio de búsqueda en la lista desplegable.
A continuación, seleccione Usuario, grupo o entidad de servicio y, después, Miembros. Busque su cuenta de usuario y selecciónela en la lista desplegable.
Asegúrese de que tiene dos entidades de seguridad asignadas al rol.
Seleccione Revisar y asignar para crear la asignación del roles.
Para acceder a los modelos en Azure AI Vision, asigne Usuario de OpenAI de Cognitive Services. Para Azure AI Foundry, asigne Azure AI Developer.
Uso de modelos que no son de Azure para incrustaciones
El patrón para integrar cualquier modelo de inserción es encapsularlo en una aptitud personalizada y un vectorizador personalizado. En esta sección se proporcionan vínculos a artículos de referencia. Para obtener un ejemplo de código que llame a un modelo que no sea de Azure, consulte la demostración de inserciones personalizadas.
Cliente | Modelos de incrustración | Aptitud | Vectorizador |
---|---|---|---|
Any | Any | aptitud personalizada | vectorizador personalizado |