Compartilhar via


Escolher um serviço do Azure para busca em vetores

A busca em vetores é um método de encontrar informações armazenadas em um banco de dados na forma de vetores. Vetores são grupos de números que representam características ou características de mídia, como texto ou imagens. Os vetores são um avanço significativo dos métodos tradicionais de pesquisa que se baseiam em palavras-chave. Eles trazem resultados mais rápidos e precisos por meio do conhecimento das relações semânticas que estão na informação.

O Azure oferece várias maneiras de armazenar e pesquisar dados vetorizados. Este artigo ajuda arquitetos e desenvolvedores que precisam entender e escolher o serviço do Azure certo para busca em vetores para seu aplicativo.

Este artigo compara os seguintes serviços com base em seus recursos de busca em vetores:

Arquitetos e desenvolvedores devem comparar os serviços disponíveis da perspectiva dos requisitos do sistema em Escolher um serviço candidato e na matriz de capacidade.

Escolher um serviço candidato

Esta seção ajuda você a escolher os serviços mais adequados para suas necessidades. Para restringir as opções, comece considerando os requisitos do sistema.

Requisitos de chave

Um fluxograma que ajuda você a escolher o serviço do Azure certo para busca em vetores.

Ao decidir se quer usar uma solução de banco de dados tradicional ou o serviço Pesquisa de IA do Azure, considere seus requisitos e se você pode executar busca em vetores ao vivo ou em tempo real em seus dados. Um banco de dados relacional ou NoSQL tradicional é o melhor para seu cenário se você alterar valores em campos vetorizados com frequência e as alterações precisarem ser pesquisáveis em tempo real ou quase em tempo real. Da mesma forma, usar seu banco de dados existente pode ser a melhor solução para você atingir suas metas de performance. Por outro lado, se a sua carga de trabalho não exigir capacidade de busca em vetores em tempo real ou quase em tempo real e você aceitar o gerenciamento de um índice de vetores, a Pesquisa de IA pode ser uma opção atraente.

Se você escolher uma solução de banco de dados tradicional, o tipo específico de serviço de banco de dados que você decidir usar dependerá principalmente do conjunto de habilidades da sua equipe e dos bancos de dados que você opera atualmente. Se você já usa um tipo específico de banco de dados, como o MongoDB, por exemplo, usar esse mesmo tipo de banco de dados pode ser a solução mais fácil para o seu cenário. Conforme mostrado na seção Matriz de capacidade, cada serviço de banco de dados tem alguns recursos e limitações exclusivos para busca em vetores. Revise essas informações para garantir que seu tipo de banco de dados preferencial ofereça suporte à funcionalidade necessária.

Se as preocupações com custos forem um fator determinante, manter o design existente provavelmente será melhor para o cenário, pois a introdução de novos serviços ou outras instâncias de um serviço de banco de dados pode adicionar novos custos e complexidade. Usar seus bancos de dados atuais para busca em vetores provavelmente afeta seus custos menos do que usar um serviço dedicado.

Se você optar por usar um banco de dados tradicional em vez da Pesquisa de IA, alguns recursos de pesquisa avançada não estarão disponíveis por padrão. Por exemplo, se você quiser fazer reclassificação ou pesquisa híbrida, habilite essa funcionalidade por meio do Transact-SQL (T-SQL) ou outra codificação.

Matriz de funcionalidades

As tabelas nesta seção resumem as principais diferenças em funcionalidades.

Recursos básicos

O suporte nativo varia entre os tipos de dados vetoriais, índice vetorial de rede neural artificial (ANN), limites de dimensão vetorial, vários campos vetoriais e vários índices vetoriais. Seus requisitos de carga de trabalho podem exigir alguns desses recursos específicos. Entenda os recursos básicos de vetor de cada serviço do Azure, conforme mostrado na tabela a seguir.

