Preskočiť na hlavný obsah

Výskumný denník Bean Labs

DIN-SQL: GPT-4 skočí z 67,4% na 85,3% EX na Spideri

Publikované Naposledy aktualizované 7 min čítaniaMike ThriftMike Thrift
DIN-SQL: GPT-4 skočí z 67,4% na 85,3% EX na Spideri

Článok: https://arxiv.org/abs/2304.11015

Na tejto stránke

Minulý týždeň som sa venoval benchmarku BIRD, ktorý odhalil, ako zle LLM zlyhávajú, keď sa text-to-SQL presunie z upravených hračkárskych databáz do schém z reálneho sveta s neporiadnym pomenovaním, doménovými znalosťami a obmedzeniami efektivity. DIN-SQL je článok, ktorý som si mal prečítať ako prvý: definoval, čo dokáže starostlivo dekomponovaný reťazec výziev (prompting pipeline) LLM skutočne dosiahnuť na benchmarkoch Spider a BIRD, a na konferenciu NeurIPS 2023 ho priniesli Mohammadreza Pourreza a Davood Rafiei práve v čase, keď sa GPT-4 stal široko dostupným. Čítať ho teraz – po tom, čo BIRD odhalil stropy – umožňuje jasnejšie vidieť silné stránky a limity.

Článok​

DIN-SQL (arXiv:2304.11015) rieši výraznú medzeru vo výkone. Začiatkom roka 2023 dosahovali najlepšie jemne vyladené modely — RESDSQL-3B+NatSQL — 79,9 % presnosť vykonávania na testovacej sade Spider, zatiaľ čo GPT-4 s naivným few-shot promptingom zvládol na vývojovej sade len 67,4 %. Hypotéza Pourrezu a Rafieiho je, že táto medzera je hlavne problémom rozhrania: LLM sú dostatočne schopné, ale generovanie SQL v jednom kroku od nich vyžaduje vyriešiť prepájanie schém, klasifikáciu zložitosti a syntézu dopytov naraz. Ak tieto kroky rozložíte do sekvenčných podúloh a každé riešenie posuniete ďalej ako kontext, situácia sa zmení.

Ich proces má štyri fázy: (1) modul na prepájanie schém (schema-linking), ktorý využíva chain-of-thought prompting na priradenie otázky v prirodzenom jazyku ku konkrétnym stĺpcom a hodnotám v schéme; (2) modul na klasifikáciu a dekompozíciu, ktorý rozdeľuje dopyt na jednoduchý (jedna tabuľka, žiadne spojenia), komplexný bez vnorenia (spojenia, ale žiadne poddopyty) alebo komplexný vnorený (spojenia, poddopyty, množinové operácie) a pri vnorených dopytoch rozkladá problém na poddopyty; (3) modul na generovanie SQL, ktorý prispôsobuje stratégiu promptingu triede zložitosti — jednoduchý few-shot pre ľahké dopyty, prechodná reprezentácia NatSQL pre nevnorené a viacstupňový chain-of-thought pre vnorené; a (4) modul na samoopravu, ktorý žiada model, aby skontroloval svoj vlastný výstup a hľadal drobné chyby ako chýbajúce DISTINCT alebo nesprávne umiestnené DESC.

