23 puan yazan xguru 2023-08-28 | 1 yorum | WhatsApp'ta paylaş
  • 7 temel kalıp, "performans artışı vs. maliyet/risk azaltma" ve "veri dostu vs kullanıcı dostu" eksenlerinde düzenleniyor
    • Evals: performans ölçümü
    • RAG (Retrieval-Augmented Generation): güncel, harici bilgiyi ekleme
    • Fine-tuning: belirli görevleri daha iyi yerine getirmek için
    • Caching: gecikme ve maliyeti azaltma
    • Guardrails: çıktı kalitesini güvence altına alma
    • Defensive UX: hataları öngörmek ve yönetmek için
    • Kullanıcı geri bildirimi toplama: veri flywheel'ı oluşturma

Evals: performans ölçümü

  • Evals, bir modelin bir görevdeki performansını değerlendirmek için kullanılan bir dizi ölçümdür
  • Benchmark verileri ve metrikleri içerir
  • Bir sistemin veya ürünün ne kadar iyi çalıştığını ölçebilir ve gerilemeyi tespit edebilir
  • Dil modelleme alanında çok sayıda benchmark vardır: MMLU, EleutherAI Eval, HELM, AlpacaEval
  • Metrikler iki kategoriye ayrılabilir: Context-dependent veya Context-free
  • Yaygın kullanılan metrikler: BLEU, ROUGE, BERTScore, MoverScore
  • Son dönemde öne çıkan eğilim, güçlü bir LLM'i reference-free metric olarak kullanıp diğer LLM'lerin üretimlerini değerlendirmek
    • G-Eval, Vicuna makalesi, QLoRA

