Pesquisa híbrida usando vetores e texto completo na Pesquisa de IA do Azure

A pesquisa híbrida é uma combinação de texto completo e consultas vetoriais que são executadas em relação a um índice de pesquisa que contém conteúdo de texto sem formatação pesquisável e incorporações geradas. Para fins de consulta, a pesquisa híbrida é:

  • Uma única solicitação de consulta que inclui parâmetros e searchvectors parâmetros de consulta
  • Execução em paralelo
  • Com resultados mesclados na resposta da consulta, pontuados usando Reciprocal Rank Fusion (RRF)

Este artigo explica os conceitos, benefícios e limitações da pesquisa híbrida. Assista a este vídeo incorporado para obter uma explicação e demonstrações curtas de como a recuperação híbrida contribui para aplicativos de bate-papo e copiloto de alta qualidade.

Como funciona a pesquisa híbrida?

No Azure AI Search, os campos vetoriais que contêm incorporações podem viver ao lado de campos textuais e numéricos, permitindo que você formule consultas híbridas que são executadas em paralelo. As consultas híbridas podem aproveitar as funcionalidades existentes, como filtragem, facetagem, classificação, pontuação de perfis e classificação semântica em uma única solicitação de pesquisa.

A pesquisa híbrida combina resultados de consultas vetoriais e de texto completo, que usam diferentes funções de classificação, como BM25 e HNSW. Um algoritmo de Reciprocal Rank Fusion (RRF) mescla os resultados. A resposta da consulta fornece apenas um conjunto de resultados, usando RRF para escolher as correspondências mais relevantes de cada consulta.

Estrutura de uma consulta híbrida

A pesquisa híbrida baseia-se em ter um índice de pesquisa que contém campos de vários tipos de dados, incluindo texto simples e números, coordenadas geográficas para pesquisa geoespacial e vetores para uma representação matemática de um pedaço de texto. Você pode usar quase todos os recursos de consulta no Azure AI Search com uma consulta vetorial, exceto para interações do lado do cliente, como preenchimento automático e sugestões.

Uma consulta híbrida representativa pode ser a seguinte (observe que o vetor é cortado para brevidade):

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"
}

Os pontos-chave incluem:

  • search Especifica uma consulta de pesquisa de texto completo.
  • vectors para consultas vetoriais, que podem ser múltiplas, direcionadas a vários campos vetoriais. Se o espaço de incorporação incluir conteúdo multilíngue, as consultas vetoriais poderão encontrar a correspondência sem a necessidade de analisadores de idioma ou tradução.
  • select Especifica quais campos devem ser retornados nos resultados, que podem ser campos de texto legíveis por humanos.
  • filters pode especificar a pesquisa geoespacial ou outros critérios de inclusão e exclusão, como se o estacionamento está incluído. A consulta geoespacial neste exemplo encontra hotéis em um raio de 300 quilômetros de Washington D.C.
  • facets pode ser usado para calcular buckets de facetas sobre resultados retornados de consultas híbridas.
  • queryType=semantic invoca a classificação semântica, aplicando a compreensão de leitura de máquina para exibir resultados de pesquisa mais relevantes.

Os filtros e facetas visam estruturas de dados dentro do índice que são distintas dos índices invertidos usados para pesquisa de texto completo e dos índices vetoriais usados para pesquisa vetorial. Como tal, quando filtros e operações facetadas são executados, o motor de busca pode aplicar o resultado operacional aos resultados de pesquisa híbridos na resposta.

Observe como não há na orderby consulta. As ordens de classificação explícitas substituem os resultados classificados por relevância, portanto, se você quiser semelhança e relevância BM25, omita a classificação em sua consulta.

Uma resposta da consulta acima pode ter esta aparência:

{
    "@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
            }
        }
    ]
}

A pesquisa híbrida combina os pontos fortes da pesquisa vetorial e da pesquisa por palavras-chave. A vantagem da pesquisa vetorial é encontrar informações que são conceitualmente semelhantes à sua consulta de pesquisa, mesmo que não haja correspondências de palavras-chave no índice invertido. A vantagem da pesquisa por palavra-chave ou texto completo é a precisão, com a capacidade de aplicar classificação semântica que melhora a qualidade dos resultados iniciais. Alguns cenários - como consultas sobre códigos de produtos, jargões altamente especializados, datas e nomes de pessoas - podem ter um desempenho melhor com a pesquisa por palavra-chave porque pode identificar correspondências exatas.

O teste de benchmark em conjuntos de dados reais e de benchmark indica que a recuperação híbrida com classificação semântica oferece benefícios significativos na relevância da pesquisa.

O vídeo a seguir explica como a recuperação híbrida fornece dados de aterramento ideais para gerar respostas úteis de IA.

Consulte também

Supere a pesquisa vetorial com recuperação e classificação híbridas (Tech blog)