使用者知道想查什麼,卻未必知道資料放在哪張表、欄位叫什麼,或兩張表該怎麼連接。AAP-SQL 是我的碩士論文研究:讓大型語言模型把自然語言問題轉成 SQL 查詢,並研究該提供哪些資料,才能在有限的文字用量下得到正確答案。
保留資料庫全貌,補充查詢需要的細節
把所有資料都交給模型,會增加文字用量;只留下少數欄位,又可能漏掉回答問題所需的資訊。AAP-SQL 保留所有資料表與欄位的基本結構,再根據問題找出最相關的欄位,補上少量真實資料值與表格之間的連接線索。
例如,問題問的是「高階信用卡」,資料庫可能存成 gold;問的是持卡人的權限,答案卻可能在另一張表。系統在生成 SQL 前先找出這些資訊,幫助模型選對篩選條件與連接方式。沒有被選中的欄位仍保留在提示裡,讓模型有機會修正前面的檢索遺漏。
用查詢結果與文字用量評估
公開研究結果使用 Gemini 3.1 Flash Lite,在 BIRD Dev 的 11 個 SQLite 資料庫、1,534 道問題中,答對 1,023 題,執行準確率為 66.69%。評分會實際執行 SQL,比較查詢結果是否正確,而不只是檢查語法能否執行。
同一次測試記錄了 3,409,705 個 Token,也就是模型處理文字的計量單位。公開原始碼與研究摘要記錄了方法、設定與結果。
這份研究整理成碩士論文〈高效率低成本自適應增強提示之 Text-to-SQL 生成框架〉,可從論文永久連結查閱。完整介紹從資料表與 SQL 開始,說明方法、比較結果,以及目前仍容易答錯的問題。