Share via


Escolha um serviço do Azure para pesquisa vetorial

A pesquisa vetorial é 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 em relação aos métodos tradicionais de pesquisa baseados em palavras-chave. Eles oferecem resultados mais rápidos e precisos, compreendendo as relações semânticas dentro das informações.

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 pesquisa vetorial para seu aplicativo.

Este artigo compara os seguintes serviços com base em seus recursos de pesquisa vetorial:

Os arquitetos e desenvolvedores devem comparar os serviços disponíveis da perspetiva dos requisitos do sistema em Escolha um serviço candidato e na matriz de capacidade.

Escolha um serviço candidato

Esta secção ajuda-o a selecionar os serviços mais prováveis para as suas necessidades. Para restringir as opções, comece considerando os requisitos do sistema.

Requisitos chave

Um fluxograma que ajuda você a escolher o serviço do Azure certo para pesquisa vetorial.

Ao decidir se deseja usar uma solução de banco de dados tradicional ou o serviço Azure AI Search, considere seus requisitos e se você pode realizar pesquisas vetoriais ao vivo ou em tempo real em seus dados. Um banco de dados relacional tradicional ou NoSQL é o mais adequado para o 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 desempenho. Por outro lado, se sua carga de trabalho não exigir pesquisa vetorial em tempo real ou quase em tempo real, e você aceitar gerenciar um índice de vetores, a Pesquisa de IA pode ser uma escolha 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. Como mostrado na seção Matriz de capacidade , cada serviço de banco de dados tem alguns recursos e limitações exclusivos para pesquisa vetorial. Revise essas informações para garantir que seu tipo de banco de dados preferido ofereça suporte à funcionalidade necessária.

Se as preocupações com os custos forem um fator determinante, manter o design existente é provavelmente o mais adequado 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 líquidos e complexidade. Usar seus bancos de dados atuais para pesquisa vetorial provavelmente afeta seus custos menos do que usar um serviço dedicado.

Se você optar por usar um banco de dados tradicional em vez do AI Search, alguns recursos avançados de pesquisa 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 capacidades

As tabelas nesta seção resumem as principais diferenças nos recursos.

Funcionalidades básicas

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

Funcionalidade Azure Cosmos DB para PostgreSQL Azure Cosmos DB para MongoDB (vCore) Banco de Dados do Azure para PostgreSQL (Flex) Pesquisa de IA do Azure Base de Dados SQL do Azure
Pesquisa vetorial integrada Sim 1 Sim 2 Sim 1 Sim 3 N.o 4
Tipo de dados vetoriais Sim Sim Sim Sim N.o 5
Limites de dimensão 6 16.000 7 ou 2.000 2.000 16.000 7 ou 2.000 3,072 Ilimitado
Vários campos vetoriais Sim No Sim Sim N/A
Vários índices vetoriais Sim No Sim Sim N/A
  1. pgvectordá suporte à pesquisa vetorial, que é a extensão do Banco de Dados do Azure para PostgreSQL.
  2. Use a pesquisa vetorial em incorporações no Azure Cosmos DB para MongoDB (vCore).
  3. Vetores na Pesquisa de IA do Azure.
  4. A pesquisa vetorial não é fornecida como um recurso de primeira classe, mas pode ser implementada usando índices columnstore e funções para semelhança de cosseno.
  5. Despivotar a dimensão (matriz) para a linha da tabela. Os vetores são armazenados com o índice columnstore.
  6. Modelos de incorporação da 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 a indexação usando arquivo invertido com compactação plana (IVFFlat) e mundo pequeno navegável hierárquico (HNSW) suporta vetores com até 2.000 dimensões.

Métodos de pesquisa

As cargas de trabalho geralmente precisam combinar a pesquisa vetorial com a pesquisa de texto completo ou até mesmo uma pesquisa híbrida (pesquisa de texto completo ou pesquisa semântica mais pesquisa vetorial). 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 de vetores suporta esse requisito de carga de trabalho.

Método de pesquisa Azure Cosmos DB para PostgreSQL Azure Cosmos DB para MongoDB (vCore) Banco de Dados do Azure para PostgreSQL (Flex) Pesquisa de IA do Azure Base de Dados SQL do Azure
Pesquisa em texto completo Sim 1 Sim 2 Sim 1 Sim 3 Sim 4
Pesquisa híbrida Sim 5 Não Sim 5 Sim 6 Sim 7
Reclassificação integrada No No Não Sim 8 Não
  1. Pesquisa de texto completo PostgreSQL.
  2. Pesquisar e consultar com índices de texto no Azure Cosmos DB para MongoDB (vCore).
  3. Comece com 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, pesquisa vetorial 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 pesquisa vetorial.

