Búsqueda híbrida mediante vectores y texto completo en Azure AI Search

La búsqueda híbrida es una combinación de consultas de texto completo y vectores que se ejecutan en un índice de búsqueda que contiene contenido de texto sin formato que permite búsquedas e inserciones generadas. Con fines de consulta, la búsqueda híbrida es:

  • Una solicitud de consulta única que incluye los parámetros de consulta search y vectors
  • Que se ejecutan en paralelo
  • Con resultados combinados en la respuesta de la consulta, puntuados mediante Fusion de clasificación recíproca (RRF)

En este artículo se explican los conceptos, ventajas y limitaciones de la búsqueda híbrida. Vea este vídeo insertado para obtener una explicación y demostraciones breves sobre cómo la recuperación híbrida contribuye a la creación de aplicaciones de estilo de chat y copiloto de alta calidad.

¿Cómo funciona la búsqueda híbrida?

En Azure AI Search, los campos vectoriales que contienen incrustaciones pueden residir junto con campos textuales y numéricos, lo que le permite formular consultas híbridas que se ejecutan en paralelo. Las consultas híbridas pueden aprovechar las funcionalidades existentes, como el filtrado, el uso de facetas, la ordenación, los perfiles de puntuación y la clasificación semántica en una sola solicitud de búsqueda.

La búsqueda híbrida combina los resultados de consultas de texto completo y vectores, que usan diferentes funciones de clasificación, como BM25 y HNSW. Un algoritmo de Fusión de clasificación recíproca (RRF) combina los resultados. La respuesta de consulta proporciona solo un conjunto de resultados, mediante RRF para elegir las coincidencias más relevantes de cada consulta.

Estructura de una consulta híbrida

La búsqueda híbrida se basa en tener un índice de búsqueda que contenga campos de varios tipos de datos, como texto sin formato y números, coordenadas geográficas para la búsqueda geoespacial y vectores para una representación matemática de un fragmento de texto. Puede usar casi todas las funcionalidades de consulta de Azure AI Search con una consulta vectorial, excepto para las interacciones del lado cliente, como autocompletar y sugerencias.

Una consulta híbrida representativa podría ser la siguiente (observe que el vector se ha recortado por motivos de brevedad):

POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2023-11-01
  content-type: application/JSON
{
    "count": true,
    "search": "historic hotel walk to restaurants and shopping",
    "select": "HotelId, HotelName, Category, Description, Address/City, Address/StateProvince",
    "filter": "geo.distance(Location, geography'POINT(-77.03241 38.90166)') le 300",
    "facets": [ "Address/StateProvince"], 
    "vectors": [
        {
            "value": [ <array of embeddings> ]
            "k": 7,
            "fields": "DescriptionVector"
        },
        {
            "value": [ <array of embeddings> ]
            "k": 7,
            "fields": "Description_frVector"
        }
    ],
    "queryType": "semantic",
    "queryLanguage": "en-us",
    "semanticConfiguration": "my-semantic-config"
}

Entre los puntos clave se incluyen:

  • search especifica una consulta de búsqueda de texto completo.
  • vectors para las consultas vectoriales, que pueden ser múltiples y tener como destino varios campos vectoriales. Si el espacio de inserción incluye contenido multilingüe, las consultas vectoriales pueden encontrar la coincidencia sin necesidad de analizadores de idioma ni traducción.
  • select especifica los campos que se van a devolver en los resultados, que pueden ser campos de texto legibles.
  • filters puede especificar la búsqueda geoespacial u otros criterios de inclusión y exclusión como, por ejemplo, si el estacionamiento está incluido. La consulta geoespacial de este ejemplo busca hoteles en un radio de 300 kilómetros desde Washington D.C.
  • facets se puede usar para calcular cubos de facetas en los resultados que se devuelven de las consultas híbridas.
  • queryType=semantic invoca la clasificación semántica, aplicando la comprensión de lectura automática para exponer resultados de búsqueda más pertinentes.

Los filtros y las facetas tienen como destino estructuras de datos dentro del índice que son distintas de los índices invertidos usados para la búsqueda de texto completo y los índices vectoriales usados para el vector de búsqueda. Por lo tanto, cuando se ejecutan filtros y operaciones con facetas, el motor de búsqueda puede aplicar el resultado operativo a los resultados de la búsqueda híbrida en la respuesta.

Observe que no hay ningún orderby en la consulta. Los criterios de ordenación explícitos invalidan los resultados clasificados por relevancia, por lo que si desea similitud y relevancia BM25, omita la ordenación en la consulta.

Una respuesta de la consulta anterior podría tener este aspecto:

{
    "@odata.count": 3,
    "@search.facets": {
        "Address/StateProvince": [
            {
                "count": 1,
                "value": "NY"
            },
            {
                "count": 1,
                "value": "VA"
            }
        ]
    },
    "value": [
        {
            "@search.score": 0.03333333507180214,
            "@search.rerankerScore": 2.5229012966156006,
            "HotelId": "49",
            "HotelName": "Old Carrabelle Hotel",
            "Description": "Spacious rooms, glamorous suites and residences, rooftop pool, walking access to shopping, dining, entertainment and the city center.",
            "Category": "Luxury",
            "Address": {
                "City": "Arlington",
                "StateProvince": "VA"
            }
        },
        {
            "@search.score": 0.032522473484277725,
            "@search.rerankerScore": 2.111117362976074,
            "HotelId": "48",
            "HotelName": "Nordick's Motel",
            "Description": "Only 90 miles (about 2 hours) from the nation's capital and nearby most everything the historic valley has to offer.  Hiking? Wine Tasting? Exploring the caverns?  It's all nearby and we have specially priced packages to help make our B&B your home base for fun while visiting the valley.",
            "Category": "Boutique",
            "Address": {
                "City": "Washington D.C.",
                "StateProvince": null
            }
        }
    ]
}

La búsqueda híbrida combina los puntos fuertes del vector de búsqueda y la búsqueda de palabras clave. La ventaja del vector de búsqueda es que encuentra información conceptualmente similar a la consulta de búsqueda, incluso si no hay coincidencias de palabras clave en el índice invertido. La ventaja de la búsqueda de palabra clave o texto completo es la precisión, junto con la posibilidad de aplicar la clasificación semántica que mejora la calidad de los resultados iniciales. En algunos escenarios, como la consulta en códigos de producto, jerga muy especializada, fechas y nombres de personas, puede funcionar mejor la búsqueda de palabras clave, ya que puede identificar coincidencias exactas.

Las pruebas comparativas en conjuntos de datos reales y de puntos de referencia indican que la recuperación híbrida con clasificación semántica ofrece ventajas significativas en la pertinencia de la búsqueda.

En el vídeo siguiente se explica cómo la recuperación híbrida le proporciona datos de base óptimos para generar respuestas útiles mediante inteligencia artificial.

Consulte también

Rendimiento del vector de búsqueda con recuperación híbrida y clasificación (blog técnico)