Compartir a través de


Generación de incrustaciones para consultas y documentos de búsqueda

Azure AI Search no hospeda modelos de inserción, por lo que uno de los desafíos es crear vectores para entradas y salidas de consulta. Puede usar cualquier modelo de inserción compatible, pero en este artículo se presuponen modelos de inserción de Azure OpenAI para la ilustración.

Se recomienda la vectorización integrada, que proporciona fragmentación y vectorización de datos integrados. La vectorización integrada depende de indexadores, conjuntos de habilidades y habilidades integradas o personalizadas que apuntan a un modelo que se ejecuta externamente desde Azure AI Search. Varias aptitudes integradas apuntan a insertar modelos en Azure AI Foundry, lo que hace que la vectorización integrada sea la solución más sencilla para resolver el desafío de inserción.

Si desea controlar usted mismo la fragmentación y vectorización de datos, en el repositorio de ejemplos encontrará demostraciones que le mostrarán cómo integrar con otras soluciones de la comunidad.

Cómo se usan los modelos de inserción en consultas vectoriales

  • Las entradas de consulta son vectores, texto o imágenes que se convierten en vectores durante el procesamiento de consultas. La solución integrada en Búsqueda de Azure AI consiste en usar un vectorizador.

    Como alternativa, también puede controlar la conversión usted mismo pasando la entrada de consulta a un modelo de inserción de su elección. Para evitar la limitación de velocidad, puedes implementar la lógica de reintento en la carga de trabajo. Para la demostración de Python, usamos tenacity.

  • Los resultados de la consulta son documentos coincidentes que se encuentran en un índice de búsqueda. El índice de búsqueda debe haberse cargado previamente con documentos que tengan uno o varios campos vectoriales con incrustaciones. Sea cual sea el modelo de inserción que haya usado para la indexación, use ese mismo modelo para las consultas.

Crear recursos en la misma región

Aunque la vectorización integrada con modelos de inserción de Azure OpenAI no requiere que los recursos estén en la misma región, el uso de la misma región puede mejorar el rendimiento y reducir la latencia.

  1. Compruebe las regiones de un modelo de inserción de texto.

  2. Encuentre la misma región para Búsqueda de Azure AI.

  3. Para admitir consultas híbridas que incluyen clasificación semántica, o si desea probar la integración de modelos de Machine Learning mediante una habilidad personalizada en una canalización de enriquecimiento de IA, seleccione una región de la Búsqueda de Azure AI que proporcione esas características.

Generación de una inserción para una consulta improvisada

El siguiente código de Python genera un embebido que puede insertar en la propiedad "values" de una consulta vectorial.

!pip install openai

import openai

openai.api_type = "azure"
openai.api_key = "YOUR-API-KEY"
openai.api_base = "https://YOUR-OPENAI-RESOURCE.openai.azure.com"
openai.api_version = "2024-02-01"

response = openai.Embedding.create(
    input="How do I use Python in VS Code?",
    engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)

La salida es una matriz vectorial de 1536 dimensiones.

Elección de un modelo de inserción en Azure AI Foundry

En el portal de Azure AI Foundry, tiene la opción de crear un índice de búsqueda al agregar conocimientos al flujo de trabajo del agente. Un asistente le guía por los pasos. Cuando se le pida que proporcione un modelo de inserción que vectorice el contenido de texto sin formato, puede usar uno de los siguientes modelos admitidos:

  • inserción de texto-3-grande
  • text-embedding-3-small
  • text-embedding-ada-002
  • Cohere-embed-v3-english
  • Cohere-embed-v3-multilingual

Su modelo ya debe estar implementado y debe tener permiso para tener acceso a él. Para más información, consulte Implementación de modelos de IA en el portal de Azure AI Foundry.

Sugerencias y recomendaciones para la integración de modelos de inserción

  • Identificar casos de uso: evaluar los casos de uso específicos en los que la integración de modelos de incrustación para funciones de búsqueda vectorial pueden añadir valor a la solución de búsqueda. Esto puede incluir contenido de imagen multilingüe o coincidente con contenido de texto, búsqueda multilingüe o búsqueda de similitud.

  • Diseño de una estrategia de fragmentación: los modelos de inserción tienen límites en el número de tokens que pueden aceptar, lo que introduce un requisito de fragmentación de datos para archivos grandes. Para obtener más información, consulte Dividir documentos grandes para soluciones de búsqueda de vectores.

  • Optimizar el coste y el rendimiento: la búsqueda de vectores puede consumir muchos recursos y está sujeta a límites máximos, por lo que considera la posibilidad de vectorizar solo los campos que contienen significado semántico. Reduzca el tamaño del vector para que pueda almacenar más vectores por el mismo precio.

  • Elegir el modelo de inserción adecuado: selecciona un modelo adecuado para tu caso de uso específico, como incrustaciones de palabras para búsquedas basadas en texto o incrustaciones de imágenes para búsquedas visuales. Considera la posibilidad de usar modelos previamente entrenados como text-embedding-ada-002 desde OpenAI o Image Retrieval REST API desde Azure AI Computer Vision.

  • Normalizar longitudes de vector: asegúrate de que las longitudes de vector se normalizan antes de almacenarlas en el índice de búsqueda para mejorar la precisión y el rendimiento de la búsqueda de similitud. La mayoría de los modelos previamente entrenados ya están normalizados, pero no todos.

  • Ajustar el modelo: si es necesario, ajusta el modelo seleccionado en los datos específicos del dominio para mejorar tu rendimiento y relevancia para la aplicación de búsqueda.

  • Probar e iterar: prueba y ajusta continuamente la integración del modelo de inserción para lograr el rendimiento de búsqueda deseado y la satisfacción del usuario.

Pasos siguientes