Funcionalidade Azure Cosmos DB para PostgreSQL Azure Cosmos DB para NoSQL Azure Cosmos DB for MongoDB (vCore) Banco de Dados do Azure para PostgreSQL (Flex) Azure AI Search Banco de Dados SQL do Azure
Busca em vetores integrada Sim 1 Sim Sim 2 Sim 1 Sim 3 Sim 4
Tipo de dados vetoriais Sim Sim Sim Sim Sim No
Limites de dimensão 6 16.000 7 ou 2000 505 8 ou 4096 2\.000 16.000 7 ou 2000 3.072 1998 (visualização)5
Vários campos vetoriais Sim Sim Não Sim Sim Sim
Múltiplos índices vetoriais Sim Sim Não Sim Sim Sim
  1. "pgvector" suporta busca em vetores, que é a extensão do PostgreSQL.
  2. Use a busca em vetores em inserções no Azure Cosmos DB for MongoDB (vCore).
  3. Vetores na Pesquisa de IA do Azure
  4. A pesquisa vetorial nativa está disponível com a visualização do Early adopter do Banco de Dados SQL do Azure
  5. Os vetores podem ser armazenados em uma coluna ou variável VARBINARY(8000).
  6. Modelos de incorporação do OpenAI, 1536 para text-embedding-ada-002 e text-embedding-3-small e 3072 para text-embedding-3-large. Para modelos de incorporação multimodal do Azure AI Vision, 1024 para imagem e texto.
  7. Os vetores podem ter até 16.000 dimensões. Mas o índice usando "IVFFlat" e "HNSW" suporta vetores com até 2.000 dimensões.
  8. Os vetores indexados com o tipo de índice plano podem ter no máximo 505 dimensões. Os vetores indexados com o tipo de índice quantizedFlat ou DiskANN podem ter no máximo 4.096 dimensões.

Métodos de pesquisa

As cargas de trabalho geralmente precisam combinar busca em vetores com busca de texto completo ou até mesmo uma busca híbrida (pesquisa de texto completo ou pesquisa semântica mais busca em vetores). A combinação de pesquisa híbrida e reclassificação alcança alta precisão para cargas de trabalho. Você pode implementar manualmente a pesquisa híbrida e a reclassificação com seu próprio código ou pode considerar como seu repositório vetorial oferece suporte a esse requisito de carga de trabalho.

Método Search Azure Cosmos DB para PostgreSQL Azure Cosmos DB para NoSQL Azure Cosmos DB for MongoDB (vCore) Banco de Dados do Azure para PostgreSQL (Flex) Azure AI Search Banco de Dados SQL do Azure
Pesquisa de texto completo Sim 1 Não Sim 2 Sim 1 Sim 3 Sim 4
Pesquisa híbrida Sim 5 Não No Sim 5 Sim 6 Sim 7
Reclassificação integrada Não No No No Sim 8 Não
  1. Pesquisa de texto completo PostgreSQL
  2. Pesquisar e consultar com índices de texto no Azure Cosmos DB for MongoDB (vCore).
  3. Introdução a Pesquisa de texto completo
  4. Dados vetoriais no SQL Server.
  5. Não é fornecido como um recurso de primeira classe, mas códigos de exemplo são fornecidos.
  6. A pesquisa híbrida (combinação de pesquisa de texto completo, busca em vetores e classificação semântica) é fornecida como um recurso de primeira classe.
  7. Exemplo de pesquisa híbrida para o banco de dados SQL do Azure e o SQL Server.
  8. A reclassificação chamada classificação semântica é um recurso de primeira classe para reclassificar o resultado da pesquisa de texto completo e da busca em vetores.

Algoritmos de indexação de dados vetoriais

A indexação de dados vetoriais é a capacidade de armazenar e recuperar vetores com eficiência. Esse recurso é importante porque a indexação influencia a velocidade e a precisão das pesquisas de similaridade e das consultas de vizinhos mais próximos nas fontes de dados.

Os índices são tipicamente baseados em um K-Vizinho Mais Próximo (Ek-NN) ou um algoritmo ANN. O Ek-NN faz uma pesquisa exaustiva em todos os pontos de dados, um a um, e retorna os K-Vizinhos Mais Próximos. O Ek-NN funciona em milissegundos com uma pequena quantidade de dados, mas pode causar latência para grandes quantidades de dados.

HNSW e IVFFlat são índices algorítmicos de RNA. A seleção da estratégia de indexação apropriada envolve uma consideração cuidadosa de vários fatores, como a natureza do conjunto de dados, os requisitos específicos das consultas e os recursos disponíveis. O IVFFlat é eficaz em ambientes onde os recursos de hardware são limitados ou os volumes de consulta não são altos. O HNSW se destaca em sistemas que exigem respostas rápidas de consulta e podem se adaptar a mudanças no conjunto de dados.

Entenda quais tipos de indexação de dados vetoriais são fornecidos na tabela a seguir.