RAG (Retrieval-Augmented Generation): güncel, harici bilgiyi ekleme

  • Foundation model dışından bilgi getirip bu verilerle girdiyi zenginleştirerek daha zengin bağlam sağlamak ve çıktıyı iyileştirmek
  • RAG, modeli getirilen bağlama dayandırarak halüsinasyonları azaltmaya yardımcı olur ve doğruluğu artırır
  • Ayrıca bir LLM'i sürekli ön eğitmek yerine arama indeksini güncel tutmak daha ucuzdur
  • Bu maliyet verimliliği sayesinde LLM, RAG üzerinden güncel verilere erişebilir
  • Önyargılı veya zararlı belgeler gibi verileri güncellemek/kaldırmak gerektiğinde, arama indeksini güncellemek daha basittir (LLM'i fine-tune etmeye kıyasla)
  • RAG için önce metin embedding'lerini anlamak faydalıdır
  • Metin embedding'leri, herhangi bir uzunluktaki metni sabit boyutlu sayısal vektörler olarak ifade edebilen, metin verisinin sıkıştırılmış soyut temsilleridir
    • Genellikle Wikipedia gibi metin corpusu üzerinde eğitilir
    • Benzer öğeler birbirine yakındır, benzer olmayanlar daha uzaktadır; bunu metin için genel amaçlı bir encoding olarak düşünebilirsiniz
  • İyi bir embedding, benzer öğe arama gibi downstream görevlerde iyi performans göstermelidir
    • Hugging Face'in Massive Text Embedding Benchmark (MTEB) çalışması, sınıflandırma, kümeleme, arama ve özetleme gibi çeşitli görevlerde modellere puan verir
  • Burada ağırlıklı olarak metin embedding'lerinden söz edilse de embedding'ler farklı modalitelerde de kullanılabilir
  • Fusion-in-Decoder (FiD), açık alan soru-cevap için üretici model ile retrieval'ı birlikte kullanır
  • Internet-augmented LM'ler, mevcut arama motorlarını kullanarak LLM'i güçlendirmeyi önerir
  • RAG uygulama yöntemleri
    • Hibrit arama (geleneksel arama indeksi + embedding tabanlı arama), her birinin tek başına kullanımından daha iyi çalışır

Fine-tuning: belirli görevleri daha iyi yerine getirmek için

  • Fine-tuning, önceden eğitilmiş bir modeli (büyük miktarda veriyle zaten eğitilmiş bir model) alıp belirli bir görev için ek olarak uyarlama sürecidir
  • Amaç, modelin ön eğitim sırasında zaten edindiği bilgiyi kullanarak, genellikle daha küçük ve göreve özel veri kümeleri içeren belirli bir göreve uygulamaktır
  • Fine-tuning terimi gevşek biçimde kullanılır ve çeşitli kavramları ifade edebilir
    • Sürekli ön eğitim
    • Instruction fine-tuning
    • Tek görevli fine-tuning
    • RLHF
  • Neden fine-tuning yapılır?
    • Performans ve kontrol:
      • Hazır foundation modelin performansını iyileştirebilir, hatta üçüncü taraf LLM'leri aşabilir
      • LLM davranışı üzerinde daha iyi kontrol sağlar; böylece sistem veya ürün daha güçlü hale gelir
      • Fine-tuning ile sadece üçüncü taraf veya açık LLM kullanmaktan farklılaşan bir ürün oluşturulabilir
    • Modülerlik:
      • Tek görevli fine-tuning ile her biri farklı bir işi uzmanlık alanı yapan daha küçük modellerden oluşan bir filo kurulabilir
      • Bu yapı sayesinde sistem, içerik moderasyonu, çıkarım ve özetleme gibi görevlere modüler biçimde ayrılabilir
    • Bağımlılığı azaltma:
      • Kendi modelinizi fine-tune edip host ederek, harici API'lere açılan özel verilerle (ör. PII, iç dokümanlar ve kod) ilgili hukuki riskleri azaltabilirsiniz
      • Ayrıca hız limiti, yüksek maliyet veya aşırı kısıtlayıcı güvenlik filtreleri gibi üçüncü taraf LLM kısıtlarını aşabilirsiniz
  • Generative Pre-trained Transformers (GPT; decoder only)
  • Text-to-text Transfer Transformer (T5; encoder-decoder)
  • InstructGPT
  • Soft prompt tuning & Prefix Tuning
  • Low-Rank Adaptation (LoRA) & QLoRA
  • Fine-tuning uygulama yöntemleri
    • Demo verisi/etiket toplama
    • Değerlendirme metriklerini tanımlama
    • Ön eğitimli modeli seçme
    • Model mimarisini güncelleme
    • Fine-tuning yöntemini seçme (LoRA, QLoRA vb.)
    • Temel hyperparameter ayarı

Caching: gecikme ve maliyeti azaltma

  • Caching, daha önce alınan veya hesaplanan veriyi depolama tekniğidir
  • Aynı veriye yönelik gelecekteki isteklerin daha hızlı işlenmesini sağlar
  • LLM bağlamında, girdi isteğinin embedding'ine karşılık gelen LLM yanıtını cache'lemek ve sonraki istekte anlamsal olarak benzer bir sorgu gelirse cache'lenmiş yanıtı sunmaktır
    • Ancak bazı uygulayıcılar bunun "felaketi beklemek" gibi olduğunu söylüyor. Ben de katılıyorum
  • Caching kalıbını benimsemenin kilit noktası, yalnızca anlamsal benzerliğe güvenmek yerine nasıl güvenli cache yapılacağını bulmaktır
  • Neden caching? Gecikmeyi azaltmak ve LLM istek sayısını düşürerek maliyeti azaltmak için
  • Caching nasıl uygulanır?
    • Önce kullanıcı istek kalıplarını iyi anlamak gerekir
    • Caching'in kullanım kalıpları açısından etkili olup olmadığını değerlendirmek gerekir

Guardrails: çıktı kalitesini güvence altına alma

  • LLM çıktısını doğrulayarak yalnızca iyi görünmesini değil, sözdizimsel olarak doğru, olgusal ve zararlı içerikten arındırılmış olmasını sağlamak
  • Neden guardrails gerekir?
    • Model çıktılarının üretimde kullanılabilecek kadar güvenilir ve tutarlı olmasını doğrulamaya yardımcı olur
    • Ek bir güvenlik katmanı sağlar ve LLM çıktısı üzerinde kalite kontrolü sürdürür
  • Bir yaklaşım, model yanıtını prompt aracılığıyla kontrol etmektir
    • Anthropic, modelin yardımcı, zararsız ve dürüst (HHH) yanıtlar üretmesini yönlendirmek için tasarlanmış prompt'lar paylaştı
  • Daha genel yaklaşım ise çıktının geçerliliğini doğrulamaktır (Guardrails paketi gibi)
  • Nvidia'nın NeMo-Guardrails aracı benzer ilkeleri izler, ancak LLM tabanlı konuşma sistemlerini yönlendirmek için tasarlanmıştır
  • Microsoft'un Guidance aracı gibi, çıktıyı belirli bir grammar'a uyduracak şekilde doğrudan yönlendirmek de mümkündür (bunu LLM'ler için bir DSL gibi düşünebilirsiniz)
  • Guardrails uygulama yöntemleri
    • Structural guidance
    • Syntactic guardrails
    • Content safety guardrails
    • Semantic/factuality guardrails
    • Input guardrails

Defensive UX: hataları öngörmek ve yönetmek için

  • Defensive UX, kullanıcıların makine öğrenimi veya LLM tabanlı ürünlerle etkileşimi sırasında yanlışlıklar ya da halüsinasyonlar gibi olumsuz durumların yaşanabileceğini kabul eden bir tasarım stratejisidir
  • Amaç, kullanıcı davranışını yönlendirerek, yanlış kullanımı önleyerek ve hataları uygun şekilde ele alarak bunları önceden tahmin etmek ve yönetmektir
  • Neden defensive UX?
    • Makine öğrenimi ve LLM'ler kusursuz değildir; hatalı sonuçlar üretebilir
    • Aynı soruya farklı şekillerde yanıt verebilirler
    • Defensive UX, aşağıdakileri sağlayarak bu sorunları hafifletmeye yardımcı olur
      • Daha iyi erişilebilirlik, artan güven ve daha iyi UX
  • Şirketlerin derlediği yönergelere bakılabilir
    • Microsoft’s Guidelines for Human-AI Interaction
    • Google’s People + AI Guidebook
    • Apple’s Human Interface Guidelines for Machine Learning
  • Defensive UX uygulama yöntemleri
    • Doğru beklentileri belirlemek
    • Hızlıca kapatmayı mümkün kılmak (Enable efficient dismissal)
    • Attribution sağlamak
    • Aşinalığı temel almak

Kullanıcı geri bildirimi toplama: veri flywheel'ı oluşturma

  • Kullanıcı geri bildirimi toplamak, kullanıcıların tercihlerini anlamayı sağlar
  • LLM ürünlerine özgü kullanıcı geri bildirimleri; değerlendirme, fine-tuning ve guardrails oluşturma süreçlerine katkı sağlar
  • Ön eğitim için corpus, uzmanlar tarafından hazırlanmış demolar ve ödül modellemesi için insan tercihleri gibi veriler, LLM ürünlerinin sahip olduğu az sayıdaki moat'tan biridir
  • Geri bildirim açık veya örtük olabilir
    • Açık geri bildirim, kullanıcının ürünün talebine yanıt olarak verdiği bilgidir
    • Örtük geri bildirim ise kullanıcının bilinçli olarak geri bildirim vermesine gerek kalmadan, kullanıcı etkileşimlerinden öğrenilen bilgidir
  • Neden kullanıcı geri bildirimi toplanır?
    • Kullanıcı geri bildirimi modeli geliştirmeye yardımcı olur
    • Kullanıcıların neyi sevdiğini, sevmediğini veya neden şikayet ettiğini öğrenerek modeli onların ihtiyaçlarını daha iyi karşılayacak şekilde iyileştirebilirsiniz
    • Ayrıca bireysel tercihlere uyum sağlamaya da yardımcı olabilir
    • Geri bildirim döngüsü, sistemin genel performansını değerlendirmeye yardımcı olur
  • Kullanıcı geri bildirimi nasıl toplanır?
    • Kullanıcının kolayca geri bildirim bırakabilmesini sağlamak: ChatGPT'deki gibi yanıtlar için beğenme/beğenmeme seçeneği sunmak
    • Örtük geri bildirimi de dikkate almak: kullanıcının ürünle etkileşirken ortaya çıkan bilgiler

1 yorum

 
xguru 2023-08-28

Asıl yazıda her madde ile algoritma/metriklere dair ayrıntılı açıklamalar var, ancak burada bunlar atlandı.
Bu yazıyla kabaca özeti gözden geçirip orijinal metne de birlikte bakın