Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A pesquisa vetorial é uma abordagem de recuperação de informação que suporta a indexação e a consulta em vez de representações numéricas de conteúdo. Como o conteúdo é numérico e não texto simples, a correspondência baseia-se em vetores que são mais semelhantes ao vetor de consulta. Esta abordagem permite o emparelhamento transversal:
- Semelhança semântica ou conceptual. Por exemplo, "cão" e "canino" são conceptualmente semelhantes, mas linguisticamente distintos.
- Conteúdo multilíngue, como "dog" em inglês e "hund" em alemão.
- Vários tipos de conteúdo, como "cão" em texto simples e uma imagem de um cão.
Este artigo fornece uma visão geral da pesquisa vetorial no Pesquisa de IA do Azure, incluindo cenários suportados, disponibilidade e integração com outros serviços do Azure.
Dica
Quer começar já? Siga estes passos:
- Forneça embeddings para o seu índice ou gere embeddings em um pipeline de indexação.
- Crie um índice vetorial.
- Executa consultas vetoriais.
Que cenários pode suportar a pesquisa vetorial?
A pesquisa vetorial suporta os seguintes cenários:
Pesquisa por similaridade. Codifique texto usando modelos de embedding ou modelos open-source, como embeddings OpenAI ou SBERT, respetivamente. Depois recupera documentos usando consultas que também são codificadas como vetores.
Pesquisa híbrida. Pesquisa de IA do Azure define pesquisa híbrida como a execução da pesquisa vetorial e da pesquisa por palavra-chave no mesmo pedido. O suporte vetorial é implementado ao nível do campo. Se um índice contiver campos vetoriais e não vetoriais, pode escrever uma consulta que tenha como alvo ambos. As consultas são executadas em paralelo, e os resultados são fundidos numa única resposta e classificados de acordo.
Pesquisa multimodal. Codificar texto e imagens usando embeddings multimodais, como OpenAI CLIP ou GPT-4 Turbo com Vision no Azure OpenAI, e depois consultar um espaço de embedding composto por vetores de ambos os tipos de conteúdo.
Pesquisa multilíngue. O Pesquisa de IA do Azure foi concebido para extensibilidade. Se tiver modelos de incorporação e modelos de conversação treinados em várias línguas, pode chamá-los através de competências personalizadas ou integradas no lado da indexação, ou por vetorizadores no lado da consulta. Para maior controlo sobre a tradução de texto, utilize as capacidades multilingue suportadas pela Pesquisa de IA do Azure para conteúdos não vetoriais em cenários de pesquisa híbrida.
Pesquisa vetorial filtrada. Um pedido de consulta pode incluir uma consulta vetorial e uma expressão de filtro. Os filtros aplicam-se a campos de texto e numéricos. São úteis para filtros de metadados e para incluir ou excluir resultados de pesquisa com base em critérios de filtro. Embora um campo vetorial não seja filtrável, pode configurar um campo de texto ou numérico filtrável. O motor de busca pode processar o filtro antes ou depois de executar a consulta vetorial.
Base de dados vetorial. O Pesquisa de IA do Azure armazena os dados sobre os quais consultas. Use-o como um índice vetorial puro quando precisar de memória de longo prazo ou uma base de conhecimento, dados de aterramento para a arquitetura de geração aumentada por recuperação (RAG ), ou uma aplicação que use vetores.
Como funciona a pesquisa vetorial?
O Pesquisa de IA do Azure suporta indexação, armazenamento e consulta de embeddings vetoriais a partir de um índice de pesquisa. O diagrama seguinte mostra os fluxos de trabalho de indexação e consulta para pesquisa vetorial.
No lado da indexação, Pesquisa de IA do Azure utiliza um algoritmo vizinhos mais próximos para colocar vetores semelhantes próximos uns dos outros num índice. Internamente, cria índices vetoriais para cada campo vetorial.
A forma como se obtêm embeddings do seu conteúdo de origem no Pesquisa de IA do Azure depende da abordagem de processamento que utiliza.
Para processamento interno, o Pesquisa de IA do Azure oferece fragmentação e vetorização de dados integradas num pipeline de indexação. Fornece os recursos necessários, como endpoints e informações de conexão para o Azure OpenAI. O Pesquisa de IA do Azure faz então as chamadas e trata das transições. Esta abordagem requer um indexador, uma fonte de dados suportada e um conjunto de competências que impulsione o chunking e o embedding.
Para processamento externo, pode gerar embeddings fora da Pesquisa de IA do Azure e inserir o conteúdo pré-vetorizado diretamente nos campos vetoriais no seu índice de pesquisa.
No lado da consulta, a sua aplicação cliente recolhe a entrada do utilizador, normalmente através de um prompt. Pode adicionar um passo de codificação para vetorizar a entrada e depois enviar a consulta vetorial para o seu índice Pesquisa de IA do Azure para pesquisa por similaridade. Tal como na indexação, pode usar vetorização integrada para codificar a consulta. Para qualquer uma das abordagens, o Pesquisa de IA do Azure devolve documentos com os k vizinhos mais próximos (kNN) solicitados nos resultados.
Pesquisa de IA do Azure suporta cenários híbridos que executam a pesquisa por vetores e palavras-chave em paralelo e retornam um conjunto de resultados unificado, que muitas vezes proporciona melhores resultados do que a pesquisa vetorial ou por palavras-chave isolada. Para a pesquisa híbrida, tanto o conteúdo vetorial como o não vetorial são ingeridos no mesmo índice para consultas que se executam simultaneamente.
Disponibilidade e preços
A pesquisa vetorial está disponível em todas as regiões e em todos os níveis sem custo adicional. No entanto, gerar incorporações ou usar enriquecimento de IA para vetorização pode acarretar encargos do fornecedor do modelo.
Para acesso portal e programático à pesquisa vetorial, pode usar:
- O assistente Importar dados no portal do Azure.
- As APIs REST do Serviço de Pesquisa.
- Os SDKs do Azure de .NET, Python e JavaScript.
- Outras ofertas Azure, como Microsoft Foundry.
Nota
Alguns serviços de pesquisa criados antes de 1 de janeiro de 2019 não suportam cargas de trabalho vectoriais. Se tentares adicionar um campo vetorial a um esquema e receberes um erro, é resultado de serviços desatualizados. Nesta situação, deve criar um novo serviço de pesquisa para experimentar a funcionalidade vetorial.
Os serviços de pesquisa criados após 3 de abril de 2024 oferecem quotas mais elevadas para índices vetoriais. Se tiveres um serviço mais antigo, podes conseguir atualizar o teu serviço para quotas vetoriais mais elevadas.
Integração com o Azure e serviços relacionados
O Pesquisa de IA do Azure está profundamente integrado em toda a plataforma Azure AI. A tabela seguinte lista produtos úteis em cargas de trabalho vetoriais.
| Produto | Integração |
|---|---|
| Azure OpenAI | O Azure OpenAI fornece modelos de embedding e modelos de chat. Demos e amostras são destinadas ao modelo text-embedding-ada-002. Recomendamos o Azure OpenAI para gerar embeddings para texto. |
| Ferramentas de Fundição | API de Recuperação e Vetorização de Imagens suporta a vetorização do conteúdo da imagem. Recomendamos esta API para gerar embeddings para imagens. |
| Serviço de Agente de Fundição | Em Pesquisa de IA do Azure, pode criar uma fonte de conhecimento indexada que aponta para um índice de pesquisa contendo campos vetoriais e um vetorizador. Pode então criar a fonte de conhecimento numa base de conhecimento e ligar essa base ao Foundry Agent Service, fornecendo aos seus agentes resultados de pesquisa vetorial para uma recuperação de conhecimento melhorada. |
| Azure data platforms: Armazenamento de Blobs do Azure, Azure Cosmos DB, SQL do Azure, Microsoft OneLake | Podes usar indexadores para automatizar a ingestão de dados e depois usar vetorização integrada para gerar embeddings. Pesquisa de IA do Azure pode indexar automaticamente dados vetoriais de indexadores Azure blob, Azure Cosmos DB para indexadores NoSQL, Azure Data Lake Storage Gen2, Armazenamento de Tabelas do Azure, e Microsoft OneLake. Para mais informações, consulte Adicionar campos vetoriais a um índice de pesquisa. |
Também é frequentemente usado em frameworks open-source como o LangChain.