Kafayı yiyecektim dostlar. Şirket içi otomasyon için basit bir chatbot yapayım dedim. OpenAI'in GPT-3.5-turbo modelini alıp, bizim departmandaki anlaşılmaz kısaltmaları, proje kod adlarını, iç jargonu öğretip süper bir asistan yapacaktım. "Q3 KR'ları LFX projesi için revize edildi, PM'ini bilgilendir" gibi bir cümleyi herkesin anlayacağı hale getirecekti. Meğerse ben fine-tuning denen canavarla oynuyormuşum.
İlk iş, JSONL formatında mükemmel bir eğitim veri seti hazırlamak. Saatlerce eski Slack log'ları, e-postalar, Confluence sayfaları taradım. Her bir örneği manuel olarak düzenledim. Sistem prompt'u, kullanıcı sorusu, asistandan beklenen cevap... Yüzlerce örnek yaptım. "Bu kadar veriyle model kesin bizim çocuk olur" diye düşünüyordum. İlk denememde token sayısına baktım, gözlerim faltaşı gibi açıldı.
JSON:
{"messages": [{"role": "system", "content": "Sen şirket içi jargon çevirmenisin..."}, {"role": "user", "content": "Q3 KR ne demek?"}, {"role": "assistant", "content": "Q3 KR, Üçüncü Çeyrek (Quarter 3) Anahtar Sonuç (Key Result) demektir..."}]}
OpenAI'in fiyatlandırma sayfasını açtım. Eğitim için $0.008 / 1K token, girdi için $0.012 / 1K token falan yazıyor. "Tamam, idare eder" dedim. Hazırladığım dosyayı fine-tuning job'ı başlatmak üzere yükledim. API'den gelen ilk tahmini fiyatı görünce kalbim duracak gibi oldu. Veri setim yüz binlerce token içeriyordu ve bu sadece EĞİTİM maliyetiydi! Sonrasında bu özelleştirilmiş modeli her kullanışımda da ek ücret ödeyecektim. Şaka gibi ama, birkaç deneme çalıştırması ve birkaç günlük canlı kullanım, aylık cloud bütçemin neredeyse yarısını silip süpürdü.
Sonunda pes ettim. Fine-tuning yerine, daha akıllıca prompt engineering ve RAG (Retrieval-Augmented Generation) yöntemlerine yöneldim. Jargon sözlüğünü bir vektör veritabanına attım, her sorguda ilgili bilgiyi çekip prompt'un içine enjekte ettirdim. Çok daha ucuza ve neredeyse aynı sonucu aldım. O an anladım ki, her problem için çekiç aramamak lazım, bazen tornavida daha iyi iş görüyor.
Siz de benim gibi "bir fine-tuning yapayım da süper olsun" derken bütçe şokuna uğradınız mı? Ya da şirket jargonu problemini daha ucuz ve zarif nasıl çözersiniz? Fikirlerinizi bekliyorum!