Abordagem de indexação Azure Cosmos DB para PostgreSQL Azure Cosmos DB para NoSQL Azure Cosmos DB for MongoDB (vCore) Banco de Dados do Azure para PostgreSQL (Flex) Azure AI Search Banco de Dados SQL do Azure
K-Vizinhos Mais Próximos (EKNN) exaustivo Sim Sim Sim Sim Sim Sim
HNSW (Hierarchical Navigable Small World) Sim No Sim (visualização)1 Sim Sim No
IVFflat Sim Não Sim Sim Não No
Outros - plano, quantizadoFlat, diskANN2 Limitação do campo vetorial 3
Limitação do índice vetorial 4
- - Bibliotecas externas estão disponíveis5
  1. Azure Cosmos DB for MongoDB - Visão geral da busca em vetores
  2. Políticas de indexação vetorial
  3. Apenas um campo vetorial está disponível por contêiner.
  4. Apenas um índice vetorial está disponível por contêiner.
  5. O índice pode ser criado com o auxílio de bibliotecas externas como Scikit Learn ou FAISS

Recursos de cálculo de similaridade e distância

Existem métodos de cálculo de Similaridade de Cosseno, Produto de Ponto e Distância Euclidiana para busca em vetores. Esses métodos são usados para calcular a similaridade entre dois vetores ou a distância entre dois vetores.

A análise preliminar de dados se beneficia tanto das métricas quanto das distâncias euclidianas, que permitem a extração de diferentes insights sobre a estrutura dos dados, enquanto a classificação de texto geralmente tem melhor desempenho sob distâncias euclidianas. A recuperação dos textos mais semelhantes a um determinado texto normalmente funciona melhor com a similaridade de cosseno.

As inserções do Serviço OpenAI do Azure dependem da similaridade de cosseno para calcular a similaridade entre documentos e uma consulta.

Cálculo de comparação vetorial integrado Azure Cosmos DB para PostgreSQL Azure Cosmos DB para NoSQL Azure Cosmos DB for MongoDB (vCore) Banco de Dados do Azure para PostgreSQL (Flex) Azure AI Search Banco de Dados SQL do Azure
Similaridade de cosseno Sim Sim1 Sim Sim Sim Sim 2
Distância euclidiana (distância L2) Sim Sim1 Sim Sim Sim Sim 2
Produto de Ponto Sim Sim1 Sim Sim Sim Sim 2
  1. Cálculo de distância vetorial para o Azure Cosmos DB for NoSQL.
  2. Exemplos de cálculo de distância para Azure SQL database e SQL Server.

Integração com o Azure OpenAI e outros componentes

Ao implementar a busca em vetores, você também pode considerar a vinculação com outros componentes da Microsoft. Por exemplo, o Serviço OpenAI do Azure ajuda você a criar vetores para seus dados e consultas de entrada para pesquisa de similaridade vetorial.

Funcionalidade Azure Cosmos DB para PostgreSQL Azure Cosmos DB para NoSQL Azure Cosmos DB for MongoDB (vCore) Banco de Dados do Azure para PostgreSQL (Flex) Azure AI Search Banco de Dados SQL do Azure
Serviço OpenAI do Azure - adicione seus próprios dados Não No Sim 1 Não Sim 2 Não
Incorporação vetorial com o Azure OpenAI Não No No Sim 3 Sim 4 Sim 5
Integração com prompt flow Não No No No Sim 6 Não
Integração com Kernel Semântico Sim 7 Sim8 Sim9 Sim 7 Sim 10 Sim 11
  1. O Azure Cosmos DB for MongoDB (vCore) tem suporte como uma fonte de dados para o Azure OpenAI em seus dados.
  2. A Pesquisa de IA do Azure tem suporte como uma fonte de dados para o Azure OpenAI em seus dados.
  3. A Extensão de IA do Azure (visualização) está disponível.
  4. A Pesquisa de IA do Azure fornece uma habilidade para vetorizar o texto em partes.
  5. Você pode criar um procedimento armazenado para a implantação do modelo de incorporação.
  6. Suportado como um banco de dados vetorial na ferramenta Vector DB Lookup .
  7. Suportado como um conector de memória e um conector de banco de dados vetorial (C#).
  8. Azure Cosmos DB no kernel semântico.
  9. Suportado como um conector de banco de dados vetorial (Python).
  10. Suportado como um conector de memória e um conector de banco de dados vetorial (C#, Python).
  11. Suportado como um conector de memória.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Principais autores:

Outros colaboradores:

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próxima etapa

Implementar a mineração de conhecimento com a Pesquisa de IA do Azure. Este roteiro de aprendizagem explora como usar a Pesquisa de IA do Azure.