Algoritmos de indexação de dados vetoriais

A indexação de dados vetoriais é a capacidade de armazenar e recuperar vetores de forma eficiente. Esse recurso é importante porque a indexação influencia a velocidade e a precisão das pesquisas de semelhança e das consultas de vizinhos mais próximos em fontes de dados.

Os índices são normalmente baseados em um vizinho k-nearest exaustivo (Ek-NN) ou um algoritmo ANN. Ek-NN faz uma pesquisa exaustiva em todos os pontos de dados, um a um, e retorna os vizinhos mais próximos de K precisos. 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 de algoritmos ANN. 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 MongoDB (vCore) Banco de Dados do Azure para PostgreSQL (Flex) Pesquisa de IA do Azure Base de Dados SQL do Azure
Vizinho exaustivo k mais próximo (Ek-NN) Sim Sim Sim Sim Sim
Pequeno Mundo Navegável Hierárquico (HNSW) Sim Sim (pré-visualização)1 Sim Sim No
IVFFlat Sim Sim Sim No Não
Outros - Limitação do campo vetorial 2
Limitação do índice vetorial 3
- - Sem suporte aíndice vetorial nativo 4
  1. Azure Cosmos DB for MongoDB - Visão geral da pesquisa vetorial.
  2. Apenas um campo vetorial está disponível por contêiner.
  3. Apenas um índice vetorial está disponível por contêiner.
  4. O Banco de Dados SQL do Azure não tem tipo de dados vetoriais. Mas você pode armazenar vetores em uma coluna. Cada linha contém cada elemento de vetores. Em seguida, você pode usar o índice columnstore para armazenar e pesquisar vetores de forma eficiente.

Capacidades de cálculo de semelhança e distância

Existem métodos de cálculo de distância cosina similar, produto Dot e euclidiano para pesquisa vetorial. Estes métodos são usados para calcular a semelhança entre dois vetores ou a distância entre dois vetores.

A análise preliminar de dados se beneficia tanto de métricas quanto de distâncias euclidianas, que permitem a extração de diferentes perceções sobre a estrutura de 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 semelhança cosseno.

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

Cálculo de comparação vetorial integrado Azure Cosmos DB para PostgreSQL Azure Cosmos DB para MongoDB (vCore) Banco de Dados do Azure para PostgreSQL (Flex) Pesquisa de IA do Azure Base de Dados SQL do Azure
Semelhança de cosseno Sim Sim Sim Sim Sim 1
Distância euclidiana (distância L2) Sim Sim Sim Sim Sim 1
Produto ponto Sim Sim Sim Sim Sim 1
  1. Exemplos de cálculo de distância para o banco de dados SQL do Azure e o SQL Server.

Integração com o Azure OpenAI e outros componentes

Ao implementar a pesquisa vetorial, 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 semelhança vetorial.

Funcionalidade Azure Cosmos DB para PostgreSQL Azure Cosmos DB para MongoDB (vCore) Banco de Dados do Azure para PostgreSQL (Flex) Pesquisa de IA do Azure Base de Dados SQL do Azure
Azure OpenAI Service - adicione seus próprios dados Não Sim 1 Não Sim 2 Não
Incorporação vetorial com o Azure OpenAI No Não Sim 3 Sim 4 Sim 5
Integração com fluxo imediato No No Não Sim 6 Não
Integração com Kernel Semântico Sim 7 Sim 8 Sim 7 Sim 9 Sim 10
  1. O Azure Cosmos DB para MongoDB (vCore) tem suporte como uma fonte de dados para o Azure OpenAI em seus dados.
  2. O Azure AI Search 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. O Azure AI Search fornece uma habilidade para vetorizar o texto em partes.
  5. Você pode criar um procedimento armazenado para sua implantação de modelo de incorporação.
  6. Suportado como um banco de dados vetorial na ferramenta Vetor DB Lookup .
  7. Suportado como um conector de memória e um conector de banco de dados vetorial (C#).
  8. Suportado como um conector de banco de dados vetorial (Python).
  9. Suportado como um conector de memória e um conector de banco de dados vetorial (C#, Python).
  10. Suportado como um conector de memória.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Principais autores:

Outros contribuidores:

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

Próximo passo

Implemente a mineração de conhecimento com o Azure AI Search. Este caminho de aprendizagem explora como usar o Azure AI Search.