0Pricing
Learn AI with Python · Pelajaran

Penyimpanan Vektor: Chroma dan FAISS

Membuat dan menyimpan penyimpanan vektor, pencarian kemiripan, pengambilan MMR, pencarian hibrida.

Penyimpanan Vektor: Chroma dan FAISS adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 3 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.

Apa Itu Penyimpanan Vektor?

Penyimpanan vektor menyimpan potongan yang telah disematkan dan menemukan potongan yang paling mirip dengan sebuah vektor kueri. Penyimpanan ini adalah mesin pencari yang menjadi inti RAG. Dua pilihan yang populer adalah Chroma dan FAISS.

pip install langchain-chroma faiss-cpu

Membuat Penyimpanan Chroma

Chroma.from_documents menyematkan potongan Anda dan mengindeksnya dalam satu panggilan. Teruskan dokumen dan objek penyematan. Chroma mengembalikan penyimpanan yang dapat langsung Anda gunakan untuk mencari.

from langchain_chroma import Chroma
from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
db = Chroma.from_documents(chunks, embeddings)

Menyimpan Chroma secara Permanen

Teruskan persist_directory agar indeks disimpan ke penyimpanan dan tetap ada setelah dimulai ulang. Muat kembali nanti dengan membuat Chroma menggunakan direktori dan penyematan yang sama, sehingga Anda tidak perlu membayar biaya penyematan ulang.

db = Chroma.from_documents(
    chunks, embeddings,
    persist_directory="./chroma_db"
)

# Reload later
db = Chroma(persist_directory="./chroma_db", embedding_function=embeddings)

Pencarian Kemiripan

Lakukan kueri dengan similarity_search(query, k=4). Fungsi ini menyematkan kueri, menemukan k potongan terdekat, lalu mengembalikannya sebagai dokumen. k menentukan jumlah bagian yang diambil.

results = db.similarity_search("How do I reset my password?", k=4)
for doc in results:
    print(doc.page_content[:80])

Skor Pencarian

Gunakan similarity_search_with_score untuk memperoleh skor jarak bagi setiap hasil. Jarak yang lebih kecil berarti lebih mirip. Skor membantu Anda menyaring kecocokan yang lemah sebelum mengirimkannya ke LLM.

pairs = db.similarity_search_with_score("password reset", k=4)
for doc, score in pairs:
    print(round(score, 3), doc.page_content[:60])

Memperkenalkan FAISS

FAISS (Pencarian Kemiripan AI Facebook) adalah pustaka berperforma tinggi untuk pencarian vektor. Pustaka ini sangat cepat dan hemat memori, sehingga ideal untuk indeks lokal berukuran besar tanpa server terpisah.

Membuat Penyimpanan FAISS

API-nya serupa dengan Chroma: FAISS.from_documents membangun indeks. FAISS menyimpan indeks di memori, sehingga sangat cocok untuk pencarian dalam proses yang didominasi pembacaan.

from langchain_community.vectorstores import FAISS

db = FAISS.from_documents(chunks, embeddings)
results = db.similarity_search("refund policy", k=3)

Menyimpan dan Memuat FAISS

Simpan indeks FAISS secara permanen dengan save_local dan muat kembali dengan load_local. Pemuatan ulang memerlukan allow_dangerous_deserialization=True karena indeks menggunakan pickle.

db.save_local("faiss_index")

db = FAISS.load_local(
    "faiss_index", embeddings,
    allow_dangerous_deserialization=True
)

Relevansi vs Keberagaman

Pencarian kemiripan biasa dapat mengembalikan empat potongan yang hampir identik. Terkadang Anda menginginkan hasil yang beragam dan mencakup berbagai aspek jawaban. Di sinilah MMR membantu.

Pengambilan dengan MMR

Relevansi Marginal Maksimal (MMR) menyeimbangkan relevansi dengan keberagaman, dengan memilih potongan yang relevan tetapi tidak berulang. Gunakan search_type="mmr" melalui antarmuka pengambil.

retriever = db.as_retriever(
    search_type="mmr",
    search_kwargs={"k": 4, "fetch_k": 20}
)
docs = retriever.invoke("password reset")

Memilih Chroma atau FAISS

Chroma mudah digunakan, dapat disimpan secara permanen, dan cocok untuk purwarupa serta aplikasi kecil. FAISS lebih cepat pada skala besar dan ideal untuk pencarian dalam memori. Keduanya menyediakan similarity_search dan as_retriever, sehingga mudah untuk beralih.

Pemeriksaan Singkat

Uji pemahaman Anda tentang penyimpanan vektor.

Ringkasan: Chroma dan FAISS

Anda membangun penyimpanan vektor dengan Chroma.from_documents (menggunakan persist_directory) dan FAISS.from_documents, melakukan pencarian dengan similarity_search(query, k=4), serta menyimpan dan memuat keduanya. Anda menggunakan as_retriever dengan MMR untuk mendapatkan hasil yang beragam, dan mempelajari kapan harus memilih setiap penyimpanan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penyimpanan Vektor: Chroma dan FAISS” gratis?

Ya — teks lengkap “Penyimpanan Vektor: Chroma dan FAISS” 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 “Penyimpanan Vektor: Chroma dan FAISS”?

Membuat dan menyimpan penyimpanan vektor, pencarian kemiripan, pengambilan MMR, pencarian hibrida. 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 3 dari 4.

Berapa lama pelajaran “Penyimpanan Vektor: Chroma dan FAISS” 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

  1. Arsitektur LangChain dan LCEL
  2. Memuat, Membagi, dan Membuat Embedding Dokumen
  3. Penyimpanan Vektor: Chroma dan FAISS
  4. Membangun Sistem Tanya Jawab RAG dari Awal hingga Akhir
← Kembali ke Learn AI with Python