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. Puedes usar cualquier modelo de inserción, pero en este artículo se presuponen los modelos de incrustaciones de Azure OpenAI. Demostraciones en el repositorio de ejemplo, pulsa los modelos de inserción de similitud de Azure OpenAI.

Los atributos de dimensión tienen un mínimo de 2 y un máximo de 3072 dimensiones por campo vectorial.

Nota:

Este artículo se aplica a la versión disponible con carácter general del vector de búsqueda, que presupone que el código de la aplicación llama a un recurso externo como Azure OpenAI para la vectorización. Una nueva característica denominada vectorización integrada, actualmente en versión preliminar, ofrece vectorización insertada. La vectorización integrada toma una dependencia de indexadores, conjuntos de aptitudes y la aptitud AzureOpenAIEmbedding o una aptitud personalizada que apunta a un modelo que se ejecuta externamente desde Azure AI Search.

Cómo se usan los modelos

  • Las entradas de consulta requieren que envíes la entrada proporcionada por el usuario a un modelo de inserción que convierta rápidamente texto legible en un vector.

    • Por ejemplo, puedes usar text-embedding-ada-002 para generar incrustaciones de texto e Image Retrieval REST API para incrustaciones de imágenes.

    • 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 que hayas usado para la indexación, usa el mismo modelo para las consultas.

Crear recursos en la misma región

Si quieres los recursos en la misma región, empieza por:

  1. Una región para el modelo de inserción de similitud, actualmente en Europa y Estados Unidos.

  2. Una región para Azure AI Search.

  3. Para admitir consultas híbridas que incluyen clasificación semántica, o si quieres probar la integración de modelos de Machine Learning mediante una aptitud personalizada en una canalización de enriquecimiento con IA , ten en cuenta las regiones que proporcionan 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==0.28.1

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 = "2023-05-15"

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

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 coincidente con contenido de texto, búsquedas entre idiomas o buscar documentos similares.
  • 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.
  • 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