級(jí) Text-to-SQL 實(shí)戰(zhàn):從AI取數(shù)工具到智能分析Agent的演進(jìn)之路)
本文整理自QCon北京《王新波 - AI取數(shù)到智能分析演進(jìn)之路》通過AI音視頻轉(zhuǎn)錄總結(jié)工具Ai好記視頻轉(zhuǎn)文字轉(zhuǎn)錄整理以下為精煉整理后的會(huì)議筆記內(nèi)容。做 AI 取數(shù)Text-to-SQL的同學(xué)應(yīng)該都體會(huì)過那種落差。學(xué)術(shù)界的 benchmark 上Spider 這類數(shù)據(jù)集的 SOTA 方案準(zhǔn)確率能做到 85% 到 91%跟人的水平差不多了。可一旦把同樣這套方案搬到真實(shí)企業(yè)的生產(chǎn)環(huán)境里準(zhǔn)確率直接掉到 10% 到 40%連 SQL 的語法準(zhǔn)確率都只有五成上下。這篇內(nèi)容講的就是一個(gè)團(tuán)隊(duì)用兩年時(shí)間把一個(gè)簡單的一周做出來的 AI 取數(shù) demo一步步迭代成支撐幾千人生產(chǎn)使用的企業(yè)級(jí)智能分析 Agent 的全過程。整個(gè)過程踩坑密集很多思路對(duì)做數(shù)據(jù)平臺(tái)和 Agent 的人都挺有參考價(jià)值。背景數(shù)據(jù)消費(fèi)進(jìn)入 4.0 階段數(shù)據(jù)消費(fèi)大體經(jīng)歷四個(gè)階段。1.0 是傳統(tǒng) BI 時(shí)代以 SAP 為代表報(bào)表交付靠開發(fā)團(tuán)隊(duì)寫 SQL。2.0 是自助式 BI以看板類工具為代表但作者提到自家月活 2 萬多的看板里只有不到 10% 的人是報(bào)表生產(chǎn)者大部分人的數(shù)據(jù)消費(fèi)還是要靠少數(shù)據(jù) BI 同學(xué)手工操作。3.0 是增強(qiáng)分析開始引入 AI 輔助但流程仍由人驅(qū)動(dòng)。4.0 才是 AI 原生的 Agent 時(shí)代用戶直接用自然語言提交分析需求Agent 自主完成從取數(shù)到智能分析的全過程。第一版 demo 暴露的五大問題他們的第一版架構(gòu)很典型把平臺(tái)上近 30 天有訪問的約 100 萬張表做向量索引用戶問題來了就基于相似檢索召回相關(guān)表構(gòu)造 prompt 交給大模型直接生成 SQL。結(jié)果第一版評(píng)測集上找表準(zhǔn)確率只有 56%SQL 執(zhí)行準(zhǔn)確率不到 40%。同時(shí)期商業(yè)模型裸跑企業(yè)級(jí) benchmark 也只有 10% 左右??偨Y(jié)下來有五大核心問題找表不準(zhǔn)數(shù)倉分層多相似表成百上千向量模型難以區(qū)分細(xì)微差別召回的通常是語義相關(guān)但不正確的表。SQL 語義錯(cuò)誤只用 Hive 元數(shù)據(jù)缺少業(yè)務(wù)規(guī)則和數(shù)據(jù)口徑生成的 SQL 能跑但計(jì)算邏輯和結(jié)果不對(duì)。SQL 語法錯(cuò)誤大模型混用各引擎專有語法在目標(biāo)引擎上直接報(bào)錯(cuò)。模型幻覺生成表里不存在的字段、引用其他表的列名。交互割裂取數(shù)、找數(shù)、可視化幾個(gè)入口相互獨(dú)立連續(xù)分析要在入口間來回切。評(píng)測缺失評(píng)測集只有 50 多條脫離生產(chǎn)環(huán)境沒有說服力。五次關(guān)鍵躍遷從單鏈路到場景化分析整個(gè)演進(jìn)就是被這五大問題驅(qū)動(dòng)的五次躍遷。第一次躍遷Multi-Agent 加元數(shù)據(jù)漸進(jìn)式披露核心是雙層架構(gòu)。上層 Supervisor Agent 負(fù)責(zé)背景知識(shí)加載、意圖識(shí)別、任務(wù)拆解和編排調(diào)度下層專業(yè) Agent 分三個(gè)角色數(shù)據(jù)域確認(rèn) Agent、表發(fā)現(xiàn) Agent、SQL 生成 Agent。關(guān)鍵設(shè)計(jì)是在確認(rèn)數(shù)據(jù)域和發(fā)現(xiàn)相似表之后都引入用戶確認(rèn)環(huán)節(jié)兩層確認(rèn)機(jī)制保證 Agent 生成過程不走偏。配合漸進(jìn)式披露解決上下文浪費(fèi)。傳統(tǒng) RAG 一次性召回十幾張表、每張上百字段上下文能占到 100K 上下但真正有用的可能只有 1 到 3 張表還容易觸發(fā)長上下文腐化。他們的方案分三層先基于意圖和背景定位業(yè)務(wù)域從百萬級(jí)表縮到域內(nèi)數(shù)百張?jiān)僮鲇騼?nèi)表發(fā)現(xiàn)靠語義檢索加熱度排名挑出候選表交用戶確認(rèn)確認(rèn)后才展開完整字段和業(yè)務(wù)規(guī)則。一個(gè)用戶問「東南亞昨天 GMV 多少」能精準(zhǔn)定位到 marketplace_order 域再落到訂單明細(xì)表。第二次躍遷雙層個(gè)性化AI 回答千篇一律是新的痛點(diǎn)。同樣是問「GMV 為什么下跌」電商運(yùn)營關(guān)心的是 marketplace 訂單表數(shù)據(jù)財(cái)務(wù)關(guān)心的是全局匯總數(shù)據(jù)。他們引入兩層個(gè)性化一是用戶畫像從權(quán)限平臺(tái)拉取組織架構(gòu)、角色、地域、數(shù)據(jù)權(quán)限等靜態(tài)數(shù)據(jù)讓 Agent 開口之前就認(rèn)識(shí)用戶自動(dòng)傾向于推 SG 相關(guān)表和加地域過濾條件二是用戶記憶把點(diǎn)贊、點(diǎn)踩、常搜表、歷史口徑確認(rèn)等交互行為持久化跨 session 加載讓 Agent 越用越懂用戶。第三次躍遷語義模型突破準(zhǔn)確率天花板純大模型生成 SQL 有三重挑戰(zhàn)業(yè)務(wù)語義理解口徑怎么定表關(guān)聯(lián)推理數(shù)倉層級(jí)多SQL 物理實(shí)現(xiàn)分區(qū)怎么選、多方言語法方案是引入語義模型作為數(shù)據(jù)抽象層做三件事業(yè)務(wù)數(shù)據(jù)映射到物理表字段和計(jì)算邏輯預(yù)定義標(biāo)準(zhǔn)指標(biāo)、維度、過濾條件封裝復(fù)雜性對(duì)外呈現(xiàn)統(tǒng)一的寬表概念。處理同一個(gè)問題純 Text-to-SQL 要串行推斷口徑、對(duì)應(yīng)物理表、過濾條件、按什么口徑算任何一步錯(cuò)數(shù)據(jù)就錯(cuò)?;谡Z義模型只需生成一個(gè)極簡 DSL后面的 SQL 映射交給語義引擎用工程方式翻譯。最終采用混合路由簡單探索性問題走傳統(tǒng) Text-to-SQL復(fù)雜且有語義模型覆蓋的走 Text-to-DSL 鏈路。配套做了輔助語義建模 Agent輸入表結(jié)構(gòu)、線上 SQL 運(yùn)行日志、現(xiàn)有報(bào)表配置三類元數(shù)據(jù)輸出指標(biāo)推薦、維度識(shí)別、關(guān)鍵路徑發(fā)現(xiàn)、數(shù)語關(guān)系映射的建模草案人工審校后才上線并形成「建模、查詢、驗(yàn)證、優(yōu)化」四步反饋循環(huán)持續(xù)迭代。第四次躍遷復(fù)雜工程底座面向生產(chǎn)穩(wěn)定運(yùn)行工程體系分技術(shù)、評(píng)測、運(yùn)營三塊。技術(shù)部分重點(diǎn)講了兩個(gè)。文件系統(tǒng)上下文取數(shù)場景的上下文比普通 chat agent 復(fù)雜得多表元數(shù)據(jù)、語義規(guī)則、個(gè)性化數(shù)據(jù)、用戶補(bǔ)充的內(nèi)容全塞進(jìn)去必然溢出。他們把知識(shí)用文件系統(tǒng)接口按層級(jí)組織最上層只加載用戶畫像定位數(shù)據(jù)域再加載域知識(shí)確認(rèn)表后才展開詳情不需要的信息隨時(shí)從窗口 offload。中間結(jié)果也以 dataframe 形式存進(jìn)虛擬文件系統(tǒng)模型只持有路徑引用按需加載避免了多步驟分析中途結(jié)果擠爆上下文。隔離沙箱每個(gè) session 的 Agent 跑在權(quán)限隔離、資源隔離的沙箱里高危的代碼執(zhí)行、Python 執(zhí)行工具都在沙箱內(nèi)運(yùn)行防止惡意 prompt 借強(qiáng)大工具做破壞性操作。評(píng)測體系從踩坑中總結(jié)早期 QA 只做了 50 多條脫離場景的評(píng)測集沒法用。后來改為面向分析主題、用線上真實(shí)執(zhí)行成功且頻繁的 SQL 構(gòu)造評(píng)測集讓大模型反向生成自然語言問題再人工 review最終積累三四千條。結(jié)果比較放棄語法樹對(duì)比同一語義多種寫法和大模型對(duì)比復(fù)雜場景分?jǐn)?shù)差改以執(zhí)行準(zhǔn)確性為主配合時(shí)間字段規(guī)整、列一致性編輯距離、浮點(diǎn)容差比較。第五次躍遷Skill 機(jī)制實(shí)現(xiàn)場景化分析讓 Agent 自由做歸因探索時(shí)發(fā)現(xiàn)它常繞過關(guān)鍵維度下鉆直接給結(jié)論專業(yè) BI 無論對(duì)錯(cuò)都不敢用因?yàn)檫^程不可驗(yàn)證。Skill 機(jī)制在模型自主分析和定制流程間找到平衡。以歸因分析典型 Skill 為例是嚴(yán)格五步指標(biāo)趨勢判斷按國家品類渠道維度拆解計(jì)算貢獻(xiàn)度排名和交叉分析按影響因子排序找根因生成結(jié)構(gòu)化分析報(bào)告步驟不可跳過中間結(jié)果可追溯可驗(yàn)證。價(jià)值在于一次定義全員出發(fā)、過程可信、可擴(kuò)展。元數(shù)據(jù)治理這個(gè)臟活作者特意強(qiáng)調(diào)data agent 不能只關(guān)心模型和工程架構(gòu)數(shù)據(jù)質(zhì)量同樣關(guān)鍵。平臺(tái)百萬級(jí)表大量缺描述他們?cè)O(shè)計(jì)了 AI 加人工的四步治理按業(yè)務(wù)過程和數(shù)倉層級(jí)分組AI 生成描述草案依賴表名字段和業(yè)務(wù)域建模文檔業(yè)務(wù)方逐條審查采納血緣擴(kuò)散自動(dòng)為下游生成效果是 AI 生成描述直接被采納的比例 70%一張 40 列表治理時(shí)間從 30 分鐘縮到 10 分鐘人工治理 2000 張表通過血緣擴(kuò)散覆蓋了 15 萬張以上找表準(zhǔn)確率最大提升 15 個(gè)百分點(diǎn)。未來趨勢判斷作者給了幾個(gè)個(gè)人判斷harness 會(huì)是 Agent 的操作系統(tǒng)Agent 等于 LLM 加 harnessAgent-First 是說數(shù)據(jù)平臺(tái)應(yīng)該面向 Agent 設(shè)計(jì)Agent 成為人和數(shù)據(jù)交互的新界面從工具到員工演進(jìn)Agent 會(huì)獲得自主調(diào)度、Skill 自我生成與進(jìn)化能力變成可獨(dú)立接收任務(wù)、修復(fù)、迭代的勞動(dòng)力Agent 治理能力要始終伴隨落地。以上內(nèi)容由 Ai好記 轉(zhuǎn)錄整理。Ai好記是一款支持音視頻轉(zhuǎn)圖文筆記的AI知識(shí)庫工具支持B站、小紅書、抖音、小宇宙等平臺(tái)鏈接及本地音視頻文件視頻轉(zhuǎn)文字后自動(dòng)生成精華速覽、思維導(dǎo)圖和結(jié)構(gòu)化圖文筆記幫助你把幾小時(shí)的視頻內(nèi)容變成可搜索、可復(fù)習(xí)的圖文筆記。