0Pricing
Learn AI with Python · Aula

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-cpu

Criando 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)   # 100

Pesquisando 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 document

Um 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

  1. SQLite com o módulo sqlite3 do Python
  2. Integração entre Pandas e SQL
  3. Armazenamento e consulta de resultados de aprendizado de máquina
  4. Introdução aos bancos de dados vetoriais
← Voltar para Learn AI with Python