🎓 Agent "Eğitilir mi"? Prompt vs RAG vs Fine-tune
Agent "Eğitilir mi"? Prompt vs RAG vs: Bir QA görevi için modeli "eğitip eğitmeme"ye karar vermek, yeni bir çalışanın tam bir çok-aylık eğitim programına mı yoksa sadece iyi yazı
Bir QA görevi için modeli "eğitip eğitmeme"ye karar vermek, yeni bir çalışanın tam bir çok-aylık eğitim programına mı yoksa sadece iyi yazılmış bir işe alım dokümanına mı ihtiyacı olduğuna karar vermeye benzer — mekanizma birebirdir: "modelin bizim işi yapma şeklimizi öğrenmesi gerekiyor" gibi hissettiren şeyin çoğu, aslında ona doğru bilgiyi doğru anda VERMEKLE çözülür (bir system prompt, yapıştırılmış bir doküman) — tıpkı ilk pull request'inden önce ekibin stil kılavuzunu okuyan yeni bir çalışanın ayrı bir eğitim kursuna değil, sadece doğru anda o dokümana ihtiyaç duyması gibi. Üzerinde durulmaya değer soru şu: şirketinin tam bug-raporu formatında bir modeli fine-tune etmek mümkünse, bu neden genelde YANLIŞ ilk hamle, akıllıca olan değil? Çünkü fine-tuning, 2-3 örnekli iyi yazılmış bir system prompt'un genelde ücretsiz ve anında çözdüğü bir sorunu — modelin formatını tutarlı kullanmaması — çözer, oysa fine-tuning gerçek mühendislik zamanına (etiketli bir veri seti hazırlama), gerçek paraya mal olur, ve formatın her değiştiğinde yeniden yapılması gereken statik bir eser üretir. Tek sayfalık bir stil kılavuzunun zaten düzelttiği bir şey için çok-aylık bir işe alım programı inşa ediyor olursun. Java karşılaştırması: bu, tekrarlanan bir kod kalıbının yeni bir soyutlamayı — paylaşılan bir utility sınıfı, yani fine-tuning, inşa etmesi pahalı ve sadece sürekli tekrar kullanılırsa ve kararlıysa karşılığını verir — mi yoksa bir yorumla satır içi bir parça olarak mı kalmasının — yani bir prompt, ucuz ve esnek, aksi kanıtlanana kadar — aynı yargı çağrısıdır; erken soyutlama hem kodda hem AI özelleştirmesinde gerçek bir maliyettir. QA tarafındaki bedel: önce prompt ve RAG seçeneklerini tüketmeden "bunun için bir modeli fine-tune edelim" diyen bir tester, ikinci kullanım durumundan önce bir tasarım deseni sokmanın AI karşılığını yapıyordur — aşağıdaki karar tablosu tam olarak bunu önlemek için var.
Seviye 1 — Prompt: Ücretsiz, Anında, %90'ını Çözer
Claude AI sayfasının Prompt Mühendisliği sekmesindeki "rol" bileşeni olan bir system talimatı, prompt içinde doğrudan birkaç örnekle birleştiğinde, "modeli bizim şeklimizde davranmaya sok" ihtiyaçlarının büyük çoğunluğunu kapsar. Veri seti yok, API çağrısının kendisinden başka maliyet yok, ve saniyeler içinde değiştirilebilir. Her zaman ilk denenmesi gereken şey bu olmalıdır.
Seviye 2 — RAG: Bir Açık Kitap Sınavı, Eğitim Değil
Retrieval-Augmented Generation, ilgili şirket dokümanlarını — bir stil kılavuzu, geçmiş bug raporları, API dokümanları — isteğin tam anında getirip ilgili parçaları context window'a yapıştırmak demektir. Modelin ağırlıkları asla değişmez; bu hiçbir anlamda "eğitim" değildir, modelin kitabı ezberlemiş olmasını beklemek yerine bir açık kitap sınavı vermektir. Bunu, kararlı bir davranış veya format yerine, modelin şirketine özgü sık değişen bir şeyi bilmesi gerektiğinde kullan.
Seviye 3 — Fine-Tuning: Kararlı Bir Davranış Öğretmek
OpenAI'ın fine-tuning API'si üzerinden fine-tuning, modelin ağırlıklarını gerçekten değiştirir — önceki sekmedeki SFT sürecinin küçük ölçekli bir hali — belirli bir davranış veya formatın her prompt'ta yeniden belirtilmeye ihtiyaç duymadan tutarlı hale gelmesi için onu örnek girdiler ve istenen çıktılardan oluşan özenle seçilmiş bir veri setinde eğitir. Asıl iş, genelde yüzlerce örnek olan etiketli bir veri seti hazırlamaktır, eğitim koşumunun kendisi değil.
Bir fine-tuning eğitim dosyası (JSONL formatı)
Fine-Tuning'in DOĞRU Hamle OLMADIĞI Durumlar
Fine-tuning genelde şu durumlarda yanlış ilk hamledir: modelin sadece güncel gerçekleri veya dokümanları bilmesi gerekiyorsa (bu RAG'dir, fine-tuning değil); formatın veya davranışın iyi bir system prompt artı 2-3 örnekle zaten başarılabiliyorsa; gereksinimlerin sık sık değişiyorsa (fine-tune edilmiş bir model her seferinde yeniden eğitilmeli, bir prompt saniyeler içinde düzenlenir); henüz en az onlarca-yüzlerce kaliteli etiketli örneğin yoksa; modelin her gün değişen proje-özgü bir şeyi bilmesi gerekiyorsa (fine-tuning bir anlık görüntüyü pişirir, tam olarak pretraining'in eğitim-kesim-tarihi sorunu gibi); veya sistematik, tutarlı bir hata yerine tek seferlik, ara sıra olan bir hatayı düzeltmeye çalışıyorsan, ki burada daha iyi bir prompt veya bir doğrulama adımı çok daha ucuzdur.
Fine-Tuning'in Gerçekten Mantıklı Olduğu Durumlar
Fine-tuning maliyetini şu durumlarda hak eder: devasa hacimde aşırı tutarlılıkla takip edilen çok spesifik, kararlı bir çıktı formatına ihtiyacın varsa ve tek başına prompt'lama hâlâ tutarsızlık bırakıyorsa; aksi halde uzun, tekrarlanan bir system prompt gerektirecek davranışı pişirerek devasa ölçekte prompt uzunluğunu ve maliyetini azaltmak istiyorsan; veya zaten gerçekten büyük, yüksek kaliteli, hazırlanmış bir etiketli veri setin varsa.
Seviye 4 — Sıfırdan Eğitim: Senin Liginde Değil
Sıfırdan eğitim (pretraining), Pretraining sekmesinde gördüğün aynı devasa hesaplama/maliyeti gerektirir — bu bir tester'ın veya çoğu şirketin ligi değildir. Bunu düşünüyorsan, sorunu neredeyse kesinlikle Seviye 1-3'ün çözebileceği şekilde yanlış teşhis etmişsindir.