Pular para o conteúdo principal

Capítulo 1: Introdução aos Armazenamentos Vetoriais

O Que Torna os Bancos de Dados Vetoriais Especiais?​

Bancos de dados tradicionais são otimizados para buscas exatas:

SELECT * FROM products WHERE id = 123;

Bancos de dados vetoriais são otimizados para busca por similaridade:

# Encontrar os 10 vetores mais similares ao query_vector
results = vector_db.search(query_vector, top_k=10)

Algoritmos de Indexação​

HNSW (Hierarchical Navigable Small World)​

O algoritmo mais popular para busca vetorial:

# Parâmetros do HNSW
index = create_hnsw_index(
vectors=embeddings,
M=16, # Número de conexões por nó
ef_construction=200, # Qualidade na construção
ef_search=50 # Qualidade na consulta
)

Características:

  • Excelente velocidade de consulta
  • Alto uso de memória
  • Melhor para a maioria dos casos

IVF (Inverted File Index)​

Agrupa vetores para busca mais rápida:

# Parâmetros do IVF
index = create_ivf_index(
vectors=embeddings,
nlist=100, # Número de clusters
nprobe=10 # Clusters a serem buscados
)

Características:

  • Menor uso de memória que o HNSW
  • Requer treinamento
  • Bom para grandes volumes de dados

Flat Index​

Busca exata por força bruta:

# Sem parâmetros - busca exata
index = create_flat_index(vectors=embeddings)

Características:

  • Precisão perfeita
  • Busca mais lenta
  • Bom para conjuntos de dados pequenos

Comparação de Algoritmos​

AlgoritmoVelocidadeMemóriaPrecisãoMelhor Uso
HNSWRápidoAlta~95%Maioria dos casos
IVFMédiaMédia~90%Grande escala
FlatLentoBaixa100%Dados pequenos

Armazenamento de Metadados​

Bancos de dados vetoriais armazenam metadados junto aos vetores:

vectorstore.add(
vectors=[embedding],
documents=["Documento de política da empresa"],
metadata=[{
"source": "handbook.pdf",
"page": 15,
"department": "RH",
"date": "2024-01-15"
}]
)

# Filtrar por metadados durante a busca
results = vectorstore.search(
query_vector,
filter={"department": "RH"},
top_k=5
)

Principais Funcionalidades a Considerar​

FuncionalidadeDescrição
FiltragemConsulta por metadados
AtualizaçõesModificar vetores existentes
ExclusãoRemover vetores
NamespacesIsolar dados
ReplicaçãoAlta disponibilidade
ShardingEscalabilidade horizontal

Resumo​

  • Bancos de dados vetoriais permitem busca por similaridade
  • HNSW é o algoritmo mais comum
  • Filtragem por metadados é essencial para produção
  • Escolha de acordo com escala e requisitos

Próximos Passos​

Continue para Capítulo 2: Opções Populares.