Files
abap-llm/docs/yol-haritasi.md
2026-10-04 17:02:02 +02:00

167 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ABAP Danışman Modeli — Yol Haritası
Durum: v20 · 2026-10-04
Şu anki konum: **Adım 1.3**
## Adım 0 — Çerçeve ve kararlar
| Karar | Durum |
|---|---|
| Modelin rolü: teknik ABAP danışmanı, modül bilgisi yok | ✓ |
| Sözleşme: metin olarak ABAP görevi + genel ABAP MCP arayüzü | ✓ (2026-10-02) |
| Girdi: `plan-agent.md` formatı en iyi sonuç veren girdi, zorunlu değil; Kral'ın akışında plan kullanımı değişmez | ✓ (2026-10-02) |
| Tool arayüzü: EPOD isimleri yerine genel ABAP MCP; EPOD native destekleyecek, harness proxy ilk adapter; delete/teardown harness'te | ✓ (2026-10-02) |
| Eğitimde az miktarda tool isim/şema varyasyonu | ✓ (2026-10-02) |
| Ortam: A4H (yazma + doğrulama) | ✓ |
| Mevcut planlar: sadece şablon, eğitim verisi değil | ✓ |
| Eski playbook formatı kullanılmaz | ✓ (2026-10-02) |
| Eğitim verisinde Claude çıktısı yok; eval görevleri eğitim verisine girmez | ✓ (2026-10-02) |
| Lisans: Apache 2.0 | ✓ |
| Baz model: sadece Apache 2.0 veya MIT lisanslı adaylar | ✓ (seçim Adım 2'de) |
| **Baz model: Qwen 3.8 27B** (Apache 2.0, MLX 4-bit). Aynı gün önce elendi (onarım yok, döngüler, thinking limitinde boş yanıt), Devstral Small 2 denendi (baseline 11 görevde ortalama 6,8). Kral kararıyla Qwen'e dönüldü: zayıflıklar eğitimin hedefi. Devstral kullanılmayacak. Aşama 1 eğitim testi Qwen ile | ✓ (2026-10-04) |
Bitti. ✓
## Adım 1 — Eval seti ve harness
Amaç: modeli ölçebilmek. Ölçüm olmadan eğitim kör olur.
| Alt adım | İş | Durum |
|---|---|---|
| 1.1 | Tasarım dokümanı (`faz1-tasarim.md`) | ✓ v3 |
| 1.2 | Teknik doğrulamalar: MCP tool'ları, A4H release, teardown (ADT deletion API), abaplint + seed tipleri, paralellik (8 oturum) | ✓ |
| 1.3 | Harness iskeleti: setup → run → puan → teardown, T01 ile uçtan uca | **✓** — Mac mini'de; test include ve teardown çözüldü. Baştan koşular: oracle 100, null 0, Qwen (koşu 203) çalışıyor |
| 1.3b | Genel ABAP MCP arayüz spec'i (`abap-mcp-arayuz.md`) ve harness proxy'sinin bu arayüze çevrilmesi | Sonra |
| 1.4 | T01–T15: seed, gizli testler, hatalı referans | |
| 1.5 | 110 görevlik set (kategori K dahil: eksik/serbest girdi + farklı tool şeması): üretim + senin incelemen | |
| 1.6 | Ölçüm: aday baz modeller + Claude referansı | |
Bitti sayılır: 110 görev, kategori bazında sonuç tablosu.
## Hacim tahmini (kaba, 2026-10-02)
İlk ölçümlerle kalibre edilecek (koşu süresi, kabul oranı).
| Aşama | Görev | Koşu | Obje (oluşturulup silinen) | Süre |
|---|---|---|---|---|
| Eval seti (Adım 1) | 110 | 110 / model / mod | ~5–8 / koşu → ~700 / ölçüm | Yerel 27B: 35–50 saat / ölçüm |
| Ölçüm turu (Adım 1.6) | 110 | ~3–4 model × 2 mod + Claude ≈ 900 | ~6 000 | Yerel modeller birkaç hafta; uzak modeller birkaç gün |
| Eğitim verisi (Adım 3) | 1 500–2 000 üretilmiş görev | 4 deneme / görev ≈ 6 000–8 000 | ~40 000–50 000 | Yerel 27B ile ~5 000 saat → **yerelde mümkün değil** |
| Hedef çıktı (Adım 3) | | %40 kabul → **~3 000 yörünge** | | |
| RL (Adım 5, opsiyonel) | aynı havuz | on binlerce | yüz binler | Ayrı planlama |
**Teacher maliyeti (DeepSeek V4.1 Flash, Ollama cloud):** T01'de ölçülen ≈ 0,09 $ / koşu (liste fiyatı). T01 kolay bir görev; ortalama görev için 0,15–0,20 $ varsayımı:
| İş | Koşu | Maliyet (liste fiyatı) |
|---|---|---|
| Eval ölçümü, DeepSeek (110 × 2 mod) | 220 | ~35–45 $ |
| Adım 3 (2 000 görev × 2 deneme; T01'deki başarıyla kabul oranı yüksek beklenir) | ~4 000 | ~600–800 $ |
| **Toplam (RL hariç)** | | **~650–850 $** |
Ollama paneli, koşu 204'ün 8 isteği tek tek: 6 × <0,01 $, 1 × 0,01 $, 1 × 0,03 $ → **≈ 0,05–0,08 $ / koşu**. Liste fiyatı tahminine (0,09 $) yakın; Ollama kullanımı liste fiyatına yakın sayıyor. (Ayın toplamındaki düşük ortalama, başka küçük isteklerden geliyor.)
| İş | Koşu / görev | Tahmin |
|---|---|---|
| Pilot (B–E): ~20 görev üretimi + doğrulama + koşular | ~100 istek grubu | ~5–10 $ |
| Eval seti üretimi + ölçüm (110 görev, 2 mod) | ~330 | ~25–40 $ |
| Eğitim görevi üretimi (2 000 görev) | 2 000 | ~100 $ |
| Yörünge üretimi (2 000 × 2 deneme) | ~4 000 | ~400–600 $ |
| **Toplam (RL hariç)** | | **~550–750 $** |
Bütçe: şu an ~50 $, her ay +60 $. B–F ve eval ölçümü bu bütçeye sığar. Yörünge üretimi aylık 60 $ ile 7–10 ay sürer; o aşamada ~500–700 $ ek kredi önerilir. Kesin rakam pilottan sonra.
**Karar (2026-10-02): DeepSeek V4.1 Flash (Ollama cloud) teacher ve görev yazarı olarak hemen kullanılıyor.**
Sonuçlar:
- Aynı anda A4H'da en fazla ~50 obje olur (6 worker × ~8). Toplam sayı büyük ama birikmez; teardown her koşu sonunda.
- **Adım 3 yerel modelle yapılamaz.** Teacher model hızlı ve uzakta olmalı (kiralık GPU veya açık lisanslı modelin API'si). O zaman darboğaz A4H olur: 6 worker, koşu başına ~5 dk → saatte ~70 koşu → 8 000 koşu ≈ 5 gün.
- **Önek şeması yetmez:** `Z<run 3 hane><task 3 hane>_` en fazla 999 koşu. Adım 3 öncesi koşu kimliği base36 4 karaktere çıkarılmalı (~1,7 milyon koşu).
- Uzun vadede A4H'da izlenecekler: disk (HANA log, versiyon geçmişi, silme logları).
## Hızlandırılmış sıra (2026-10-02)
Adım 3 görev ister; görevler el ile yazılırsa darboğaz olur. Bu yüzden ilk iş **görev üreteci**: hem eval setini (1.5) hem eğitim görevlerini (3.1) aynı hat üretir.
| Sıra | İş | Durum |
|---|---|---|
| A | Önek şeması: koşu 4 karakter base36, görev 3 karakter base36 (`Z005P001_`) | ✓ |
| B | Harness: FUGR/FUNC, PROG, DDLS desteği (G2 kontrat kontrolü, abaplint dışa aktarımı, silme sırası) | ✓ T13–T15 oracle 100 / null 0. Server eşzamanlılık sorunu bulundu (harness'te retry) |
| C | Görev üreteci: DeepSeek görev yazar (spec, seed, gizli testler, referans + local testler); kategori ve obje tipi dağılımına göre | ✓ `harness/generator.py`: üretim → yapı + statik kontrol + yerel abaplint → oracle/null doğrulama → en fazla 3 onarım turu. Pilot sonrası iyileştirildi (faz1-tasarim 11e) |
| D | Otomatik görev doğrulama: oracle = 100, null = 0, gizli testler bozuk referansta düşmeli | ✓ oracle/null + mutasyon kontrolü (`harness/mutation.py`, generator'a bağlı). 26/26 görev geçti (faz1-tasarim 11g) |
| E | Pilot: ~20 görev, tüm obje tipleri; kabul oranı ve gerçek maliyet ölçümü | ✓ 16/20 kabul, 0,16 $ / kabul edilen görev (faz1-tasarim 11e). Zor parti (5 görev): 5/5 kabul, 0,097 $ / kabul edilen görev (11f) |
| F | Eval seti: 110 görev; Kral incelemesi. Eğitim havuzu: otomatik doğrulanmış görevler, eval ile çakışmasız | |
| G | Ölçüm (1.6) ve yörünge üretimi (3.2) paralel worker'larla (bulut model: en fazla 6) | |
## Bütçe takvimi (Ollama cloud, güncelleme 2026-10-03)
Dönem kullanım hakkı 60 $ (usage). Kral Ollama'ya ayda **20 $ ödüyor, karşılığında 60 $ DeepSeek usage** alıyor: gerçek para maliyeti = usage / 3. 2026-10-03 20:15: usage 24,63 $ (Ollama sayfası), kalan ~35 $ (12 Ekim'e kadar). Ledger (liste fiyatı) 66,97 $: **usage ≈ ledger / 2,7** (önceki 1,47 oranı yanlıştı). 12 Ekim'de +60 $ usage, sonra her ay +60 $. Birim maliyet (usage): DeepSeek koşusu ≈ 0,09 $ (60 çağrı bütçeli, ortalama); görev üretimi ≈ 0,05 $ / kabul edilen görev.
Adım 3 tahmini (usage): pilot (300 görev + 600 yörünge) ≈ 70 $; tam ölçek (2 000 görev ≈ 100 $, 4 000 yörünge ≈ 360 $) ≈ 460 $, yani ~8 aylık hak ya da ~400 $ ek usage (≈ 135 $ para). Kesin rakam pilot sonrası. Belirsizlik: oran iki noktadan ölçüldü; kabul oranı ve deneme sayısı pilotta belli olur.
| Dönem | Bütçe | İş | Tahmini harcama |
|---|---|---|---|
| **2–12 Ekim** | ~50 $ | C: görev üreteci. D: otomatik doğrulama. E: pilot (20 görev, üretim + DeepSeek koşusu) | ~5 $ |
| | | F: eval seti — ~150 aday görev üret (~20 $), süz, 110 kalsın; her aday 1–2 DeepSeek koşusu (ampirik süzgeç, ~10–20 $) | ~30–40 $ |
| | | Yerel ölçüm (Qwen ve aday baz modeller, ücretsiz, geceleri) | 0 $ |
| | | Yedek | ~15 $ |
| **12 Ekim – 12 Kasım** | 60 $ | Adım 2: baz model seçimi (yerel ölçüm sonuçlarıyla). Adım 3 pilotu: ~300 eğitim görevi + ~600 yörünge denemesi | ~70 $ (usage) |
| | | Pilot sonucu: gerçek kabul oranı ve maliyet → Adım 3'ün tamamı için ek kredi kararı (tahmin ~400 $ usage ≈ 135 $ para) | |
| **12 Kasım sonrası** | 60 $/ay + ek kredi | Adım 3'ün tamamı, ardından Adım 4 (SFT) | |
Kurallar:
- Harness her bulut isteğinin token kullanımını `runs/ledger.jsonl`'e yazar (liste fiyatı, cache indirimi olmadan = üst sınır). Dönem harcaması `BUDGET_LIMIT_USD`'ye (şu an 135 $, ledger cinsinden ≈ 50 $ gerçek; oran 2,7, 2026-10-03) ulaşınca yeni üretim veya bulut koşusu başlamaz. ✓
- Eval görevleri ve eğitim görevleri ayrı havuzlar; eval görevleri eğitim verisine girmez.
- Bulut ve yerel model aynı Ollama sunucusunda kuyrukta bekleyebilir; ölçümler sırasında ikisi aynı anda koşturulmaz.
## Adım 2 — Baz model seçimi
Durum (2026-10-04, güncel): baz model Qwen 3.8 27B (Kral kararı). Referans baseline Qwen (MacBook, aynı ayarlar, 11 görev): ortalama 15,8; 3 görev 0'dan yüksek (T01 48,3, G0157 51,0, G0185 75,0); ayrıntı `docs/stage1-baseline.md`. Devstral yalnız karşılaştırma: Devstral baseline (11 görev, `runs/stage1/baseline_devstral.md`): ortalama 6,8; 11 görevden 1'i 0'dan yüksek; bitiş nedeni loop 6, tool_budget 3, report 2; onarım oranı 0,84. Eski Qwen sonuçları `runs/archive/qwen38/`; tam Qwen baseline'ı MacBook'ta koşuyor (`baseline_qwen.json`).
Adım 1.6 tablosundan seçilir. Aday havuzu: sadece Apache 2.0 veya MIT lisanslı modeller. Kriterler: puan, boyut, Mac mini'de çalışabilirlik.
Bitti sayılır: tek baz model seçildi, gerekçesi yazıldı.
## Adım 3 — Eğitim verisi üretimi
| Alt adım | İş |
|---|---|
| 3.1 | Görev üreteci: eval görevleriyle aynı şemada binlerce sentetik görev. Eval görevleriyle çakışma yok. Girdilerin bir kısmı serbest metin; yörüngelerin az bir kısmı farklı tool isim/şemalarıyla. |
| 3.2 | Yörünge üretimi: açık lisanslı teacher model görevleri A4H'da çözer. |
| 3.3 | Filtre: sadece puan eşiğini geçen yörüngeler kalır. Deduplikasyon. |
| 3.4 | Opsiyonel: izinli lisanslı açık ABAP kodu (continued pretraining için). |
Eğitim verisinde mutlaka olmalı (pilot bulguları, 2026-10-02): modellerin sık yaptığı hatalar için görev ve onarım yörüngeleri.
- Metot parametresinde `TYPE c LENGTH n` geçersiz; adlandırılmış tip (`TYPES`) gerekir.
- Ayrılmış kelime alan adı (HOURS, MODE).
- 30 karakterden uzun isimler (özellikle test metotları).
Bitti sayılır: filtrelenmiş yörünge seti hazır, kategori dağılımı dengeli.
## Adım 4 — SFT (LoRA)
| Alt adım | İş |
|---|---|
| 4.1 | Küçük deneme: Mac mini, MLX |
| 4.2 | Gerçek koşu: kiralık GPU |
| 4.3 | Eval: Adım 1 setiyle, baz modelle karşılaştırma |
Bitti sayılır: eğitilmiş model baz modeli anlamlı farkla geçiyor.
## Adım 5 — RL (opsiyonel)
SFT hedefe ulaşmazsa. Ödül: harness puanı (syntax, aktivasyon, testler, abaplint, ATC).
Bitti sayılır: hedef çizgi (Claude referansına ≤ 10 puan fark).
## Adım 6 — Gerçek iş akışında deneme
`/sapplan` planı → model build-agent rolünde → gerçek bir görev. Eval'in yakalamadığı sorunlar burada çıkar.
Bitti sayılır: senin seçtiğin gerçek görevlerde kabul edilebilir sonuç.
## Adım 7 — Yayın
Ağırlıklar, model kartı, lisans, eval sonuçları, genel ABAP MCP arayüz spec'i. Opsiyonel: harness ve eval seti açık kaynak.
Bitti sayılır: yayınlandı.