Quantização e Compressão de Vetores
Reduza o armazenamento de vetores e acelere a busca com quantização escalar e de produto, controlando a perda de precisão.
Quantização e Compressão de Vetores é uma aula grátis de LangChain / RAG / Vector DBs 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 LangChain / RAG / Vector DBs, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de LangChain / RAG / Vector DBs inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
The Memory Problem
A million 1536-dimension vectors stored as 32-bit floats need about 6 GB of RAM. Quantization compresses vectors so they fit in far less memory and search faster.
Float32 Baseline
By default each dimension is a 4-byte float. Storage equals vectors x dims x 4 bytes. Reducing the bytes per dimension is the path to compression.
vectors = 1_000_000
dims = 1536
bytes_total = vectors * dims * 4
print(bytes_total / 1e9, "GB") # ~6.14 GBScalar Quantization
Scalar quantization maps each float to an 8-bit integer using the min and max range of that dimension. This is a 4x reduction with modest accuracy loss.
def quantize(x, lo, hi):
span = hi - lo
return round((x - lo) / span * 255)
print(quantize(0.3, -1.0, 1.0)) # 165Dequantization
To compare vectors you can dequantize back to an approximate float, or compute distances directly in integer space for speed.
def dequantize(q, lo, hi):
return lo + (q / 255) * (hi - lo)
print(round(dequantize(165, -1.0, 1.0), 3)) # ~0.294Product Quantization (PQ)
PQ splits each vector into sub-vectors and replaces each with the id of its nearest centroid from a small learned codebook. Compression can reach 16x or more.
How PQ Encodes
For 8 sub-vectors with 256 centroids each, every vector becomes 8 bytes regardless of original dimension. Distances are estimated from precomputed centroid tables.
Binary Quantization
The most aggressive option keeps only the sign of each dimension: positive becomes 1, negative becomes 0. A 1536-dim vector fits in 192 bytes and uses fast Hamming distance.
def binarize(vec):
return [1 if v > 0 else 0 for v in vec]
print(binarize([0.4, -0.1, 0.9, -2.0])) # [1, 0, 1, 0]The Accuracy Tradeoff
More compression means more approximation error. Measure recall against an uncompressed baseline to ensure the quality loss is acceptable for your use case.
Rescoring with Full Vectors
A common pattern: search fast with quantized vectors to get a candidate set, then rescore the top candidates using the original float vectors for precision.
candidates = quantized_search(query, k=100)
rescored = sorted(
candidates,
key=lambda c: exact_distance(query, full_vec[c]),
)[:10]Configuring in a Store
Production stores expose quantization as a collection setting. You pick the type and any rescore depth at index creation.
# pseudo-config
collection.create(
vectors={"size": 1536, "distance": "Cosine"},
quantization={"scalar": {"type": "int8"}},
)Choosing a Strategy
Start with scalar quantization for an easy 4x win. Move to PQ or binary only when memory is critical and you can afford rescoring to recover accuracy.
Quick Check
Test your understanding of vector compression.
Recap
You explored vector compression:
- Scalar quantization: float to int8, 4x smaller
- PQ: codebook ids, big compression
- Binary: sign bits, Hamming distance
- Rescore with full vectors to regain accuracy
Perguntas Frequentes
A aula “Quantização e Compressão de Vetores” é grátis?
Sim — o texto completo de “Quantização e Compressão de Vetores” é 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 LangChain / RAG / Vector DBs, atualize para CoddyKit PRO. O curso de LangChain / RAG / Vector DBs inclui 4 aulas no total.
O que vou aprender em “Quantização e Compressão de Vetores”?
Reduza o armazenamento de vetores e acelere a busca com quantização escalar e de produto, controlando a perda de precisão. Você pratica LangChain / RAG / Vector DBs 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 LangChain / RAG / Vector DBs?
Nenhuma experiência prévia é necessária. LangChain / RAG / Vector DBs 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 “Quantização e Compressão de Vetores”?
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 LangChain / RAG / Vector DBs?
Sim. Cada aula de LangChain / RAG / Vector DBs 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
- Arquiteturas de armazenamento de bancos de dados vetoriais
- Algoritmos de busca por proximidade (HNSW, IVFFlat)
- Persistência e escalabilidade de bancos de dados vetoriais
- Quantização e Compressão de Vetores