Yapay Zekanın Ürettiği SQL'in Doğruluğu Nasıl Ölçülür? Kendi Sonuçlarımızla
Text-to-SQL doğruluğu nasıl ölçülür, "doğru görünen" sorgu neden yetmez? 661 gerçek soruluk test setimizin yöntemi, süit süit sonuçlar ve en çok nerede yanıldığımız. Başarısız örnekler dahil.
Bir text-to-SQL aracının sayfasında "%97 doğruluk" yazıyorsa ilk sorulacak soru şudur: neyi saydınız? Çünkü bu alanda iki farklı şey "doğru" diye ölçülüyor ve aradaki fark, yanlış rakamla karar vermekle doğru rakamla karar vermek arasındaki fark kadar büyük.
"Doğru görünen" sorgu neden yetmez?
Ucuz yöntem, üretilen SQL metnini referans SQL ile karşılaştırmaktır. Ama aynı soruyu doğru cevaplayan onlarca farklı SQL yazılabilir; tersine, referansa çok benzeyen bir sorgu tek kelimelik farkla yanlış veri döndürebilir. Sorgu çalışır, bir sayı gelir, sayı yanlıştır ve hata mesajı yoktur. Bu yüzden biz metne hiç bakmıyoruz.
Bizim yöntem: sonucu say, metni değil
- Her test sorusu için önceden elle yazılmış, doğruluğu bilinen bir referans sorgu var.
- Modelin ürettiği sorgu canlı bir veritabanında gerçekten çalıştırılıyor.
- Dönen veri, referans sorgunun döndürdüğü veriyle satır satır karşılaştırılıyor. Kolon sırası farklıysa ama değerler doğruysa geçer; model istenenden fazla bağlam kolonu eklediyse ve istenen değerler içindeyse yine geçer.
- Sette bilerek cevaplanamaz sorular da var: veritabanında karşılığı olmayan bir soruya model SQL uydurmak yerine "bu veriyle cevaplanamaz" diyebiliyor mu, o da ayrıca test ediliyor.
Güncel sonuçlar, süzgeçsiz
Son tam koşuda set 661 gerçek sorudan oluşuyordu; sorular dört motorda (PostgreSQL, SQL Server, MySQL, Oracle) ve satış, hastane, İK, üniversite gibi farklı alan şemalarında koşuldu. Genel sonuç 593/661, yani %90. Tipik iş şemalarında (anlamlı tablo ve kolon adları olan) süitler %94 ile %100 arasında; sitedeki %94 rakamı bu sınıfın özetidir.
Peki geri kalan nerede kayboluyor? Kasıtlı olarak zorlaştırılmış "legacy" süitlerde: kolon adları kriptik kısaltmalardan oluşan, açıklamasız eski şemalar. Orada sonuç %60-80 bandına iniyor. Bunu saklamıyoruz çünkü işin en önemli pratik dersi tam burada: text-to-SQL doğruluğunun bir numaralı değişkeni model değil, şemanızın okunabilirliği. Kriptik kolonlara uygulama içinden açıklama eklemek, doğruluğu en çok artıran tek hamle.
En çok hangi hataları yapıyor?
- Fazladan satır: bir birleştirme beklenenden fazla satır çoğaltıyor; referans 5 satır beklerken 6 gelmesi gibi. Ölçüm bunu anında yakalar.
- Yanlış kolon seçimi: benzer adlı iki kolondan yanlışını kullanmak. Kriptik şemaların klasik hatası.
- Belirsiz sorunun farklı yorumu: "en yoğun servis" gibi bir ifadeyi modelin başka bir metrikle yorumlaması. Teknik olarak savunulabilir ama referanstan farklı; biz yine hata sayarız.
Bu hata sınıflarının hiçbiri veri bozmaz, çünkü üretim salt-okunurdur; risk yanlış bilgi riskidir. Panzehiri de ölçümün kendisi ve sorgunun her zaman görünür olması: rakama güvenmeden önce neye baktığınızı görebilirsiniz.
Sık sorulan sorular
- Neden %100 değil?
- Çünkü doğal dil belirsizdir ve gerçek şemalar dağınıktır. Akademik kıyaslamalarda da en iyi sistemler %100'e ulaşmıyor. %100 iddia eden bir araç görürseniz ölçüm yöntemini sorun; büyük ihtimalle metin benzerliği sayıyordur.
- Test soruları modele önceden gösteriliyor mu?
- Hayır. Sorular üretim yolunun aynısından geçer: model soruyu ve şemayı ilk kez görür, ürettiği SQL çalıştırılır, sonuç karşılaştırılır.
- Kendi şememde doğruluk ne olur?
- Şemanız anlamlı adlar taşıyorsa tipik iş süitlerine (%94+), kriptik kısaltmalarla doluysa legacy süitlere (%60-80) yakın davranır. İyi haber: kolon açıklamaları ekleyerek ikinci gruptan birinciye taşınabilirsiniz.
- Ölçümü ne sıklıkla tekrarlıyorsunuz?
- Model veya üretim yolu değiştiğinde tam set yeniden koşulur. Güncel özet her zaman doğruluk sayfasındadır; bu yazıdaki rakamlar 2026 Temmuz koşusuna aittir.
Yöntemin kısa özeti ve güncel skor persight.ai/dogruluk sayfasında duruyor. Kendi verinizde nasıl davrandığını görmek en sağlıklısı; beta sırası persight.ai/beta adresinde.
Kaynaklar
İlgili yazılar
- Text-to-SQL Nedir? Doğal Dilden SQL'e Çeviri, Sade AnlatımText-to-SQL (NL2SQL), doğal dildeki bir soruyu çalıştırılabilir SQL sorgusuna çeviren yapay zeka tekniğidir. Nasıl çalışır, sınırları neler, güvenli kullanım için nelere bakılır? Pazarlamasız bir rehber.
- Yapay Zeka ile SQL Üretmek Güvenli mi? Riskler ve Alınacak ÖnlemlerAI SQL generator araçları ve ChatGPT ile SQL yazdırmak yaygınlaştı; peki kurumsal veride güvenli mi? Dört gerçek risk ve her biri için somut önlem: salt-okunur kullanıcı, görünür SQL, veri yerelliği, ölçüm.
- Doğal Dille Veritabanı Sorgulama Nasıl Çalışır (ve Görünür Sorgu Neden Önemli)Doğal dilden SQL üretimi sade bir anlatımla: sorunuz nasıl sorguya dönüşür, salt-okunur ve her zaman görünür bir sorgu neden daha güvenli ve PerSight verinizi neden makinenizde tutar.