
O que são embeddings vectoriais?
As incorporações vetoriais são representações numéricas de pontos de dados em um espaço de alta dimensão no qual pontos de dados semelhantes estão mais próximos uns dos outros e pontos diferentes estão mais distantes. Esse processo permite a capacidade de processar e identificar dados relacionados de forma mais eficaz. Por exemplo, a distância entre palavras pode indicar [semelhanças semânticas] (https://zilliz.com/glossary/semantic-similarity) num espaço vetorial. Paris e Tóquio estão próximas uma da outra, mas longe da Apple.
As incorporações vectoriais são normalmente utilizadas na aprendizagem automática e na inteligência artificial para captar o significado semântico de dados não estruturados (como texto, vídeos, imagens, áudio, etc.), permitindo uma análise, pesquisa e recuperação mais eficientes e precisas. As incorporações vectoriais são normalmente geradas por modelos de Redes Neuronais (ou modelos mais modernos de Arquitetura Transformadora).
Como a representação do vetor de incorporação de um objeto de dados contém apenas números, a pesquisa de similaridade de vectores é por vezes chamada "pesquisa de vectores densos " ou "pesquisa de vectores de incorporação", o que difere da pesquisa tradicional por palavras-chave, em que têm de ocorrer correspondências exactas entre as palavras na pesquisa e os dados devolvidos. "Pesquisa lexical" e "pesquisa vetorial esparsa" são termos que normalmente se referem a pesquisas tradicionais por palavras-chave.
As incorporações vectoriais são normalmente armazenadas numa [base de dados vetorial] moderna (https://zilliz.com/learn/what-is-vetor-database) para indexação e pesquisa eficiente de semelhanças.
Como são criados os embeddings vectoriais?
Os embeddings vetoriais são frequentemente criados usando modelos de aprendizado de máquina (também chamados de embedding models) que aprendem a mapear dados brutos para um espaço vetorial. O modelo de incorporação converte cada unidade de informação num vetor de números, e a distância entre dois vectores significa a semelhança semântica entre eles.
**Eis os principais passos para a criação de incorporações vectoriais
- O primeiro passo é selecionar os dados e decidir quais as variáveis que irão formar vectores. Estas podem incluir palavras num corpus de texto, imagens visuais e preferências do utilizador.
Em seguida, as caraterísticas relevantes dos dados serão extraídas utilizando tokenização e stemming, e a remoção de palavras para dados de texto será interrompida. Considere a utilização de redes neuronais convolucionais (CNNs) para reconhecer e extrair caraterísticas de imagem para dados de imagem.
Depois de pré-processar os dados, introduza-os num modelo de aprendizagem automática, como o Word2Vec, GloVe, OpenAI ou outro modelo de rede neural profunda. Durante o treino, o modelo aprende a criar representações vectoriais para cada item do conjunto de dados. O modelo redimensiona estes vectores para minimizar as diferenças entre itens semelhantes e aumentar as diferenças entre itens diferentes.
O resultado é um espaço vetorial multidimensional em que um vetor específico representa cada item do conjunto de dados. Os itens semelhantes estão mais próximos uns dos outros neste espaço, e os itens diferentes estão mais afastados.
Embeddings vectoriais esparsos, densos e binários
As incorporações vectoriais podem ser amplamente categorizadas em três tipos com base na sua representação e propriedades: dense embeddings, sparse embeddings, e binary embeddings. Cada tipo tem suas próprias vantagens e casos de uso.
Embeddings densos (Vectores densos)
Dense embeddings ou vectores densos são vectores em que a maioria dos elementos são diferentes de zero, fornecendo uma representação numérica compacta, que capta caraterísticas ricas e contínuas dos dados. Normalmente, as incrustações densas e de baixa dimensão podem condensar eficazmente a informação num espaço mais pequeno, o que as torna úteis para o armazenamento e a computação. As incrustações densas são comuns em aplicações como as incrustações de palavras (por exemplo, Word2Vec, GloVe, FastText), as incrustações de frases (por exemplo, Universal Sentence Encoder, InferSent, Sentence-BERT) e as incrustações de imagens derivadas de redes neuronais convolucionais (por exemplo, ResNet, VGG). As incrustações densas são muito vantajosas na captura de informações semânticas. São particularmente adequados para modelos baseados em redes neuronais e aprendizagem profunda, que dependem de representações tão detalhadas para tarefas de classificação, agrupamento e pesquisa de semelhanças.
Embeddings esparsos (Vectores esparsos)
As incorporações esparsas, ou vectores esparsos, em contrapartida, são vectores em que a maioria dos elementos são zero, resultando frequentemente em representações de alta dimensão que destacam a presença ou ausência de caraterísticas específicas. Estas incorporações são utilizadas na extração de texto e na recuperação de informação através de métodos como TF-IDF (Term Frequency-Inverse Document Frequency) e bag-of-words. As incorporações esparsas são simples de compreender e implementar, o que as torna eficazes para os algoritmos tradicionais de aprendizagem automática e para os modelos lineares.
Embeddings Binários (Vectores Binários)
Os embeddings binários ou vectores binários são vectores em que cada elemento é 0 ou 1, criando representações compactas que são altamente eficientes para armazenamento e recuperação. Estas incorporações são frequentemente utilizadas em aplicações que requerem uma elevada eficiência, como o hashing sensível à localidade (LSH) para a pesquisa do vizinho mais próximo aproximado (ANN) em espaços de elevada dimensão, redes neuronais binárias em que os pesos e as activações são binários e hashing de caraterísticas (o truque do hashing) para converter grandes caraterísticas categóricas em vectores binários de tamanho fixo. As incorporações de vectores binários ajudam na eficiência em termos de armazenamento e computação, tornando-as ideais para o processamento de dados em grande escala e aplicações em tempo real. São particularmente úteis para tarefas de pesquisa e recuperação de semelhanças devido à sua natureza compacta.
Um guia simples para criar embeddings vetoriais
Aqui está um exemplo de uso de um [modelo de incorporação] pré-treinado (https://zilliz.com/learn/training-your-own-text-embedding-model) para gerar incorporação para nossas próprias palavras. Para acompanhar, terá de instalar o Python e configurar a base de dados de vectores Milvus para armazenamento e recuperação de vectores.
Primeiro, instale as dependências: milvus, pymilvus, e gensim. Pymilvus é um SDK Python para Milvus, e gensim é uma biblioteca Python para natural language processing (NLP).
Gensim é uma biblioteca Python de código aberto para modelagem de tópicos e análise de similaridade de documentos usando vários algoritmos não supervisionados. É especializada no processamento de corpora de texto em grande escala e é amplamente utilizada em tarefas de processamento de linguagem natural (PNL). O Gensim suporta o treinamento e a utilização de embeddings de palavras através de modelos de aprendizado de máquina como Word2Vec, FastText e Doc2Vec. Esses embeddings capturam relações semânticas entre palavras e podem ser usados para várias tarefas de NLP.
pip install milvus, pymilvus, gensim
Importar as bibliotecas.
import gensim.downloader as api
from pymilvus import (
conexões,
FieldSchema,
CollectionSchema,
DataType,
Collection)
Cria uma conexão com o servidor Milvus.
connections.connect(
alias="default",
user='username',
password='password',
host='localhost',
port='19530'
)
Criar uma coleção.
#Cria uma coleção:
fields = [
FieldSchema(name="pk", dtype=DataType.INT64, is_primary=True, auto_id=False),
FieldSchema(name="words", dtype=DataType.VARCHAR, max_length=50),
FieldSchema(name="embeddings", dtype=DataType.FLOAT_VECTOR, dim=50)
]
schema = CollectionSchema(fields, "Demo to store and retrieve embeddings")
demo_milvus = Coleção("milvus_demo", schema)
Carrega o modelo pré-treinado do gensim.
model = api.load("glove-wiki-gigaword-50")
Gerar os embeddings de texto utilizados para as palavras de amostra.
gelo = modelo['gelo']
água = model['water']
frio = model['cold']
árvore = modelo['árvore']
homem = modelo['homem']
woman = modelo['mulher']
criança = model['criança']
fêmea = modelo['fêmea']
Aqui está um exemplo da incorporação de vetor para a palavra "female".
matriz([-0.31575 , 0.74461 , -0.11566 , -0.30607 , 1.524 , 1.9137 ,
-0.392 , -0.67556 , -0.1051 , -0.17457 , 1.0692 , -0.68617 ,
1.2178 , 1.0286 , 0.35633 , -0.40842 , -0.34413 , 0.67533 ,
-0.5443 , -0.21132 , -0.61226 , 0.95619 , 0.43981 , 0.59639 ,
0.02958 , -1.1064 , -0.48996 , -0.82416 , -0.97248 , -0.059594,
2.396 , 0.74269 , -0.16044 , -0.69316 , 0.55892 , 0.22892 ,
0.013605, -0.44858 , -0.52965 , -0.96282 , -0.54444 , 0.18284 ,
0.16551 , 0.33446 , 0.53432 , -1.4824 , -0.34574 , -0.82834 ,
0.10107 , 0.024414], dtype=float32)
Inserir os vectores gerados na coleção
#Inserir dados na coleção
dados = [
[1,2,3,4,5,6,7,8], # campo pk
['gelo','água','frio','árvore','homem','mulher','criança','mulher'], # campo palavras
[ice, water, cold, tree, man, woman, child, female], # campo embeddings
]
insert_result = demo_milvus.insert(data)
# Depois de a entidade final ser inserida, é melhor chamar flush para não deixar nenhum segmento em crescimento na memória
demo_milvus.flush()
Criar índices nas entidades.
index = {
"index_type": "IVF_FLAT",
"metric_type": "L2",
"params": {"nlist": 128},
}
demo_milvus.create_index("embeddings", index)
Carrega a coleção para a memória para confirmar o carregamento bem sucedido e faz uma [pesquisa de similaridade vetorial] (https://zilliz.com/blog/similarity-metrics-for-vetor-search).
demo_milvus.load()
# realiza uma pesquisa de similaridade vetorial:
dados = [cold]
search_params = {
"metric_type": "L2",
"params": {"nprobe": 10},
}
result = demo_milvus.search(data, "embeddings", search_params, limit=4, output_fields=["words"])
Percorrer os resultados e imprimir as palavras.
para i em range(0,4):
hit = resultado[0][i]
print(hit.entidade.get('palavras'))
E aqui está o resultado esperado.
frio
gelo
água
homem
Como é que os Embeddings funcionam?
Ao transformar dados como imagens, texto e áudio em representações numéricas, os embeddings permitem que as máquinas compreendam o significado semântico subjacente e as relações dentro dos dados brutos. Isto abre portas a aplicações inovadoras em diversos domínios.
Encontrar imagens, vídeos ou ficheiros de áudio semelhantes
Imagine procurar fotografias ou vídeos semelhantes com base no seu conteúdo e não apenas em palavras-chave. Por exemplo, pesquisa de imagem por som (pássaros são mais facilmente ouvidos do que vistos) ou pesquisa de vídeo por imagem. Os embeddings vectoriais tornam este tipo de pesquisa possível. Ao extrair os encaixes de imagens, fotogramas de vídeo ou segmentos de áudio através de técnicas como Redes Neuronais Convolucionais (CNN), podemos armazenar esses encaixes em bases de dados vectoriais como Milvus ou Zilliz Cloud. Quando um utilizador faz uma pesquisa com uma imagem, vídeo ou clip de áudio, o sistema recupera itens semelhantes comparando dados sequenciais com as suas representações vectoriais incorporadas.
Acelerar a descoberta de medicamentos
A descoberta de medicamentos é um processo complexo e demorado. A incorporação de vectores pode acelerar este processo, ajudando os cientistas a identificar candidatos a medicamentos promissores. Ao codificar as estruturas químicas de compostos de medicamentos em embeddings vetoriais gerados acima, podemos medir sua similaridade com proteínas alvo. Isto permite que os investigadores se concentrem nas pistas mais promissoras, levando a uma descoberta e desenvolvimento acelerados de medicamentos.
Aumentar a relevância da pesquisa com a pesquisa semântica
Os motores de busca tradicionais têm muitas vezes dificuldade em compreender a verdadeira intenção por detrás das consultas dos utilizadores, conduzindo a resultados irrelevantes. Suponha que uma empresa incorpore os seus documentos internos em vectores e os armazene numa base de dados de vectores. Agora, os funcionários podem pesquisar esses documentos utilizando uma conversação humana normal. Os dados incorporados mais próximos da incorporação da pergunta de conversação do empregado poderiam ser recuperados pela base de dados vetorial e enviados para o ChatGPT como parte de um pedido para gerar uma resposta de texto semelhante à resposta humana à pergunta do empregado. A resposta seria a resposta mais próxima com base nos dados da empresa. Este processo global é designado por [RAG (Retrieval Augmented Generation)] (https://zilliz.com/use-cases/llm-retrieval-augmented-generation). A adição de uma compreensão semântica dos documentos de uma empresa pode aumentar significativamente a relevância da pesquisa interna para essa empresa e evitar [alucinações de IA] (https://zilliz.com/glossary/ai-hallucination).
Sistemas de recomendação
Os sistemas de recomendação são cruciais para as plataformas em linha, mas as recomendações genéricas podem ser decepcionantes. Os embeddings vectoriais oferecem uma solução, permitindo-nos representar tanto os utilizadores como os itens como embeddings. Ao medir a semelhança entre o utilizador e o item para gerar embeddings vectoriais, podemos fazer recomendações personalizadas adaptadas às preferências únicas de cada utilizador. Isto conduz a sistemas de recomendação mais eficazes e, espera-se, a um maior envolvimento dos utilizadores.
Deteção de anomalias
A identificação de padrões invulgares nos dados é crucial para várias aplicações, como a deteção de fraudes, a segurança de redes e a monitorização de equipamentos industriais. As incorporações vectoriais constituem uma ferramenta poderosa para a deteção de anomalias. Ao representar os pontos de dados como embeddings, podemos calcular as distâncias ou dissimilaridades entre os pontos de dados. Distâncias consideráveis podem sinalizar potenciais anomalias que precisam de ser investigadas. Isto permite-nos identificar problemas de forma proactiva, ajudando na identificação e prevenção precoce de anomalias.
Diferentes tipos de incorporação de vectores com base na natureza dos dados que estão a ser representados
As incorporações vectoriais também podem ser divididas em incorporações de palavras, incorporações de imagens, incorporações de gráficos, incorporações multimodais, etc., dependendo da aplicação e da natureza dos dados que estão a ser representados. Eis alguns dos tipos mais comuns de incorporação vetorial.
Word Embeddings: Os word embeddings representam as palavras como vectores numéricos num espaço vetorial contínuo. Eles são treinados em grandes corpora de texto como a Wikipédia usando vários modelos como Word2Vec, GloVe ou fastText. Estes modelos utilizam mecanismos variados para representar cada palavra como um vetor de números. O Word2Vec gera word embeddings através da previsão de uma palavra num enorme corpus textual. Define relações linguísticas entre palavras. Por exemplo, pode representar "rei" e "rainha" como vectores próximos no espaço, mostrando a sua [semelhança semântica] (https://zilliz.com/glossary/semantic-similarity). O GloVe, por outro lado, baseia-se nos dados de coocorrência das palavras para construir os vectores. A GloVe pode representar as palavras "ice" (gelo) e "water" (água) como vectores que estão próximos porque aparecem frequentemente juntos no texto e partilham uma relação semântica. fastText leva a incorporação de palavras a um nível de sub-palavra, permitindo lidar com palavras fora do vocabulário (OOV) ou variações.
Constituições de frases e documentos: Os embeddings de frases e documentos representam frases ou documentos inteiros como vectores numéricos, utilizando modelos como o Doc2Vec e o BERT. O Doc2Vec baseia-se no paradigma do Word2Vec para gerar embeddings ao nível do documento, permitindo a codificação de documentos ou passagens inteiras. O BERT (Bidirectional Encoder Representations from Transformers) considera o contexto de cada termo numa frase, conduzindo a vectores de embeddings altamente conscientes do contexto.
Image Embeddings: As CNNs podem produzir imagens incorporadas através da extração de caraterísticas em várias camadas da rede. Proporcionam uma abordagem valiosa para a classificação e recuperação de imagens. Por exemplo, a fotografia de um gato pode ter um vetor de incorporação de imagem com caraterísticas que representam as suas orelhas, pelo e cauda. Outros modelos, como o Inception e o ResNet, também têm camadas que podem extrair caraterísticas das imagens. Um modelo Inception pode gerar uma incorporação que representa os atributos visuais de uma imagem, como objectos ou padrões.
- Incorporação de séries temporais: É possível incorporar dados de séries temporais usando redes neurais de memória de curto prazo longa (LSTM) e de unidade recorrente fechada (GRU), que podem capturar dependências temporais. As incorporações baseadas em LSTM ou GRU podem capturar dependências temporais para dados de séries temporais, como preços de acções. Por exemplo, estas incorporações vectoriais podem representar padrões nos movimentos dos preços das acções.
- Embeddings de áudio**: No processamento de áudio, as incorporações de coeficientes cepstrais de mel-frequência (MFCC) representam dados de áudio para tarefas de classificação de áudio. No reconhecimento da fala, os incorporados MFCC captam as caraterísticas acústicas dos sinais de áudio. Por exemplo, podem representar o conteúdo espetral das palavras faladas.
- Incorporação de grafos**: Considere um gráfico de rede social. O Node2Vec pode gerar embeddings de nós onde utilizadores semelhantes (nós) têm vectores mais próximos. Por exemplo, utilizadores com interesses semelhantes podem ter embeddings vectoriais semelhantes. Também é possível usar redes neurais de grafos (GNNs) para gerar embeddings para nós e capturar relações complexas em grafos. As GNNs podem representar utilizadores e itens num sistema de recomendação e prever interações entre utilizadores e itens.
Aplicações de embeddings vetoriais
Eis como pode aplicar as incorporações vectoriais em diferentes domínios.
Imagem, vídeo e áudio [pesquisa de similaridade de vectores] (https://zilliz.com/learn/vetor-similarity-search): É possível extrair embeddings de imagens, frames de vídeo ou segmentos de áudio utilizando técnicas como CNNs para extração de imagens ou caraterísticas. Armazene estas incorporações numa base de dados vetorial. Quando um utilizador faz uma consulta com uma imagem, um fotograma de vídeo ou um clip de áudio, recupera itens semelhantes medindo a semelhança entre as suas incorporações.
- Descoberta de medicamentos por IA**: Ao codificar as estruturas químicas dos compostos em incrustações, pode utilizar estas incrustações para medir a semelhança entre os compostos de medicamentos e prever as potenciais proteínas alvo para os compostos de medicamentos.
- [Motor de pesquisa semântica] (https://zilliz.com/glossary/semantic-search): As incorporações vectoriais melhoram a capacidade do motor de pesquisa, fazendo corresponder o significado das consultas a documentos relevantes, melhorando a relevância da pesquisa.
- Sistema de recomendação**: É possível representar utilizadores e itens como embeddings. Medir a semelhança entre o utilizador e o item para fazer recomendações personalizadas. As recomendações feitas à medida melhoram a experiência do utilizador.
- Deteção de anomalias**: Ao representar os pontos de dados como embeddings, é possível identificar padrões invulgares nos dados. Para tal, calcula a distância ou a dissemelhança entre os pontos de dados. Os pontos de dados com grandes distâncias são potenciais anomalias. Isto pode ser útil na deteção de fraudes, segurança de redes, equipamento industrial ou monitorização de processos.
Ver mais sobre a incorporação de vectores e [casos de utilização de bases de dados vectoriais] (https://zilliz.com/use-cases).
Por que usar embeddings vetoriais
- Reconhecimento de padrões: Os embeddings vectoriais capturam padrões, semelhanças e dissemelhanças nos dados. Os modelos de aprendizagem automática beneficiam dos embeddings que representam padrões significativos, melhorando o desempenho em tarefas como a classificação e o agrupamento.
- Redução da dimensionalidade**: Os embeddings reduzem a dimensionalidade dos dados. Transformam dados de elevada dimensão em vectores de dimensão inferior, simplificando as tarefas computacionais e melhorando frequentemente a eficiência.
- Compreensão semântica**: As incorporações vectoriais codificam relações semânticas entre pontos de dados, facilitando a compreensão e a interpretação de informações complexas por parte das máquinas.
- Processamento eficiente**: Os vectores numéricos são computacionalmente eficientes. Os algoritmos de aprendizagem automática podem processar dados numéricos mais rapidamente e com menos custos computacionais.
- Aprendizagem por transferência**: As incrustações pré-treinadas, como as incrustações de palavras em NLP ou as incrustações de imagens em visão computacional, podem ser ajustadas para tarefas específicas. Isto reduz a necessidade de grandes quantidades de dados rotulados, acelera a convergência do modelo e melhora o desempenho do modelo.
FAQs sobre incorporação de vectores
Onde é que se armazenam as incorporações vectoriais?
Você pode armazenar embeddings vetoriais em um banco de dados vetorial como Milvus, um banco de dados na memória como Redis, bancos de dados como PostgreSQL ou seu sistema de arquivos. A escolha de onde armazenar os embeddings vetoriais depende de fatores como volume de dados, padrões de acesso e requisitos específicos da aplicação.
Qual é a diferença entre bancos de dados vetoriais e incorporações vetoriais?
Os bancos de dados vetoriais são bancos de dados especializados que indexam, armazenam e recuperam dados vetoriais. Em contrapartida, as incorporações vetoriais são representações numéricas de pontos de dados (como frases, imagens ou outros objetos) em um espaço vetorial contínuo. As incrustações captam relações e padrões significativos nos dados, enquanto as bases de dados armazenam os vectores e optimizam as pesquisas de semelhança com base em [métricas de semelhança] vectoriais (https://docs.zilliz.com/docs/search-metrics-explained).
O que são vectores?
Os vetores representam dados não estruturados usando matrizes multidimensionais de números. Exemplos incluem vetores de áudio, vetores de imagem, vídeo ou texto. Permitem operações como pesquisa vetorial. Algoritmos de pesquisa como KNN, ANNS, ou HNSW organizam os dados de forma a tornar rápido o cálculo da distância entre vectores. A distância entre vectores determina a semelhança e os vectores mais próximos são devolvidos na pesquisa. Isto é útil para agrupamento, deteção de anomalias, pesquisa inversa de imagens, resposta a perguntas de chat ou elaboração de recomendações. A criação da estrutura de dados para uma pesquisa vetorial eficiente é designada por criação do [índice vetorial] (https://zilliz.com/learn/vetor-index).
Os Embeddings são diferentes dos vetores?
Embeddings vs. vetores: Tecnicamente, um vetor é um objeto matemático fundamental representado por uma matriz multidimensional de números, enquanto os embeddings são uma técnica para transformar dados não estruturados em representações vectoriais utilizando operações matemáticas que captam relações semânticas entre pontos de dados. Mas na maioria dos casos, especialmente no contexto da aprendizagem automática, os "vectores" e os "embeddings" podem ser utilizados indistintamente.
O que é um índice de vetor?
Um [índice de vectores] (https://zilliz.com/learn/choosing-right-vetor-index-for-your-project), também conhecido como índice de base de dados de vectores ou índice de similaridade, é uma estrutura de dados utilizada em bases de dados de vectores para organizar e otimizar a recuperação de dados de vectores com base em [métricas de similaridade] (https://docs.zilliz.com/docs/search-metrics-explained). Exemplos de índices são FLAT, IVF_FLAT, IVF_PQ, IVF_SQ8, HNSW e SCANN para pesquisas ANN baseadas em CPU e GPU_IVF_FLAT e GPU_IVF_PQ para pesquisas ANN baseadas em GPU.
Qual é a diferença entre Embeddings pré-treinados e Embeddings personalizados?
Os embeddings pré-treinados vêm de modelos de aprendizado profundo pré-treinados chamados pontos de verificação. Esses pontos de verificação geralmente são [modelos de transformador] de código aberto (https://zilliz.com/glossary/transformer-models) que foram treinados em dados públicos. Os embeddings personalizados são provenientes dos seus próprios modelos de aprendizagem profunda treinados nos seus próprios dados de formação personalizados e específicos do domínio.
A base de dados de vectores do Zilliz cria embeddings de vectores?
Sim. A Zilliz Cloud é um serviço de base de dados vetorial totalmente gerido pela Milvus, capaz de criar, armazenar e recuperar milhares de milhões de embeddings vectoriais.
O Zilliz Cloud possui uma poderosa funcionalidade Pipelines, que lhe permite converter dados não estruturados em embeddings vectoriais pesquisáveis de alta qualidade. Esta funcionalidade simplifica o fluxo de trabalho de vectorização para os programadores, abrangendo a criação, recuperação e eliminação de vectores para operações rápidas e eficientes. Também minimiza os custos de manutenção para programadores e empresas, eliminando a necessidade de adotar pilhas de tecnologia adicionais, como modelos de incorporação, para criar as suas aplicações.
Melhores bancos de dados vetoriais para incorporação de vetores
Não existe uma "melhor" base de dados vetorial universal; a escolha depende das suas necessidades. Por isso, é fundamental avaliar a escalabilidade, a funcionalidade, o desempenho e a compatibilidade de uma base de dados vetorial com os seus casos de utilização específicos.
As bases de dados de incorporação de vectores modernas devem ser capazes de pesquisar vectores de forma eficiente, filtrar utilizando metadados e efetuar pesquisas semânticas e por palavras-chave. Devem também ser escaláveis, configuráveis e ter desempenho para lidar com cargas de trabalho de nível empresarial.
Uma ferramenta de benchmarking de código aberto bem reconhecida para ajudar na avaliação é o ANN-Benchmark. ANN-Benchmark permite-lhe representar graficamente os resultados dos testes de recuperação/consultas por segundo de vários algoritmos com base em vários conjuntos de dados pré-computados. O gráfico representa a taxa de recuperação no eixo x contra o QPS no eixo y, ilustrando o desempenho de cada algoritmo em diferentes níveis de precisão de recuperação.
Para além de utilizar ferramentas de aferição de desempenhos, pode também consultar estes gráficos de comparação das principais bases de dados vectoriais de fonte aberta e serviços de bases de dados vectoriais totalmente geridos sobre a sua arquitetura, escalabilidade, desempenho, casos de utilização, custos e conjuntos de caraterísticas.
- O que são embeddings vectoriais?
- Como são criados os embeddings vectoriais?
- Embeddings vectoriais esparsos, densos e binários
- Um guia simples para criar embeddings vetoriais
- Como é que os Embeddings funcionam?
- Diferentes tipos de incorporação de vectores com base na natureza dos dados que estão a ser representados
- Aplicações de embeddings vetoriais
- Por que usar embeddings vetoriais
- FAQs sobre incorporação de vectores
Conteúdo
Comece grátis, escale facilmente
Experimente o banco de dados totalmente gerenciado, construído para seus aplicativos GenAI.
Experimente o Zilliz Cloud grátis