Kľúčové myšlienky​

  • GPT-4 + DIN-SQL dosahuje 85,3 % presnosť vykonávania na vyhradenej testovacej sade Spider, čo je nárast o +5,4 bodu oproti vtedajšiemu SOTA jemne vyladenému modelu RESDSQL-3B+NatSQL (79,9 %), a to bez akýchkoľvek trénovacích dát špecifických pre danú úlohu.
  • Na vývojovej sade Spider posúva dekompozičný proces model GPT-4 zo 67,4 % (few-shot baseline) na 74,2 % — čistý zisk +6,8 bodu. CodeX Davinci sa posúva z 61,5 % na 69,9 %.
  • Ablácia potvrdzuje, že každá fáza prispieva k výsledku: odstránenie samotného prepájania schém znižuje výkon CodeX z 69,9 % na 65,9 %; odstránenie klasifikácie ho ďalej znižuje na 63,1 %.
  • Zisky sú koncentrované v jednoduchých a stredne ťažkých dopytoch. Pri „extra ťažkých“ dopytoch dosahuje aj kompletný proces DIN-SQL + GPT-4 na vývojovej sade Spider len 43,4 % — dekompozícia nerieši zložitosť, len znižuje zbytočné chyby pri riešiteľných dopytoch.
  • Samooprava je citlivá na model: GPT-4 reaguje na „jemné“ prompty, ktoré žiadajú o potenciálne vylepšenia; CodeX reaguje lepšie na „všeobecné“ prompty, ktoré predpokladajú, že SQL je nesprávne. To naznačuje, že modul vykonáva štylistické čistenie, nie skutočné sémantické overenie.
  • Na vývojovej sade BIRD dosahuje DIN-SQL + GPT-4 skóre 50,72 % oproti základnému GPT-4 s 46,35 % — zlepšenie o +4,4 bodu, čo je podstatne menej ako zisky na Spideri, k čomu sa ešte vrátim.

Čo obstojí — a čo nie​

Hlavný výsledok je reálny. Rozklad text-to-SQL na explicitné podúlohy zvyšuje výkon a ablačné štúdie sú dostatočne jasné na to, aby sa dalo veriť príspevkom jednotlivých modulov. Prepájanie schém je najdôležitejšie pri ťažkých dopytoch, čo dáva zmysel: model nemôže vygenerovať správne JOIN-y, ak predtým správne neidentifikoval, na ktoré tabuľky a stĺpce sa otázka vzťahuje.

Niekoľko vecí ma však zaráža. Rozpor medzi 74,2 % na vývojovej sade a 85,3 % na testovacej sade je podozrivý. Vývojové sady sú zvyčajne náročnejšie alebo aspoň rovnako náročné ako testovacie sady, pretože modely sú voči nim implicitne ladené; nárast o +11 bodov pri prechode z vývojovej na testovaciu sadu je neobvyklý. Autori to nevysvetľujú a núti ma to zamyslieť sa, či má testovacia sada iné rozdelenie náročnosti dopytov, alebo či existuje niečo v spôsobe, akým sa vyhodnocuje vyhradený test (cez oficiálny server Spider leaderboard), čo sa líši od ich vyhodnotenia vývojovej sady. Bez tejto výhrady by som 85,3 % necitoval.

Rozdiel v benchmarku BIRD (50,72 % na vývojovej sade) je výrazne menší ako zisky na Spideri. Databázy BIRD majú neporiadne schémy z reálneho sveta so skrátenými názvami stĺpcov, doménovo špecifickou terminológiou a nejednoznačnými hodnotami. Modul DIN-SQL na prepájanie schém bol navrhnutý s ohľadom na relatívne čisté schémy Spider; keď sa schémy stanú „špinavšími“, presnosť prepájania klesá a s ňou degraduje aj zvyšok procesu. To je presne to, čo meral článok BIRD, a DIN-SQL to nerieši.

Čísla týkajúce sa nákladov a latencie sú problémom pre akýkoľvek produkčný systém: zhruba 0,50 USD a 60 sekúnd na otázku s GPT-4. To je v poriadku pre dátového analytika, ktorý spúšťa desať dopytov denne, ale úplne nepoužiteľné pre interaktívne použitie. Článok to uvádza ako známe obmedzenie, ale nenavrhuje cestu k jeho zníženiu. DAIL-SQL (arXiv:2308.15363), ktorý sa objavil o niekoľko mesiacov neskôr, ukázal, že lepší výber príkladov namiesto explicitnej dekompozície by mohol dosiahnuť 86,6 % na Spideri — čím prekonáva DIN-SQL pri výrazne nižších nákladoch.

