Basis Data

Vector Database

Jalur untuk menyimpan dan mencari embedding, dari geometri kemiripan dan pgvector di Postgres hingga Qdrant, Milvus, dan pencarian hibrida.

Jalur ini mengajarkan penyimpanan dan pencarian embedding secara lengkap: pengertian embedding sebagai data, ukuran kemiripan vektor, pencarian eksak dan aproksimatif, lalu penerapannya pada pgvector di Postgres serta Qdrant dan Milvus sebagai mesin khusus. Pencarian hibrida yang memadukan kata kunci dengan vektor, reranking, dan pengukuran recall menjadi bagian penutupnya. Latihan sepanjang jalur menggunakan Python dengan NumPy, sedangkan lab pgvector dan Qdrant menuntut Docker serta PostgreSQL 16 atau lebih baru.

Modul pembuka: masalah pengambilan yang dijawab basis data vektor, posisinya di antara sistem penyimpanan lain, dan penyiapan lab.

  1. Mengapa Basis Data Vektor AdaMasalah pengambilan dokumen di era LLM dalam satu pelajaran, beserta alasan kemiripan vektor menjadi jawabannya.
  2. Posisi di Antara Basis Data LainPemetaan posisi basis data vektor terhadap basis data relasional, dokumen, cache, dan mesin pencari.
  3. Penyiapan LabMenyiapkan Postgres dengan pgvector, Qdrant dalam container, dan endpoint model embedding untuk latihan sepanjang jalur.
Embedding sebagai Data 4 pelajaran

Embedding diperlakukan sebagai data skema: model, dimensi, dan metadata yang menemani setiap vektor.

  1. Apa Itu Embedding ?Teks atau objek lain sebagai titik pada ruang berdimensi tinggi beserta makna geometrisnya.
  2. Dari Mana Embedding BerasalModel embedding pretrained sebagai sumber vektor dan alasan menggunakan model jadi alih-alih melatih sendiri.
  3. Dimensi dan Pilihan ModelDimensi sebagai biaya penyimpanan dan kecepatan pencarian, beserta pertimbangan memilih keluarga model.
  4. Metadata di Samping VektorID dan payload yang menemani vektor serta alasan vektor jarang berdiri sendiri.
Kemiripan Vektor 4 pelajaran

Ukuran kemiripan antar vektor: cosine, dot product, dan Euclidean, beserta pasangan metrik dan modelnya.

  1. Jarak vs KemiripanKeluarga ukuran kemiripan vektor: cosine, dot product, dan Euclidean (L2), beserta konteks penggunaannya.
  2. Cosine dalam PraktikNormalisasi vektor dan alasan vektor ternormalisasi membuat dot product dan cosine menghasilkan peringkat yang sama.
  3. Pasangan Metrik dan ModelMenggunakan jarak yang menjadi dasar pelatihan model embedding sebagai metrik pencarian.
  4. Dari Kemiripan ke PeringkatPengambilan top-k sebagai primitif query pada pencarian vektor.

Dari pencarian eksak yang benar tetapi lambat menuju indeks ANN yang menukar recall demi kecepatan.

  1. Harga Pencarian EksakPemindaian linear sebagai pencarian kNN eksak: benar, sederhana, dan berbiaya O(n) pada setiap query.
  2. Masalah Approximate Nearest NeighborDefinisi pencarian tetangga terdekat aproksimatif dan komprominya antara recall dan kecepatan.
  3. Keluarga IndeksPeta keluarga indeks ANN: IVF berbasis klaster, HNSW berbasis graf, dan kuantisasi sebagai kompresi.
  4. Menala Kompromi Recall dan LatensiParameter pencarian sebagai pengatur recall, dengan recall@k sebagai hasil pengukurannya.

pgvector di dalam Postgres: kolom vektor, indeks HNSW dan IVFFlat, query SQL, dan filter bersama vektor.

  1. Argumen pgvectorSatu basis data untuk baris relasional, JSON, dan vektor sebagai argumen operasional memilih pgvector.
  2. Kolom Vektor dan IndeksTipe vector dan pembuatan indeks HNSW serta IVFFlat dalam SQL pgvector.
  3. Pencarian Kemiripan dalam SQLOperator jarak pgvector, query terparameter, dan pemeriksaan penggunaan indeks dengan EXPLAIN.
  4. Filter Bersama VektorKlausa WHERE bersama pencarian vektor serta perbedaan pra-filter dan pasca-filter.

Qdrant dan Milvus sebagai mesin khusus, pencarian terfilter, fusi kata kunci dan vektor, hingga reranking.

  1. Pola QdrantCollection, indeks payload, dan pencarian terfilter pada Qdrant sebagai pola mesin khusus.
  2. Pola MilvusPengenalan arsitektur terdistribusi Milvus: collection, partisi, dan tipe indeksnya.
  3. Vektor plus FilterMasalah pencarian ANN terfilter dan cara mesin khusus menyelesaikannya.
  4. Kata Kunci Bertemu VektorBM25 bersama pencarian vektor dan fusi peringkat dengan reciprocal rank fusion.
  5. RerankingCross-encoder sebagai tahap kedua setelah pengambilan tahap pertama.
Evaluasi dan Produksi 4 pelajaran

Mengukur recall, memperhitungkan biaya dan operasi, mengelola perubahan model, serta peta medan lebih luas.

  1. Mengukur Recall@kHimpunan ground truth dan metrik pengambilan yang bermakna untuk menilai kualitas pencarian vektor.
  2. Biaya dan OperasiHitungan memori, query per detik, dan waktu pembangunan indeks sebagai tagihan operasional pencarian vektor.
  3. Siklus Hidup EmbeddingPerubahan model embedding sebagai migration: re-embed, penerapan versi, dan backfill.
  4. Medan yang Lebih LuasRedis Vector Sets dan layanan vektor cloud sebagai peta medan di luar tiga mesin utama.