Pengantar Basis Data Vektor
Mengapa basis data vektor diperlukan, FAISS untuk pencarian kemiripan lokal, serta penyimpanan embedding untuk pengambilan data oleh kecerdasan buatan.
Pengantar Basis Data Vektor adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.
Melampaui Kecocokan Persis
Basis data tradisional menemukan baris berdasarkan nilai yang persis (WHERE name = "x"). Namun, AI bekerja dengan representasi vektor — vektor yang menangkap makna — dan Anda sering kali menginginkan elemen yang paling serupa dengan kueri, bukan kecocokan persis.
Basis data vektor dibuat agar pencarian berdasarkan kemiripan ini berlangsung cepat.
Apa Itu Representasi Vektor
Representasi vektor adalah daftar angka (sebuah vektor) yang mewakili teks, gambar, atau audio sehingga elemen yang serupa berada berdekatan dalam ruang vektor.
Pencarian semantik, rekomendasi, dan generasi berbantuan pengambilan (RAG) semuanya bertumpu pada representasi vektor.
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,)Mengapa Bukan Basis Data Biasa
Membandingkan kueri dengan jutaan vektor menggunakan perulangan pemeriksaan menyeluruh berlangsung lambat. Basis data vektor menggunakan indeks khusus dan perhitungan jarak untuk mengembalikan tetangga terdekat dalam hitungan milidetik.
Basis data tersebut juga dapat diskalakan, menyimpan data secara permanen, dan menangani metadata bersama vektor.
Mengukur Kemiripan
Kedekatan diukur dengan metrik jarak:
- L2 (Euklides) — jarak garis lurus; semakin kecil berarti semakin dekat
- Kosinus — sudut antara vektor; cocok untuk teks
FAISS mendukung beberapa metrik; kita akan menggunakan L2.
Memperkenalkan FAISS
FAISS (Pencarian Kemiripan AI Facebook) adalah pustaka cepat dan gratis untuk pencarian vektor. Pustaka ini berjalan secara lokal tanpa server — ideal untuk belajar dan membuat prototipe.
import faiss
import numpy as np
# pip install faiss-cpuMembuat Indeks dengan IndexFlatL2
IndexFlatL2(dim) membuat indeks datar (pemeriksaan menyeluruh, persis) menggunakan jarak L2. Anda harus memberi tahu indeks tersebut dimensi vektor Anda.
"Datar" berarti hasil yang persis — sempurna untuk koleksi kecil hingga menengah.
import faiss
dim = 4
index = faiss.IndexFlatL2(dim)
print(index.is_trained) # True (flat index needs no training)Menambahkan Vektor dengan index.add
Masukkan representasi vektor Anda sebagai larik NumPy 2D berisi bilangan pecahan 32-bit dengan bentuk (n, dim). index.add menyimpannya; index.ntotal melaporkan jumlahnya.
import numpy as np
embeddings = np.random.random((100, dim)).astype("float32")
index.add(embeddings)
print(index.ntotal) # 100Mencari dengan index.search
index.search(query, k) mengembalikan k vektor terdekat. Hasilnya berupa dua larik: jarak D dan indeks I (posisi dalam urutan saat Anda menambahkannya).
query = np.random.random((1, dim)).astype("float32")
D, I = index.search(query, k=5)
print("nearest ids:", I[0])
print("distances:", D[0])Dari Indeks Kembali ke Elemen
FAISS mengembalikan posisi, bukan data asli Anda. Simpan daftar paralel (atau basis data) yang memetakan posisi indeks ke elemen sebenarnya agar Anda dapat mencari hasilnya.
docs = ["doc about cats", "doc about dogs", "doc about cars"]
# after search:
for pos in I[0]:
print(docs[pos]) # map id -> original documentAlur Kerja Pencarian Semantik Sederhana
Pola lengkapnya: ubah dokumen Anda menjadi representasi vektor, tambahkan ke indeks, ubah kueri menjadi representasi vektor, lakukan pencarian, lalu kembalikan dokumen yang cocok. (Model representasi seperti sentence-transformers menghasilkan vektor tersebut.)
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)Kapan Menggunakan Basis Data Vektor
Gunakan basis data vektor saat Anda memerlukan:
- Pencarian semantik pada teks atau gambar
- Rekomendasi berdasarkan kemiripan
- RAG: pengambilan konteks yang relevan untuk LLM
FAISS sangat baik untuk penggunaan lokal; opsi terkelola (Pinecone, Weaviate, pgvector) menambahkan persistensi dan kemampuan untuk diskalakan.
Pemeriksaan Singkat: Pencarian FAISS
Anda memanggil index.search(query, k=5) pada indeks FAISS.
Ringkasan: Basis Data Vektor
Anda telah mempelajari dasar-dasar pencarian berdasarkan kemiripan:
- Representasi vektor menempatkan elemen yang serupa berdekatan dalam ruang vektor
- Basis data vektor membuat pencarian tetangga terdekat berlangsung cepat dalam skala besar
- FAISS
IndexFlatL2(dim)membuat indeks L2 yang persis index.add(embeddings)menyimpan vektor;index.search(query, k)mengembalikan jarak dan indeks- Petakan indeks yang dikembalikan kembali ke elemen asli Anda
Dengan demikian, pembahasan basis data selesai. Selanjutnya: menyusun proyek AI dengan Git.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pengantar Basis Data Vektor” gratis?
Ya — teks lengkap “Pengantar Basis Data Vektor” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pengantar Basis Data Vektor”?
Mengapa basis data vektor diperlukan, FAISS untuk pencarian kemiripan lokal, serta penyimpanan embedding untuk pengambilan data oleh kecerdasan buatan. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn AI with Python?
Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Pengantar Basis Data Vektor” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?
Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- SQLite dengan Modul sqlite3 Python
- Integrasi Pandas dan SQL
- Menyimpan dan Membuat Kueri Hasil Pembelajaran Mesin
- Pengantar Basis Data Vektor