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

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

  • Uma única solicitação de consulta que inclui os parâmetros de consulta search e vectors
  • Execução em paralelo
  • Com resultados mesclados na resposta da consulta, pontuados usando o RRF (Fusão de Classificação Recíproca)

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

Como funciona a pesquisa híbrida?

Na Pesquisa de IA do Azure, os campos vetoriais que contêm incorporações podem conviver com campos textuais e numéricos, permitindo que você formule consultas híbridas que são executadas em paralelo. As consultas híbridas podem aproveitar a funcionalidade existente, como filtragem, facetamento, classificação, perfis de pontuação e classificação semântica em uma única solicitação de pesquisa.

A pesquisa híbrida combina resultados de consultas de texto completo e de vetor, que usam diferentes funções de classificação, como BM25 e HNSW. Um algoritmo de Fusão de Classificação Recíproca (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 presentes na IA do Azure Search com uma consulta vetor, exceto em 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 abreviar):

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 o seguinte:

  • search especifica uma consulta de pesquisa de texto completo.
  • vectors para consultas de vetor, que podem ser múltiplas, direcionando vários campos vetoriais. Se o espaço de inserção incluir conteúdo multilíngue, as consultas de vetor poderão encontrar a correspondência sem nenhum analisador de linguagem ou tradução necessária.
  • select especifica quais campos retornar 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 podem ser usados para calcular buckets de faceta sobre resultados retornados de consultas híbridas.
  • queryType=semantic invoca a classificação semântica, aplicando a compreensão de leitura do computador para exibir os resultados da pesquisa mais relevantes.

Filtros e facetas tem como destino estruturas de dados dentro do índice que são diferentes dos índices invertidos usados para pesquisa de texto completo e os índices de vetor usados para busca em vetores. Dessa forma, quando filtros e operações facetadas são executadas, o mecanismo de pesquisa pode aplicar o resultado operacional aos resultados da pesquisa híbrida na resposta.

Observe como não há orderby na consulta. As ordens de classificação explícitas substituem os resultados de classificação relevante, portanto, se desejar similaridade e relevância do BM25, omita a classificação em sua consulta.

Uma resposta da consulta acima pode ser assim:

{
    "@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 busca em vetores e da pesquisa por palavras-chave. A vantagem da busca em vetores é encontrar informações conceitualmente semelhantes à consulta de pesquisa, mesmo que não haja correspondências de palavra-chave no índice invertido. A vantagem da palavra-chave ou da pesquisa de texto completo é a precisão, com a capacidade de aplicar a classificação semântica que melhora a qualidade dos resultados iniciais. Alguns cenários, como ao consultar códigos de produto, jargões altamente especializados, datas e nomes de pessoas, podem ter um desempenho melhor com a pesquisa por palavras-chave, pois podem identificar correspondências exatas.

Os testes de comparação em conjuntos de dados de parâmetro de comparação e do mundo real indica que a recuperação híbrida com classificação semântica oferece benefícios importantes na relevância da pesquisa.

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

Confira também

Busca em vetores de desempenho superior com recuperação híbrida e classificação (blog de tecnologia)