16 puan yazan xguru 2024-09-21 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Bir yapay zeka modelinin belirli bir bağlamda faydalı olabilmesi için arka plan bilgisine erişmesi gerekir
  • Geliştiriciler genellikle yapay zeka modelinin bilgisini geliştirmek için Retrieval-Augmented Generation (RAG) kullanır
  • Geleneksel RAG çözümleri, bilgiyi kodlarken bağlamı kaldırdığı için ilgili bilgiyi çoğu zaman geri getiremez
  • Contextual Retrieval, RAG'in arama aşamasını büyük ölçüde iyileştiren bir yöntemdir ve Contextual Embeddings ile Contextual BM25 adlı iki alt teknik kullanır
  • Bu yöntem arama başarısızlık oranını %49 azaltabilir; yeniden sıralama ile birleştirildiğinde bu oran %67'ye kadar çıkabilir
  • Geliştiriciler Claude ile kendi Contextual Retrieval çözümlerini kolayca dağıtabilir

Uzun prompt kullanımı hakkında notlar

  • Bilgi tabanı 200.000 token'dan küçükse, tüm bilgi tabanı modele verilen prompt'un içine eklenebilir
  • Anthropic kısa süre önce Claude için prompt caching'i kullanıma sundu; bu da bu yaklaşımı çok daha hızlı ve maliyet açısından verimli hale getiriyor
  • Knowledge Base büyüdükçe daha ölçeklenebilir bir çözüme ihtiyaç duyulur; bu noktada Contextual Retrieval gerekir

RAG temelleri: büyük bilgi tabanlarına ölçeklenme

  • Bağlam penceresine sığmayan daha büyük bilgi tabanları için yaygın çözüm RAG'dir
  • RAG, bilgi tabanını daha küçük parçalara ayırır, bunları vektör embedding'lerine dönüştürür ve ardından anlamsal benzerlik üzerinden aranabilen bir vektör veritabanında saklar
  • Embedding modelleri anlamsal ilişkileri yakalamada çok başarılıdır, ancak önemli birebir eşleşmeleri kaçırabilir
  • BM25, tam kelime veya ifade eşleşmelerini bulmak için sözcüksel eşleştirme kullanan bir sıralama fonksiyonudur; özellikle benzersiz tanımlayıcılar veya teknik terimler içeren sorgularda etkilidir
  • RAG çözümleri, embedding ve BM25 tekniklerini aşağıdaki adımlarla birleştirerek en uygun parçaları daha doğru biçimde geri getirebilir:
    • Bilgi tabanını (belgelerin "corpus"unu) genellikle birkaç yüz token'dan kısa daha küçük metin parçalarına ayırma
    • Bu parçalar için TF-IDF kodlamaları ve anlamsal embedding'ler üretme
    • BM25 kullanarak tam eşleşmeye dayalı en iyi parçaları bulma
    • Embedding kullanarak anlamsal benzerliğe dayalı en iyi parçaları bulma
    • Sıralama birleştirme teknikleriyle (3) ve (4)'ün sonuçlarını birleştirip yinelenenleri kaldırma
    • Yanıt üretmek için en iyi K parçayı prompt'a ekleme

Contextual Retrieval'e giriş

  • Geleneksel RAG'de belgeler daha küçük parçalara bölündüğü için tek tek parçalar yeterli bağlamdan yoksun kalabilir
  • Contextual Retrieval bu sorunu, her parçanın önüne parçaya özel açıklayıcı bir bağlam ekleyerek çözer
  • Claude, tüm belgenin bağlamını kullanarak parçayı açıklayan kısa bir parçaya özel bağlam üretmesini isteyen bir prompt ile Contextual Retrieval uygulamasını destekler
  • Contextual Retrieval, prompt caching sayesinde Claude ile düşük maliyetle kullanılabilir

Performans iyileştirmeleri

  • Contextual Embeddings, ilk 20 parçada arama başarısızlık oranını %35 azaltır (%5,7 → %3,7)
  • Contextual Embeddings ile Contextual BM25 birlikte kullanıldığında başarısızlık oranı %49 azalır (%5,7 → %2,9)

Uygulama sırasında dikkat edilmesi gerekenler

  • Belgelerin parçalara nasıl bölüneceğini değerlendirin
  • Contextual Retrieval tüm embedding modellerinde performansı artırır, ancak bazı modeller bundan daha fazla fayda sağlayabilir
  • Genel amaçlı prompt'lar iyi çalışsa da belirli alanlara veya kullanım senaryolarına göre uyarlanmış prompt'larla daha iyi sonuçlar alınabilir
  • Bağlam penceresine daha fazla parça eklemek, ilgili bilgiyi içerme olasılığını artırır
  • Her zaman değerlendirme çalıştırın; bağlamsallaştırılmış parçaları iletmek ve bağlam ile parçaları birbirinden ayırmak yanıt üretimini iyileştirebilir

Yeniden sıralama (Reranking) ile ek performans artışı

  • Yeniden sıralama, yalnızca en ilgili parçaların modele iletilmesini sağlayan yaygın bir filtreleme tekniğidir
  • İlk arama yapılarak potansiyel olarak ilgili en iyi parçalar alınır
  • İlk N parça ile kullanıcı sorgusu yeniden sıralama modeline gönderilir
  • Yeniden sıralama modeli, her parçayı prompt ile ilgisi ve önemine göre puanlar; ardından en iyi K parça seçilir
  • En iyi K parça bağlam olarak modele verilerek nihai sonuç üretilir
  • Yeniden sıralanmış Contextual Embedding ve Contextual BM25, ilk 20 parçada arama başarısızlık oranını %67 azaltır (%5,7 → %1,9)
  • Maliyet ve gecikme süresi değerlendirmeleri
    • Yeniden sıralama, özellikle çok sayıda parça yeniden sıralandığında gecikme süresi ve maliyet üzerinde etkili olabilir
    • Daha iyi performans için daha fazla parçayı yeniden sıralamak ile daha düşük gecikme ve maliyet için daha az parça yeniden sıralamak arasında bir ödünleşim vardır

Sonuç

  • Yukarıda açıklanan tüm tekniklerin çeşitli kombinasyonlarını (embedding modeli, BM25 kullanımı, bağlamsal arama kullanımı, yeniden sıralama kullanımı, getirilen en iyi K sonucun toplam sayısı) farklı veri kümesi türlerinde karşılaştıran çok sayıda test yapıldı
  • Sonuçlar şöyle:
    • Embedding + BM25, tek başına embedding'den daha iyidir
    • Test edilen embedding'ler arasında en iyi sonuçları Voyage ve Gemini verdi
    • Modele ilk 20 parçayı vermek, yalnızca ilk 10 veya 5 parçayı vermekten daha etkilidir
    • Parçalara bağlam eklemek, arama doğruluğunu önemli ölçüde artırır
    • Yeniden sıralama, yeniden sıralama yapılmamasından daha iyidir
    • Tüm bu kazanımlar birikimlidir: performans artışını en üst düzeye çıkarmak için bağlamsal BM25 ile yeniden sıralama adımından geçmiş bağlamsal embedding'leri (Voyage veya Gemini'ninkileri) birleştirip prompt'a 20 parça ekleyebilirsiniz
  • Knowledge Base ile çalışan tüm geliştiricilerin, sunulan cookbook'u kullanarak bu yaklaşımı denemesi ve yeni performans seviyelerine ulaşması öneriliyor

Henüz yorum yok.

Henüz yorum yok.