Vektör Depoları: Chroma ve FAISS
Vektör depoları oluşturma ve kalıcılaştırma, benzerlik araması, MMR erişimi, hibrit arama.
Vektör Depoları: Chroma ve FAISS, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.
Vektör Deposu Nedir?
Bir vektör deposu, gömülmüş parçalarınızı saklar ve bir sorgu vektörüne en çok benzeyen parçaları bulur. RAG'nin merkezindeki arama motorudur. İki popüler seçenek Chroma ve FAISS'tir.
pip install langchain-chroma faiss-cpuChroma Deposu Oluşturma
Chroma.from_documents, parçalarınızı gömer ve tek bir çağrıyla dizinler. Belgeleri ve bir gömme nesnesini verin. Chroma, hemen arama yapabileceğiniz bir depo döndürür.
from langchain_chroma import Chroma
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
db = Chroma.from_documents(chunks, embeddings)Chroma'yı Diske Kalıcı Olarak Kaydetme
Dizinin diske kaydedilmesi ve yeniden başlatmalardan sonra da korunması için persist_directory değerini verin. Daha sonra aynı dizin ve gömmelerle Chroma oluşturarak dizini yeniden yükleyebilir ve yeniden gömme maliyetinden kaçınabilirsiniz.
db = Chroma.from_documents(
chunks, embeddings,
persist_directory="./chroma_db"
)
# Reload later
db = Chroma(persist_directory="./chroma_db", embedding_function=embeddings)Benzerlik Araması
similarity_search(query, k=4) ile sorgulayın. Sorguyu gömer, en yakın k parçayı bulur ve bunları Belge nesneleri olarak döndürür. k, kaç bölüm getireceğinizi belirler.
results = db.similarity_search("How do I reset my password?", k=4)
for doc in results:
print(doc.page_content[:80])Aramayla Birlikte Puanları Alma
Her sonuç için bir uzaklık puanı almak üzere similarity_search_with_score kullanın. Daha düşük uzaklık, daha yüksek benzerlik anlamına gelir. Puanlar, sonuçları LLM'e göndermeden önce zayıf eşleşmeleri filtrelemenize yardımcı olur.
pairs = db.similarity_search_with_score("password reset", k=4)
for doc, score in pairs:
print(round(score, 3), doc.page_content[:60])FAISS'e Giriş
FAISS (Facebook Yapay Zekâ Benzerlik Araması), vektör aramaya yönelik yüksek performanslı bir kütüphanedir. Son derece hızlı ve bellek açısından verimlidir; ayrı bir sunucu olmadan büyük yerel dizinler için idealdir.
FAISS Deposu Oluşturma
API, Chroma'dakine benzer: FAISS.from_documents dizini oluşturur. FAISS dizini bellekte tutar; bu nedenle okuma ağırlıklı, işlem içi aramalar için idealdir.
from langchain_community.vectorstores import FAISS
db = FAISS.from_documents(chunks, embeddings)
results = db.similarity_search("refund policy", k=3)FAISS'i Kaydetme ve Yükleme
Bir FAISS dizinini save_local ile kalıcı hâle getirin ve load_local ile yeniden yükleyin. Dizin pickle kullandığı için yeniden yükleme sırasında allow_dangerous_deserialization=True gerekir.
db.save_local("faiss_index")
db = FAISS.load_local(
"faiss_index", embeddings,
allow_dangerous_deserialization=True
)Alaka ve Çeşitlilik
Düz benzerlik araması, neredeyse aynı dört parçayı döndürebilir. Bazen yanıtın farklı yönlerini kapsayan çeşitli sonuçlar istersiniz. MMR burada yardımcı olur.
MMR ile Getirme
Maksimum Marjinal Uygunluk (MMR), alaka ile çeşitlilik arasında denge kurarak ilgili ancak yinelenmeyen parçaları seçer. Getirici arayüzü üzerinden search_type="mmr" kullanın.
retriever = db.as_retriever(
search_type="mmr",
search_kwargs={"k": 4, "fetch_k": 20}
)
docs = retriever.invoke("password reset")Chroma ve FAISS Arasında Seçim
Chroma kullanımı kolay ve kalıcıdır; prototipler ile küçük uygulamalar için uygundur. FAISS, ölçek büyüdüğünde daha hızlıdır ve bellek içi aramalar için idealdir. Her ikisi de similarity_search ve as_retriever sunar; bu nedenle geçiş yapmak kolaydır.
Hızlı Kontrol
Vektör deposu konusundaki bilginizi sınayın.
Özet: Chroma ve FAISS
persist_directory kullanarak Chroma.from_documents ve FAISS.from_documents ile vektör depoları oluşturdunuz, similarity_search(query, k=4) ile arama yaptınız ve her ikisini de kaydedip yeniden yüklediniz. Çeşitli sonuçlar elde etmek için MMR ile as_retriever kullandınız ve her depoyu ne zaman seçmeniz gerektiğini öğrendiniz.
Sıkça Sorulan Sorular
“Vektör Depoları: Chroma ve FAISS” dersi ücretsiz mi?
Evet — “Vektör Depoları: Chroma ve FAISS” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.
“Vektör Depoları: Chroma ve FAISS” dersinde ne öğreneceğim?
Vektör depoları oluşturma ve kalıcılaştırma, benzerlik araması, MMR erişimi, hibrit arama. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Vektör Depoları: Chroma ve FAISS” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- LangChain Mimarisi ve LCEL
- Belge Yükleme, Bölme ve Gömme
- Vektör Depoları: Chroma ve FAISS
- Uçtan Uca RAG Soru-Cevap Sistemi Oluşturma