|
Download pilot/PILOT_RAPORU.md from SevdanurGenc/Text-to-SQL: direct link, hf CLI and curl.
- Browser
- Download file 13.1 kB
-
https://huggingface.co/SevdanurGenc/Text-to-SQL/resolve/main/pilot/PILOT_RAPORU.md
- Command line
-
hf download hf://SevdanurGenc/Text-to-SQL/pilot/PILOT_RAPORU.md
-
curl -L -o PILOT_RAPORU.md https://huggingface.co/SevdanurGenc/Text-to-SQL/resolve/main/pilot/PILOT_RAPORU.md
13.1 kB
| title: "Tablo2SQL-TR Pilot Çalışma Raporu" | |
| subtitle: "Geliştirmede görülmemiş belge düzenleriyle stres testi · 12 Ekim 2026 (düzeltme sonrası sonuçlar eklendi)" | |
| lang: tr | |
| cover: no | |
| ## Özet | |
| Hakem incelemesi, gerçek belgelerle küçük bir pilot istemişti. Gerçek belgeler bulunana kadar, gerçek Türk kurum belgelerinin düzenini taklit eden **üç kurgusal belge** ve **44 soru** hazırlandı. Belgeler, ana test kümesindeki altı belgeden bilerek farklı tasarlandı. Sistemin kodu pilottan önce donduruldu ve pilot tek seferde çalıştırıldı; sonuçlar görüldükten sonra yazılımda hiçbir ayar yapılmadı. | |
| **Sonuç: sistem yeni düzenlere iyi genellenmedi.** | |
| | Ölçüt | Ana test kümesi (TR-TabloSQL) | Pilot, dondurulmuş kod | Pilot, düzeltme sonrası | | |
| |---|---|---|---| | |
| | Genel doğruluk | %92,9 (92/99) | **%25,0 (11/44)** | %59,1 (26/44) | | |
| | Cevaplanabilir sorularda doğruluk | %93,2 | **%15,8 (6/38)**; tesadüfen doğru bir olgu çıkarılınca %13,2 | %57,9 (22/38); tesadüfi olgu çıkarılınca %55,3 | | |
| | Cevapsız sorularda doğru red | %90,9 | %83,3 (5/6); redlerin bir kısmı yanlış gerekçeyle | %66,7 (4/6) | | |
| | Cevaplanabilir soruda yanlış red | %0,0 | **%39,5 (15/38)** | %5,3 (2/38) | | |
| Düzeltme sonrası sütun, aşağıda (Bölüm 8) açıklanan genel hata düzeltmelerinden sonra elde edildi. Düzeltmeler bu pilotun bulgularına dayandığı için bu sütun görülmemiş veride ölçülmüş bir skor **değildir**. | |
| Başarısızlıkların **32'sinin 19'unda** kök neden ya da katkıda bulunan neden tablo çıkarmadır. Kalanlar kural tabanlı üreticinin yeni ifadelerde yanlış sütun ya da işlem seçmesinden kaynaklanıyor. Pilot ayrıca yazılımda **altı somut hata** ortaya çıkardı. Bunlardan biri, iki belgedeki adsız tabloların aynı adı alması yüzünden bir tablonun sessizce silinmesine yol açan bir veri kaybı hatası. | |
| **Önemli sınırlama.** Belgeler kurgusal ve aynı ekip tarafından hazırlandı. Bu nedenle pilot, hakemin istediği **bağımsız gerçek belge pilotunun yerini tutmaz**. Doğru tanımı "geliştirmede görülmemiş düzenlerle stres testi"dir. Gerçek belgeler geldiğinde aynı düzenek değiştirilmeden kullanılabilir (bkz. `pilot/README.md`). | |
| --- | |
| ## 1. Belgeler | |
| | Belge | Biçim | Taklit edilen gerçek belge | Ana kümede olmayan zorluklar | | |
| |---|---|---|---| | |
| | Yeşilvadi Belediyesi 2025 Faaliyet Raporu | PDF, 3 sayfa, çizgili | 5018 sayılı Kanun kapsamındaki belediye faaliyet raporu | Ekonomik kod sütunu; "Ödenek" altında dört alt sütun; "-" ile gösterilen tanımsız oran; "(*)" dipnotlu satır adı; **iki sayfaya bölünmüş, başlığı her sayfada tekrar eden 63 satırlık tablo** | | |
| | Kuzeyçınar Gıda A.Ş. 31.12.2025 Konsolide Finansal Tablolar | PDF, 2 sayfa, **dikey çizgisiz** | KAP'ta yayımlanan TFRS finansal tabloları | Dipnot sütunu; üç satırlı dönem başlığı ("Bağımsız Denetimden Geçmiş / Cari Dönem / 31.12.2025"); girintili kalemler; bölüm başlığı satırları; ara toplamlar; parantezli negatifler; 4 ondalıklı pay başına kazanç | | |
| | Ardıçlı İli 2025 İstatistik Bülteni | HTML | İl müdürlüğü istatistik bülteni | Çeyrek (Ç1–Ç4) sütunları; "İl Toplamı" satırı; `<tfoot>` içinde kaynak notu; "Ocak 2025" biçimli ay satırları; negatif yüzde değişimler | | |
| Her sayfada "KURGUSAL ÖRNEK BELGE" uyarısı bulunur; kurum, il ve ilçe adları uydurmadır. | |
| **Sorular.** 44 soru hazırlandı: 38'i cevaplanabilir, 6'sı cevapsız. Zorluk dağılımı 6 kolay, 22 orta, 16 zor. Altın cevaplar soru metninden değil, belgeleri üreten ham verilerden programla hesaplandı. Ayrı bir denetimde 44 altın cevabın tamamı, belgeler `pdftotext` ile okunarak yeniden kontrol edildi; yanlış altın cevap bulunmadı. | |
| --- | |
| ## 2. Protokol | |
| 1. **Kod donduruldu.** Pilot öncesinde `t2s/` kodunun SHA-256 özetleri `pilot/kod_parmak_izi.txt` dosyasına kaydedildi ve çalıştırma öncesinde değişmediği doğrulandı. | |
| 2. **Arka uç kural tabanlı.** Ana deneylerle aynı ayarlar kullanıldı: K = 3 ve Türkçe normalizasyon. Hibrit geri düşme kapalı. | |
| 3. **Değerlendirme cevap düzeyinde,** altın SQL olmadan yapıldı. Kurallar `pilot/README.md` dosyasında. Ölçütte yapılan tek değişiklik şu: ilk çalıştırmadan sonra, metin cevaplarda tarihlerin ISO karşılığıyla eşleşmesi kabul edildi ("Ekim 2025" = "2025-10"). Bunun nedeni, sistemin ayları ISO biçiminde saklaması. Bu düzeltme sistemi değil yalnızca puanlamayı değiştirdi ve bir sorunun sonucunu etkiledi. O soru da aşağıda "tesadüfen doğru" olarak işaretlendi. | |
| --- | |
| ## 3. Sonuçlar | |
| ### 3.1 Belgeye ve zorluğa göre | |
| | | Doğru / Toplam | Oran | | |
| |---|---|---| | |
| | Faaliyet raporu (PDF) | 6 / 22 | %27,3 | | |
| | Finansal tablolar (PDF) | 2 / 14 | %14,3; iki doğru da cevapsız sorulardır, cevaplanabilir 12 sorunun hiçbiri doğru değil | | |
| | İstatistik bülteni (HTML) | 3 / 8 | %37,5 | | |
| | Kolay / orta / zor | 2/6 · 7/22 · 2/16 | %33,3 · %31,8 · %12,5 | | |
| **Tesadüfen doğru.** P42'de ("satışların en çok düştüğü ay") SQL, önceki yılın satışına göre sıralama yapıyor. Bu yanlış sıralama, rastlantı sonucu doğru ayı döndürdü. | |
| **Yanlış gerekçeyle doğru red.** P35'te sistem şirket sorusunu belediye personel tablosuna bağlayıp "2025 verisi yok" gerekçesiyle reddetti. P36'da ise red, gelir tablosunun veritabanında hiç bulunmamasından kaynaklandı. | |
| ### 3.2 Tablo çıkarma | |
| **Değer geri çağırma** şunu ölçer: belgedeki ham sayıların kaçının çıkarılan tablolarda bir sayı olarak bulunduğu. | |
| | Belge | Yazılan tablo | Değer geri çağırma | | |
| |---|---|---| | |
| | Faaliyet raporu | 4 (çok sayfalı tablo ikiye bölündü) | %100 | | |
| | Finansal tablolar | 1 (gelir tablosu kayboldu) | %64,7 (44/68) | | |
| | İstatistik bülteni | 2 | %100 | | |
| Sayıların değerleri doğru ayrıştırıldı. Sorun, tabloların **yapısında ve meta verisinde**: tablo adları, sütun adları, yıllar ve tabloların bölünmesi. | |
| ### 3.3 Başarısızlık nedenleri (32 cevaplanabilir yanlış) | |
| | Kod | Neden | Olgu | Örnek | | |
| |---|---|---|---| | |
| | A | Kapsam denetimi yanlış reddi ("2025 verisi yok") | 11 (9'unda kök neden çıkarma) | Mahalle tablosunda "Nüfus (2025)" başlığındaki yıl silindiği için 2025 soruları reddedildi | | |
| | B | Doğru tabloda yanlış sütun | 6 | "Toplam ödenek" yerine "bütçe ödeneği"; "üçüncü çeyrek" yerine Ç1 | | |
| | D | Yanlış işlem ya da niyet | 8 | Değer yerine COUNT(*); NULL değerin sıralamada başa gelmesi; eksik filtre | | |
| | E | Birim dönüşümü | 1 | TL'den milyon TL'ye çevrilmedi | | |
| | F | Çıkarma hatası yüzünden cevap imkânsız | 6 | Gelir tablosu veritabanında yok; bölünmüş tabloda sayım eksik | | |
| **Çıkarma kök ya da katkı nedeni: 19/32.** | |
| --- | |
| ## 4. Pilotun ortaya çıkardığı yazılım hataları | |
| | # | Hata | Etki | Önem | | |
| |---|---|---|---| | |
| | 1 | **Adsız tablolar aynı adı alıyor** (`sutun`) ve sonraki belge öncekinin üzerine yazıyor | Finansal belgedeki gelir tablosu sessizce silindi; ona ait 6 sorunun (P29–P34) cevabı imkânsız hâle geldi | **Yüksek (veri kaybı)** | | |
| | 2 | **Parantez içindeki yıl, birim sanılıp siliniyor:** "Nüfus (2025)" → `nufus_2` | Yıl bilgisi kayboluyor, kapsam denetimi soruları reddediyor | Yüksek | | |
| | 3 | **Çok sayfalı tablo birleştirilmiyor;** ikinci parça başlıksız ayrı bir tablo oluyor | Sayım ve sıralama soruları eksik veriyle yanıtlanıyor | Orta (bilinen sınırlılık) | | |
| | 4 | **Dikey çizgisiz finansal tablolarda:** başlık yerine üstteki paragraf alınıyor; "Dipnot Referansları" iki sütuna bölünüyor; tarih satırı veri satırı oluyor; bölüm başlıkları NULL satırlar olarak saklanıyor | Sütunlarda dönem ve yıl bilgisi yok; yanlış sütun seçiliyor | Yüksek | | |
| | 5 | **HTML `<tfoot>` içindeki kaynak notu** veri satırı olarak saklanıyor | Listelerde fazladan satır çıkıyor | Düşük | | |
| | 6 | **Toplam satırı kalıbı** "İl Toplamı", "BRÜT KAR" ve "DÖNEM KARI" gibi satırları tanımıyor | Toplamada çift sayım (P38'de iki kat sonuç) | Orta | | |
| Ayrıca **kapsam denetimi**, yılı yalnızca tablo başlığında, sütun adlarında ve hücre değerlerinde arıyor. Belge metnindeki "2025 mali yılı" ifadesini görmediği için yıl içermeyen bütçe tablosuna yönelik 2025 sorularını reddediyor. | |
| --- | |
| ## 5. Yorum | |
| 1. **Ana kümedeki %92,9 genellenmiyor.** Kural tabanlı üretici, geliştirme sırasında görülen ifade ve düzenlere bağımlı. Bu, hakemin "aşırı uyum" endişesini doğruluyor; makaledeki "geliştirme skoru iyimserdir" sınırlılığının boyutunu da gösteriyor. | |
| 2. **Çıkarma, başarısızlıkların çoğunun kaynağı.** Sayılar doğru ayrıştırılıyor; Türkçe normalizasyon pilotta da sorunsuz çalıştı. Sorun tablo yapısında ve meta veride. Yukarıdaki 1, 2 ve 4 numaralı hataların giderilmesi, LLM'den bağımsız olarak büyük kazanç sağlayacaktır. | |
| 3. **LLM deneyi daha da önemli hâle geldi.** B, D ve E türündeki 15 hata, sabit kalıplarla çalışan bir üreticinin sınırlarını gösteriyor. Bunlar bir LLM'nin çözmesi beklenen türden hatalar. | |
| 4. **Cevapsızlık davranışı da sınırlı.** Doğru redlerin bir kısmı yanlış gerekçeye dayanıyor ve cevaplanabilir soruların %39,5'i reddedildi. Ana kümede yanlış red %0'dı. | |
| --- | |
| ## 6. Makale için öneri (uygulandı: makale v5, Bölüm 6.6) | |
| Bu pilot dürüstçe raporlanırsa makaleyi güçlendirir. Önerilen biçim: Bölüm 7'ye ya da ek materyale kısa bir **"Görülmemiş düzenlerle stres testi"** paragrafı eklemek. Paragraf ana bulguyu (%93,2 → %15,8), başarısızlıkların çıkarmadan kaynaklandığını ve bunun gerçek belge pilotunun yerini tutmadığını açıkça belirtmeli. Yazılım hataları düzeltilip pilot yeniden çalıştırılırsa, iki sonuç "dondurulmuş kod" ve "düzeltme sonrası" olarak ayrı ayrı raporlanmalıdır. | |
| --- | |
| ## 8. Düzeltme sonrası | |
| Pilotun bulduğu hatalar, **pilot sorularına özgü hiçbir kural eklenmeden** genel biçimde düzeltildi: | |
| | Hata | Düzeltme | | |
| |---|---| | |
| | Adsız tabloların aynı adı alıp birbirinin üzerine yazılması | Başlığı okunamayan tablo belge ve sayfa adıyla adlandırılıyor; başka bir belgenin ya da aynı sayfadaki başka bir tablonun üzerine yazılmıyor, aynı tablo yeniden aktarılırsa kendi yerine yazılıyor | | |
| | Parantezli yılın silinmesi | "Nüfus (2025)" → `nufus_2025` | | |
| | Bölünmüş tablolar | Ardışık sayfalarda aynı başlıkla süren ve kendine ait farklı başlığı olmayan parçalar birleştiriliyor (üç ve daha fazla sayfa dahil) | | |
| | Çizgisiz finansal tablolar | "… Tablosu"/"Bilanço" satırı başlık olarak seçiliyor; başlık araması 6 satıra çıktı; yalnızca tarihlerden oluşan etiketsiz satır dönem başlığı sayılıyor, ondan sonraki "VARLIKLAR" gibi satırlar gövdede kalıyor; satır sonunda bölünmüş başlık sözcükleri soldaki sütunla birleşiyor; dipnot/kod sütunları ölçü sayılmıyor | | |
| | `<tfoot>` ve tablo altı notları | Veri satırı olarak alınmıyor | | |
| | "İl Toplamı" | "… Toplamı" kalıbı toplam satırı olarak işaretleniyor | | |
| | Yıl içermeyen tablolar | Tablonun üstündeki metinde geçen yıllar ("2025 mali yılı") dönem olarak kaydediliyor; hiç yıl bilgisi olmayan tabloda yıl gerekçesiyle red verilmiyor | | |
| | Tanımsız ("-") değerler | En yüksek/en düşük sıralamasına alınmıyor | | |
| **Sonuç:** değer geri çağırma üç belgede de %100'e, doğruluk %59,1'e çıktı. Ana test kümesindeki bütün sonuçlar değişmedi; yalnızca Camelot-stream çıkarıcısının iki tablodaki hücre doğruluğu iyileşti (ortalama %60,7 → %96,7). Bu hatalar için 8 regresyon testi eklendi; toplam 50 testin hepsi geçiyor. | |
| **Gerileme:** P10 ("2024 yılı personel gideri") daha önce doğru reddediliyordu. Mahalle tablosunda 2024 yılı artık görünür olduğu için bu soru o tablodan yanıtlanıyor. | |
| **Kalan hatalar:** cevaplanabilir sorularda kalan 16 hatanın çoğu kural tabanlı üreticinin yeni ifadelerde yanlış sütun ya da işlem seçmesi: "üçüncü çeyrek" sorusunda Ç1 seçiliyor, "kadro sayısı" sorusunda değer yerine COUNT kullanılıyor, "milyon TL" dönüşümü yapılmıyor. Bunlar bilerek düzeltilmedi; düzeltilirlerse üretici pilot sorularına göre ayarlanmış olurdu. Bu tür hatalar LLM üreticiyle ölçülmelidir. | |
| Dondurulmuş koddaki sonuçlar `sonuclar/`, düzeltme sonrası sonuçlar `sonuclar_duzeltme/` klasöründe. Her iki kodun parmak izi `kod_parmak_izi.txt` ve `kod_parmak_izi_duzeltme.txt` dosyalarında. | |
| ## 9. Yeniden üretim | |
| ```bash | |
| python pilot/belge_uret.py | |
| python pilot/pilot_calistir.py # düzeltilmiş kodla | |
| python pilot/pilot_calistir.py --cikti pilot/sonuclar_duzeltme # düzeltme sonrası çıktı klasörü | |
| ``` | |
| Sonuçlar `pilot/sonuclar/pilot_sonuclari.json` dosyasında. Her soru için SQL, dönen satırlar ve sistemin cevap metni kayıtlıdır. | |