Getirme için Kosinüs Benzerliği
Kosinüs benzerliği iki vektör arasındaki açıyı ölçer; anlamsal aramadaki standart uzaklık ölçüsüdür.
Getirme için Kosinüs Benzerliği, CoddyKit'te ücretsiz bir AI Agents 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, AI Agents öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Agents kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Benzerliği Ölçme
İki vektör ne kadar yakın? Yaygın üç uzaklık ölçütü:
- Kosinüs benzerliği — vektörler arasındaki açı
- Noktasal çarpım — izdüşüm
- Öklid (L2) uzaklığı — doğrusal mesafe
Metin gömmeleri için varsayılan seçenek kosinüstür.
Kosinüs Benzerliği Formülü
A ve B vektörleri için:
cos(A, B) = (A . B) / (|A| * |B|)
Sonuç -1 ile 1 arasındadır:
- 1 = aynı yön
- 0 = dik (ilişkisiz)
- -1 = zıt yön
NumPy ile Python'da
Doğrudan uygulama:
import numpy as np
def cosine_similarity(a, b):
a = np.array(a)
b = np.array(b)
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
print(cosine_similarity(vec_apple, vec_orange)) # high
print(cosine_similarity(vec_apple, vec_car)) # lowÖnceden Normalize Edilmiş Vektörler
Gömme vektörleriniz zaten normalize edilmişse (OpenAI tarafından üretilenler öyledir), kosinüs = noktasal çarpım olur ve bölme işlemini atlarsınız:
def cosine_normalized(a, b):
return np.dot(a, b) # fasterEn İyi K Sonucun Getirilmesi
Bir sorguya en çok benzeyen K belgeyi bulmak için her belgeyle benzerliği hesaplayıp sıralayın:
def topk(query_vec, doc_vecs, k=5):
scores = [(np.dot(query_vec, v), i) for i, v in enumerate(doc_vecs)]
scores.sort(reverse=True)
return scores[:k]Ölçeklendirme
Basit en iyi K yaklaşımı, sorgu başına O(N) maliyetlidir — 10 bin belge için uygundur, ancak 10 milyon belgede yavaştır. Büyük derlemler için yaklaşık en yakın komşu (ANN) dizinleri kullanın: HNSW, IVF, FAISS.
Neden Öklidyen Değil?
L2 uzaklığı, vektörün LENGTH değerini anlamlı kabul eder. Gömme vektörlerinde yön, büyüklükten daha önemlidir — kosinüs bu yüzden daha iyi sonuç verir.
Normalize edilmiş vektörlerde L2 ve kosinüs aynı sıralamayı verir; bu nedenle sonuç değişmez.
Noktasal Çarpım ve Kosinüs
Vektörler zaten normalize edilmişse noktasal çarpım = kosinüs olur ve daha hızlıdır (bölme işlemi gerekmez). Üretim sistemlerinin çoğu, normalize edilmiş vektörler üzerinde noktasal çarpım kullanır.
A Tiny End-to-End Retrieval
docs = ['Python is a programming language', 'Pizza is Italian food', 'The Eiffel Tower is in Paris']
doc_vecs = [embed(d) for d in docs]
query_vec = embed('What is Python?')
scores = [(cosine_similarity(query_vec, v), d) for v, d in zip(doc_vecs, docs)]
scores.sort(reverse=True)
for s, d in scores:
print(f'{s:.3f} {d}')
# 0.83 Python is a programming language
# 0.45 Pizza is Italian food
# 0.41 The Eiffel Tower is in ParisHibrit Getirme
Her iki yaklaşımın da avantajlarından yararlanmak için kosinüs benzerliğini anahtar sözcük aramasıyla (BM25) birleştirin — anlamsal eşleşme + tam eşleşme. Üretim sistemlerinin çoğu günümüzde hibrit getirme kullanır.
Eşik Tabanlı Filtreleme
LLM'ye ilgisiz bağlam göndermemek için benzerlik eşiğinin altındaki sonuçları çıkarın:
results = [r for r in retrieved if r.score > 0.7]Kosinüs Aralığı
Kosinüs benzerliği değerlerinin aralığı nedir?
Özet
Kosinüs benzerliği, gömme vektörü getirme işlemlerinde kullanılan standart ölçüttür. Üretim ölçeğinde çalışmak için bunu hibrit arama ve ANN ile birleştirin.
Sıkça Sorulan Sorular
“Getirme için Kosinüs Benzerliği” dersi ücretsiz mi?
Evet — “Getirme için Kosinüs Benzerliği” 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 AI Agents kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Agents kursu toplamda 4 dersten oluşur.
“Getirme için Kosinüs Benzerliği” dersinde ne öğreneceğim?
Kosinüs benzerliği iki vektör arasındaki açıyı ölçer; anlamsal aramadaki standart uzaklık ölçüsüdür. AI Agents 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.
AI Agents öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Agents, 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.
“Getirme için Kosinüs Benzerliği” 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 AI Agents dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Agents 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
- Gömüntüler Nedir (Vektör Gösterimleri)
- text-embedding-3 ile Gömüntü Üretme
- Getirme için Kosinüs Benzerliği
- Gömüntü Modellerini Karşılaştırma (OpenAI ve Cohere ve OSS)