Yan yana
Prompt MühendisliğivsFine-tuning
Prompt mühendisliği ile fine-tuning arasındaki fark nedir?
Güncellendi 2 dk okuma8 fark
Kısaca
Prompt mühendisliği her istekle gönderilen talimatları değiştirir ve modele dokunmaz; fine-tuning ise modeli daha da eğiterek ağırlıklarını değiştirir.
Prompt Mühendisliği
Prompt mühendisliği, yapay zekâ modelinin doğru, tutarlı ve kullanışlı çıktı üretmesi için verilen yönergeleri tasarlama, test etme ve iyileştirme pratiğidir.
Prompt Mühendisliği sayfasını okuFine-tuning
İnce Ayar
Fine-tuning, önceden eğitilmiş bir makine öğrenmesi modelini tek bir göreve uyarlamak için daha küçük ve özel bir veri kümesiyle ek olarak eğitme sürecidir.
Fine-tuning sayfasını okuPrompt Mühendisliği ve Fine-tuning karşılaştırması
| Özellik | Prompt Mühendisliği | Fine-tuning |
|---|---|---|
| Ne değişir | Girdi: talimatlar, bağlam ve örnekler | Modelin ağırlıkları, ek eğitim yoluyla |
| Yineleme hızı | Dakikalar: düzenle, test et, yayına al | Her eğitim ve değerlendirme döngüsü için saatler ya da günler |
| Gereken veri | Bir avuç örnek ve bir eval set | Yüzlerce ile binlerce yüksek kaliteli örnek |
| Başlangıç maliyeti | Mühendislik zamanından biraz fazlası | Veri hazırlığı ve eğitim için hesaplama gücü |
| İstek başına maliyet | Daha uzun prompt'lar daha çok token harcar | Daha kısa prompt'lar; daha küçük bir model yetebilir |
| Çalıştığı modeller | API'si üzerinden her model | Fine-tuning'e izin veren modeller ve platformlar |
| En iyi olduğu iş | Görevleri, biçimleri ve akıl yürütmeyi hızla yönlendirmek | Tutarlı bir üslup, biçim ya da dar ve tekrarlanan bir görev |
| Geri alma | Prompt'u eski hâline döndürün | Modelin önceki sürümüne geri dönün |
Fark, açıklamalı
Prompt mühendisliği, bir modele gönderdiğiniz şeyi tasarlama, test etme ve iyileştirme pratiğidir: talimatlar, bağlam, örnekler ve beklenen çıktı biçimi. Fine-tuning ise önceden eğitilmiş bir modeli kendi örneklerinizle, çoğu zaman yüzlerce ile binlerce girdi-çıktı çiftiyle eğitmeye devam eder; böylece modelin ağırlıkları değişir ve yeni davranış modelin içine yerleşir.
Takas, hız ile kalıcılık arasındadır. Bir prompt değişikliği bir sonraki istekte etkisini gösterir, denemesi neredeyse hiçbir şeye mal olmaz ve kolayca geri alınır; bu yüzden ekipler bir eval set'e karşı günde defalarca yineleme yapabilir. Fine-tuning ise her değişiklik için veri hazırlığı, bir eğitim çalıştırması ve yeni bir değerlendirme gerektirir; ama bir modelin bir biçimi, tonu ya da dar bir görevi çok daha tutarlı biçimde ve çok daha kısa bir prompt'la izlemesini sağlayabilir.
Pratikte ikisi bir seçimden çok bir sıra oluşturur. Ekiplerin çoğu prompt mühendisliğiyle başlar, model kendi ya da güncel verilerine ihtiyaç duyduğunda getirme (RAG) ekler ve fine-tuning'e ancak prompt'larla davranış güvenilir hâle gelmediğinde ya da daha küçük ve ucuz bir modelin tek bir görevde büyük bir modele yetişmesini istediğinde başvurur. Fine-tune edilmiş bir model de yine iyi prompt'lara ihtiyaç duyar.
Sık yapılan bir yanlış, fine-tuning'in modele yeni olgular öğretmenin yolu olduğunu düşünmektir. Fine-tuning modelin nasıl yanıt vereceğini şekillendirir ama olguları güvenilmez biçimde ezberler ve her güncelleme yeni bir eğitim çalıştırması demektir; değişen olgular prompt'a aittir, çoğu zaman da RAG yoluyla. Bir diğeri, yeni modellerin prompt mühendisliğini gereksiz kıldığı düşüncesidir: daha az hileye ihtiyaç duyarlar, ama eksik bağlamı, kuralları ya da biçimleri yine de tahmin edemezler.
Hangisini kullanmalısınız?
Prompt Mühendisliği şu durumlarda doğru seçim:
- Yeni başlıyorsunuz ve bugün sonuç istiyorsunuz.
- Gereksinimler sık değişiyor ya da modeller arasında geçiş yapıyorsunuz.
- Talimatlar ve birkaç örnek zaten güvenilir çıktı üretiyor.
- Özel bir model eğitip barındıramıyorsunuz ya da bunu istemiyorsunuz.
Fine-tuning şu durumlarda doğru seçim:
- Yalnızca prompt'larla biçimi ya da tonu yeterince tutarlı hâle getiremiyorsunuz.
- Dar ve yüksek hacimli bir görev, daha küçük ve ucuz bir modelde iyi çalışabilir.
- Örneklerle dolu uzun prompt'lar istekleri yavaşlatıyor ya da pahalılaştırıyor.
- İdeal çıktıları gösteren temiz bir örnek setiniz var.
Bir modeli prompt'la yönlendirmek ile örneklerle eğitmek
# Prompt engineering: the model stays the same; the request carries the rules
prompt = """Classify the support ticket as bug, billing or feature.
Reply with one word.
Ticket: The app crashes when I log in. -> bug
Ticket: I was charged twice this month. -> billing
Ticket: {ticket} ->"""
label = llm.generate(prompt.format(ticket=new_ticket))# Fine-tuning: train once on examples; later prompts can be short
examples = [
{"input": "The app crashes when I log in.", "output": "bug"},
{"input": "I was charged twice this month.", "output": "billing"},
# ...hundreds more labeled tickets
]
tuned = fine_tune(base_model, examples)
label = tuned.generate(new_ticket)Sık sorulan sorular
Önce prompt mühendisliğini mi denemeliyim, fine-tuning'i mi?
Prompt mühendisliğini. Daha hızlı ve ucuzdur; iyi bir eval set'le desteklenen güçlü bir prompt, fine-tuning'e gerçekten ihtiyaç olup olmadığını gösterir ve onu ölçeceğiniz testi de size verir.
Fine-tuning prompt'un yerini alır mı?
Tamamen değil. Davranış modelin içine yerleştiği için fine-tune edilmiş bir model daha kısa prompt'lara ihtiyaç duyar, ama girdiye ve isteğe özgü bağlama yine de ihtiyacı vardır.
RAG, prompt mühendisliği mi yoksa fine-tuning mi?
Tam olarak ikisi de değil, ama prompt'a daha yakındır: RAG ilgili belgeleri getirir ve modelin ağırlıklarını değiştirmeden, istek anında prompt'a ekler.