Bir banka analisti CentraQL Copilot'a 'kredi tahsis süresinin son 30 günü' diye sorduğunda, planner LLM'in QuerySpec'i doğru çıkarması için 'tahsis' kelimesinin 'underwriting + approval + disbursement' kümesine eşitlendiğini bilmesi gerekir. Genel bir 7B Qwen ya da Llama bunu çoğu zaman yarısında yakalar — kalan yarısında 'tahsis' = 'allocation' diye yorumlar ve domain dışına çıkar.
Çözüm: küçük bir LoRA fine-tune'u banka domain pack'i üzerinden eğitmek. Tam fine-tune değil, parameter-efficient bir adapter. Maliyet ve süre kontrol altında.
LoRA neden?
Full fine-tune 7B modelin için 14 GB+ VRAM ve günlerce eğitim zamanı gerektirir. LoRA (Low-Rank Adaptation) yalnızca seçili matris çiftlerine düşük-rank güncellemeler ekler. Sonuç:
- Adapter dosya boyutu: ~50-200 MB (orijinal model 4-14 GB).
- Eğitim süresi: 1×RTX 4090'da Qwen2.5-7B üstünde ~2-4 saat.
- Geri alınabilir: adapter'ı kaldırınca model orijinaline döner.
- Çoklu adapter: aynı base model üstüne banking-tr ve banking-en adapter ayrı ayrı yüklenebilir.
Veri seti yapısı (banking-tr örnek)
3 katman:
- Sözlük (1500 satır): domain terimleri ve eş anlamlıları. 'tahsis' → 'underwriting/approval/disbursement', 'mevduat' → 'deposit', 'KKB' → 'Credit Bureau Turkey'.
- Soru→QuerySpec (800 örnek): gerçek banka senaryolarından, sertifikalı few-shot olarak hazırlanmış. Her örnekte soru, beklenen QuerySpec JSON, beklenen narrative.
- Reddedilmesi gereken kötü örnek (200): prompt-injection, off-domain, yetkisiz alan istekleri. Model bunlara 'reddet + neden' cevabı verecek şekilde eğitilir.
4 haftalık plan
Hafta 1 — Veri toplama:
- Bankanın geçmiş 6 aydan IT-ticket arşivi taranır; tekrar eden 200-300 analist sorusu çıkarılır.
- Veri ekibinden 8-10 kıdemli kişi soruları temiz QuerySpec'e çevirir.
- Dataset versiyonu commit edilir, owner imzalar.
Hafta 2 — Domain pack:
- 1500 satırlık sözlük ve 200 reddedilmesi gereken örnek hazırlanır.
- Few-shot'ların hepsi PromptAuditLog formatına uygun şekilde 'sertifikalı' damgalanır.
- Test seti %20 ayrılır.
Hafta 3 — Eğitim:
- Qwen2.5-7B-Instruct + LoRA r=16, alpha=32, target modules q_proj, v_proj, k_proj, o_proj.
- 3 epoch, learning rate 2e-4, cosine scheduler.
- 1×RTX 4090 üzerinde 2-3 saat. (vLLM serve etmek için q4 quantize ayrı 30 dk.)
- Eval: test setinde QuerySpec exact-match hedefi >%85, narrative semantic-match hedefi >%90.
Hafta 4 — Pilot ve kalibrasyon:
- 5-10 analiste 2 hafta canlı pilot.
- Yanlış çıkan QuerySpec'ler dataset'e geri eklenir, ikinci LoRA pass çalıştırılır.
- Production'a alınma kararı: pilot sonu accuracy + analist memnuniyet skoru.
Tipik sonuç
Bir bankanın CentraQL deploy'unda LoRA öncesi/sonrası:
- QuerySpec exact-match: %62 → %89.
- Narrative semantic-match: %78 → %94.
- Out-of-domain reddetme: %43 → %88.
- p95 latency değişmedi (LoRA inference overhead'i <%5).
Önemli detay: PromptAuditLog'da model versiyonu
LoRA adapter güncellendiğinde audit kaydında model_version değişmelidir. Eski sorgu cevaplarını yeniden değerlendirmek için bu zorunludur. CentraQL'da audit kaydı zaten model + adapter çiftini taşır; regülatör 'ekim ayında bu sorguyu hangi model üretti' sorusuna kanıtla cevap verir.
On-prem ve veri sızıntısı kontrolü
LoRA eğitimi tamamen kuruluş içinde yapılmalıdır. Cloud servislerine training data gönderilmez; çünkü banka analist soruları çoğunlukla gerçek müşteri segmentlerini içerir. CentraQL'ın training scriptleri Anthropic Cloud'a hiçbir veri göndermez; EgressGuard zorunlu açıktır.
Sonuç
LoRA, banka için 'kendi LLM'ini eğitmek'in pratik halidir. 4 hafta + 1 RTX 4090 + temizlenmiş 1000 örneklik dataset ile genel bir 7B model bankaya özgü doğruluk seviyesine çıkar. CentraQL bu süreci dataset şablonu, eğitim scripti ve audit-aware adapter yönetimiyle paketler.