Modul samoopravy je najslabšou časťou. Autori priznávajú, že zachytáva „drobné“ chyby. Čo však nedokáže, je detegovať sémantické chyby — prípady, kedy je vygenerované SQL syntakticky správne a dokonca sa aj vykoná, ale odpovedá na nesprávnu otázku. To je pre skutočných používateľov ten ťažší režim zlyhania.

Prečo je to dôležité pre finančnú AI​

Beanquery (BQL) je dopytovací jazyk podobný SQL určený pre dáta účtovnej knihy Beancount. Má vlastnú štruktúru tabuliek — transactions, postings, balance, prices — s hierarchiami účtov, tagmi a metadátami, ktoré vôbec nevyzerajú ako bežné databázové schémy. Rozhranie v prirodzenom jazyku pre BQL je skutočná a užitočná vec (už existuje experimentálny server beanquery-mcp implementujúci presne toto cez MCP) a stratégia dekompozície DIN-SQL je správnym východiskovým bodom.

Prepájanie schém nad BQL je analogický problém k prepájaniu schém nad relačnými tabuľkami, ale s dvoma ďalšími komplikáciami: názvy účtov sú hierarchické cesty ako Assets:US:Checking:Bank a relevantná schéma závisí od toho, aký druh dopytu používateľ kladie (výsledovka, súvaha, peňažné toky). Klasifikačný modul DIN-SQL naznačuje priamu adaptáciu: najprv klasifikovať zámer dopytu (zostatok vs. tok vs. vyhľadávanie cien) a potom smerovať do rôznych šablón promptov.

Zistenie benchmarku BIRD, že neporiadok reálneho sveta škodí LLM pri text-to-SQL, je priamo relevantné. Účtovná kniha Beancount je tiež „neporiadna“ — používateľom definované názvy účtov, nekonzistentné symboly komodít, vlastné kľúče metadát. Zlepšenie o 4,4 bodu na BIRD oproti 6,8 bodu na Spideri mi hovorí, že režim štruktúrovaných a čistých schém preceňuje to, nakoľko dekompozícia pomôže pri skutočných BQL dopytoch. V praxi očakávajte menšie zisky.

Nákladové obmedzenie je reálne, ale tu menej limitujúce. Používateľ osobnej finančnej správy, ktorý spustí 10–20 dopytov denne, znesie náklady na API vo výške 5–10 USD/deň, ak je rozhranie skutočne užitočné. Latencia (60 sekúnd) je skôr problémom pre interaktívne použitie; dávkové spracovanie analytických dopytov by to mohlo obísť.

Čo si prečítať ďalej​

  • DAIL-SQL: Text-to-SQL Empowered by Large Language Models: A Benchmark Evaluation (arXiv:2308.15363) — systematická štúdia stratégií inžinierstva promptov; dosahuje 86,6 % na Spideri zameraním sa na výber príkladov namiesto architektonickej dekompozície, čo je užitočný protipól k DIN-SQL.
  • RESDSQL: Decoupling Schema Linking and Skeleton Parsing for Text-to-SQL (arXiv:2302.05965, AAAI 2023) — jemne vyladená základná línia (baseline), ktorú DIN-SQL prekonal; pochopenie toho, čo jemne vyladený prístup robí dobre, objasňuje, kde prompting stále zaostáva.
  • MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL (arXiv:2312.11242) — rozširuje myšlienku viacstupňovej dekompozície do explicitného multi-agentného procesu so Selektorom, Dekompozitorom a Refinerom; s GPT-4 dosahuje 59,59 % na BIRD a je to najviac agentovo orientovaný prístup v tejto oblasti.

Zdroj: https://beancount.io/sk/bean-labs/research-logs/2026/06/07/din-sql-decomposed-in-context-learning-text-to-sql

Publikované: 7. júna 2026

Naposledy aktualizované: 14. septembra 2026