Text-to-SQL / pilot /PILOT_RAPORU.md
SevdanurGenc's picture
Upload 466 files
a72d1cf verified
|
Raw History Blame Contribute Delete
13.1 kB
metadata
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

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.