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

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

Se recomienda la vectorización integrada, que proporciona fragmentación y vectorización de datos integrados. La vectorización integrada toma una dependencia de indexadores, conjuntos de aptitudes y aptitudes integradas o personalizadas que apuntan a un modelo que se ejecuta externamente desde Búsqueda de Azure AI.

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

La vectorización integrada requiere que los recursos estén en la misma región:

  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 una inserción que puede pegar 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 VSCode?",
    engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)

La salida es una matriz vectorial de 1536 dimensiones.

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 del modelo de inserción de características de vector de búsqueda puede 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 Fragmentos de documentos grandes para soluciones de vector de búsqueda.

  • 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