Aşama 2: Embeddings ve Semantik Arama

Anahtar kelime araması, kelimeler tam olarak eşleşmediğinde başarısız olur.

Eğer bir özgeçmiş "ekip yönetimi" (team management) diyor ve bir iş tanımı "liderlik" (leadership) istiyorsa, temel bir arama sıfır sonuç döndürür. Kelimeler farklıdır ancak anlam aynıdır.

Aşama 2, bunu embeddings ve semantik arama kullanarak çözer.

Nasıl çalışır:

• Tokenization: Bilgisayarlar kelimeleri okumaz; sayıları okur. Bir tokenizer, metni token adı verilen küçük parçalara ayırır ve bunları Token ID'lerine dönüştürür. Yaygın kelimeler tek bir token haline gelirken, nadir kelimeler birden fazla token'a bölünür.

• Embeddings: Bir Token ID sadece bir etikettir. Embedding katmanı bu ID'yi bir vektöre dönüştürür. Vektör, anlamı temsil eden uzun bir sayı listesidir. Bir model, bir kavramı tanımlamak için tek bir sayı yerine birçok boyut kullanır.

• Boyutlar: Bu sayıları koordinatlar olarak düşünün. Bir boyut "frontend vs backend"i temsil edebilir; bir diğeri "web vs sistemler"i temsil edebilir. Yüksek boyutlu vektörler, modelin "React" ve "JavaScript"i matematiksel bir uzayda birbirine yakın konumlandırmasına olanak tanır.

• Semantik Arama: Bir soru sorduğunuzda, sistem sorunuzu bir vektöre dönüştürür. Ardından vektörünüzü, saklanan belgelerinizin vektörleriyle karşılaştırır.

• Cosine Similarity: Bu, iki vektör arasındaki açıyı ölçer. Eğer vektörler aynı yönü gösteriyorsa benzerdirler. Bu, sadece "ihbar süresi" (notice period) araması yapsanız bile sistemin "istifa gerekliliklerini" (resignation requirements) bulmasını sağlar.

Üretim (production) için temel dersler:

  • Vektör Veritabanları: Milyonlarca vektörü aramak yavaştır. Pinecone veya Qdrant gibi veritabanları, en yakın komşuları milisaniyeler içinde bulmak için indeksleme kullanır.
  • Model Migrasyonları: Her embedding modeli farklı bir matematiksel uzay kullanır. Bir OpenAI vektörünü bir Cohere vektörüyle karşılaştıramazsınız. Modelleri değiştirirseniz, tüm verilerinizi yeniden embed etmeniz (re-embed) gerekir.
  • Maliyet vs ROI: Milyonlarca veri parçasını (chunk) yeniden embed etmek pahalıdır. Şirketler, doğruluk artışı migrasyon maliyetini karşılamadığı sürece genellikle eski modellerle devam ederler.
  • Ham metin parçalarınızı (raw text chunks) her zaman saklayın. Modelinizi daha sonra yükseltirseniz, yeni vektörler oluşturmak için eski metni kullanabilirsiniz.

Aşama 2, zekanın ortaya çıktığı yerdir.

Kaynak: https://dev.to/surajrkhonde/phase-2-embeddings-semantic-search-3lco

İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi