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
evectors
- 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, campos de vetor contendo inserções podem coexistir 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, HNSW e EKNN. 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 classificar os resultados unificados.
Estrutura de uma consulta híbrida
A pesquisa híbrida baseia-se em um índice de pesquisa que contém campos de diversos tipos de dados, incluindo texto sem formatação e números, coordenadas geográficas se você deseja pesquisa geoespacial, e vetores para uma representação matemática de uma parte 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 de texto puro, como preenchimento automático e sugestões.
Uma consulta híbrida representativa pode ser a seguinte (observe que as consultas de vetor têm valores de espaço reservado para brevidade):
POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2024-07-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 apenas 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 devem 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 o classificador semântico, aplicando a compreensão de leitura do computador para exibir os resultados da pesquisa mais relevantes. A classificação semântica é opcional. Se você não estiver usando esse recurso, remova as três últimas linhas da consulta híbrida.
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": "Swirling Currents 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 Valley 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
}
}
]
}
Por que escolher a pesquisa híbrida?
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 opcional que aprimora 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 parâmetro 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 o classificador semântico 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)