北大鄧小鐵課題組 投稿
量子位 | 公眾號 qbitai
給大模型當老師,讓它一步步按你的想法做數據分析,有多難?
結果是,連claude-3.7和gemini-2.5 pro這樣的頂尖選手,都開始「不聽話」了。
在一個全新的測試基準中,它們面對多輪、不斷演進的指令,最終的任務成功率最高僅有40%。
這項名為ida-bench的新基準,就是為了模擬真實世界中這種「邊想邊改」的分析場景而生。
它不再是給模型一道題,讓它一口氣算完;而是模擬一位真實的數據分析師,在對話中不斷給出新指令,考察agent在多輪交互中的真實能力。
可以說,專治各種「自作主張」和「一意孤行」的ai。
值得一提的是,這項工作由一支星光熠熠的團隊打造,彙集了北京大學與加州大學伯克利分校的頂尖學者,其中不乏機器學習泰斗michael i. jordan教授,仿真科學領域專家鄭澤宇 (zeyu zheng) 副教授,以及acm/ieee fellow鄧小鐵 (xiaotie deng) 教授的身影。
「不聽話」的ai,問題出在哪?
目前,我們看到的很多大模型數據分析工具,比如openai、gemini和claude的網頁應用,能力已然非常強大。
但現有的評估基準,大多側重於單輪互動:用戶給出一個明確的、預設好的任務,然後看agent能否成功執行。
可現實世界的數據分析,遠非如此。
真實的數據分析師,工作流程是迭代式、探索性的。他們會先查看數據分佈,再決定如何處理異常值;會根據初步結果,調整後續的分析策略。這些決策充滿了基於領域知識的「主觀性」,指令也是一步步演進的。
現有基準恰恰忽略了這種動態交互過程,因此無法全面評估agent在真實協作場景下的可靠性。
ida-bench:給ai一場真實的「隨堂測驗」
為了解決這一痛點,ida-bench應運而生。它旨在忠實地反映真實數據分析的主觀性和交互性特徵。
整個測試框架包含四大核心組件:
指令材料 (instruction materials):從真實的、複雜的kaggle數據分析項目(python notebooks)中提取,包含背景知識、分析目標和專家的「主觀洞察」。
模擬用戶 (simulated user):由一個大模型扮演,它會參照指令材料,像真人一樣逐步向agent下達指令,甚至會提出模糊或不斷變化的要求。
agent:即被測試的大模型,它的任務是嚴格遵循「用戶」的指令,通過編寫和執行代碼來完成任務。
沙盒環境 (sandbox environment):一個安全隔離的環境,agent可以在其中執行代碼、訪問數據,並像在jupyter中一樣保持上下文。
△圖1:(左) ida-bench的測試場景 ,(右) ida-bench中的任務軌跡示例
為了確保任務的真實性和時效性,防止數據污染,ida-bench的構建流程完全自動化。它能持續從kaggle上發佈的最新項目中提取任務,經過篩選、預處理和人工檢查後,生成新的測試用例。
△圖2: ida-bench的自動化構建流程
agent慘遭滑鐵盧,最高分僅40
在這樣一套「嚴刑拷打」下,各大模型紛紛現出原形。
初步評估結果顯示,即便是最先進的大模型,成功率也不足50%。
具體來看,gemini-2.5-pro、openai o4-mini和claude-3.7-sonnet-thinking表現位列第一梯隊,但其「基準達成率」(即結果達到或超過人類基準)也僅為40%。
而deepseek系列中,作為指令模型的deepseek-v3(24%)表現明顯優於其「思考型」模型deepseek-r1(12%),這揭示了一個核心挑戰:在遵循指令和自主推理之間取得平衡,對當前agent來說非常困難。
△表1: 各大模型在ida-bench上的表現
此外,agent們在任務中還會犯下各種低級錯誤,導致提交結果無效。其中最主要的原因是根本沒有生成提交文件,這往往源於模型的「幻覺」。
「自信」的claude vs 「謹慎」的gemini
深入分析失敗案例,研究團隊發現不同模型展現出了迥異的「性格」。
claude-3.7和deepseek-r1表現得像個「過度自信」的實習生。
它們不怎麼遵循用戶的具體指令,而是主動推進分析流程,結果常常因為「自作主張」而錯過了關鍵步驟和信息。比如,用戶建議用一種新方法改進模型,claude-3.7不等嘗試就直接否定,並提交了之前效果較差的結果。
相比之下,gemini-2.5-pro則像一個「過度謹慎」的助理。它每走一步都要反覆向用戶尋求確認,有時一個簡單的數據清洗操作能來回溝通30輪,最終因超過回合數限制而任務失敗。
幻覺或誇大:許多agent會聲稱執行了並未進行的操作,比如號稱「優化」了參數,但實際只是隨機設置;更有甚者,憑空捏造從未生成的代碼和不存在的數字結果。
格式錯誤:提交文件的列名大小寫弄反,或數據類型不對(如在二分類任務中,要求提交標籤「0」或「1」,模型卻提交了標籤為「1」的概率),都是常見的低級錯誤。
固守首次嘗試:一些agent在初期會做出一個簡單粗暴的嘗試(比如在預測任務中,模型在初期會直接用訓練集的中位數作為預測值),然後就「固執己見」,在後續交互中不再根據新指令開發更複雜的模型。
級聯錯誤:當一個代碼塊中途執行失敗時,agent有時會「假裝」它成功了,導致後續代碼塊因為引用不存在的變量而出錯,引發連鎖反應。
這些發現凸顯了當前llm agent在真正成為可靠數據分析助手之前,仍需在理解、遵循和交互能力上進行大量改進。
論文鏈接:https://arxiv.org/abs/2505.18223
項目主頁:https://github.com/lhydave/ida-bench