Introdução aos bancos de dados vetoriais
Entenda por que os bancos de dados vetoriais existem, como usar FAISS para busca local por similaridade e como armazenar embeddings para recuperação por IA.
Introdução aos bancos de dados vetoriais é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
Além das correspondências exatas
Bancos de dados tradicionais encontram linhas por valores exatos (WHERE name = "x"). Mas a IA trabalha com incorporações — vetores que capturam significado — e muitas vezes você quer os itens mais semelhantes a uma consulta, não correspondências exatas.
Os bancos de dados vetoriais existem para tornar essa busca por similaridade rápida.
O que é uma incorporação?
Uma incorporação é uma lista de números (um vetor) que representa texto, uma imagem ou áudio, de modo que itens semelhantes fiquem próximos uns dos outros no espaço vetorial.
A busca semântica, as recomendações e a geração aumentada por recuperação (RAG) dependem de incorporações.
import numpy as np
# A toy 4-dim embedding for a sentence
vec = np.array([0.12, -0.43, 0.88, 0.05], dtype="float32")
print(vec.shape) # (4,)Por que não um banco de dados comum?
Comparar uma consulta com milhões de vetores usando um laço de força bruta é lento. Bancos de dados vetoriais usam índices especializados e cálculos de distância para retornar os vizinhos mais próximos em milissegundos.
Eles também são escaláveis, persistem dados e lidam com metadados junto com os vetores.
Medindo a similaridade
A proximidade é medida com uma métrica de distância:
- L2 (Euclidiana) — distância em linha reta; quanto menor, mais próximos
- Cosseno — ângulo entre vetores; adequado para texto
FAISS oferece várias opções; usaremos L2.
Apresentando o FAISS
FAISS (Facebook AI Similarity Search) é uma biblioteca rápida e gratuita para busca vetorial. Ela é executada localmente, sem servidor — ideal para aprender e criar protótipos.
import faiss
import numpy as np
# pip install faiss-cpuCriando um índice com IndexFlatL2
IndexFlatL2(dim) cria um índice plano (de força bruta e exato) usando a distância L2. Você precisa informar a dimensão dos seus vetores.
“Plano” significa resultados exatos — perfeito para coleções pequenas ou médias.
import faiss
dim = 4
index = faiss.IndexFlatL2(dim)
print(index.is_trained) # True (flat index needs no training)Adicionando vetores com index.add
Forneça suas incorporações como uma matriz NumPy bidimensional de float32 com formato (n, dim). index.add armazena os vetores; index.ntotal informa a quantidade.
import numpy as np
embeddings = np.random.random((100, dim)).astype("float32")
index.add(embeddings)
print(index.ntotal) # 100Pesquisando com index.search
index.search(query, k) retorna os k vetores mais próximos. Ele devolve duas matrizes: distâncias D e índices I (posições na ordem em que você os adicionou).
query = np.random.random((1, dim)).astype("float32")
D, I = index.search(query, k=5)
print("nearest ids:", I[0])
print("distances:", D[0])Dos índices de volta aos itens
FAISS retorna posições, não seus dados originais. Mantenha uma lista paralela (ou um banco de dados) que associe a posição do índice ao item real para poder consultar os resultados.
docs = ["doc about cats", "doc about dogs", "doc about cars"]
# after search:
for pos in I[0]:
print(docs[pos]) # map id -> original documentUm pequeno fluxo de busca semântica
O padrão completo é: incorpore seus documentos, adicione-os a um índice, incorpore a consulta, faça a busca e retorne os documentos correspondentes. (Modelos de incorporação, como sentence-transformers, produzem os vetores.)
import faiss, numpy as np
# doc_vectors: (n, dim) from an embedding model
index = faiss.IndexFlatL2(doc_vectors.shape[1])
index.add(doc_vectors)
# query_vec: (1, dim) embedding of the user query
D, I = index.search(query_vec, k=3)
results = [docs[i] for i in I[0]]
print(results)Quando usar um banco de dados vetorial
Use um banco de dados vetorial quando precisar de:
- Busca semântica em textos ou imagens
- Recomendações por similaridade
- RAG: recuperação de contexto relevante para um LLM
FAISS é excelente localmente; opções gerenciadas (Pinecone, Weaviate, pgvector) acrescentam persistência e escalabilidade.
Verificação rápida: busca com FAISS
Você chama index.search(query, k=5) em um índice FAISS.
Recapitulação: bancos de dados vetoriais
Você aprendeu os fundamentos da busca por similaridade:
- As incorporações posicionam itens semelhantes próximos uns dos outros no espaço vetorial
- Bancos de dados vetoriais tornam rápida a busca pelos vizinhos mais próximos em grande escala
- FAISS
IndexFlatL2(dim)cria um índice L2 exato index.add(embeddings)armazena vetores;index.search(query, k)retorna distâncias e índices- Associe os índices retornados novamente aos seus itens originais
Isso conclui os bancos de dados. Próximo assunto: estruturar projetos de IA com Git.
Perguntas Frequentes
A aula “Introdução aos bancos de dados vetoriais” é grátis?
Sim — o texto completo de “Introdução aos bancos de dados vetoriais” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “Introdução aos bancos de dados vetoriais”?
Entenda por que os bancos de dados vetoriais existem, como usar FAISS para busca local por similaridade e como armazenar embeddings para recuperação por IA. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Introdução aos bancos de dados vetoriais”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- SQLite com o módulo sqlite3 do Python
- Integração entre Pandas e SQL
- Armazenamento e consulta de resultados de aprendizado de máquina
- Introdução aos bancos de dados vetoriais