聞樂 發自 凹非寺
量子位 | 公眾號 QbitAI
大模型也會玩信息差了。
Qwen3在基準測試中居然學會了鉆空子。
![]()
FAIR研究員發現Qwen3在SWE-Bench Verified測試中,不按常理修bug,反而玩起了信息檢索大法。
![]()
不分析代碼邏輯,不定位漏洞根源,而是直接跑到GitHub上搜任務里的issue編號,精準扒出了前人留下的修復方案。
能說嗎,會搜代碼才是真正的程序員行為吧。而Qwen3,你是真正的程序員。
Qwen3是如何鉆空子的
要知道,SWE-Bench Verified本來是檢驗模型真刀真槍修代碼的基準,相當于編程屆的資格考試。
它的測試邏輯是這樣的:在代碼修復類任務中,它給模型的任務全是真實開源項目里的bug,比如修復某個功能異常、補全缺失的代碼模塊,核心要求是模型能讀懂現有的代碼、定位到問題在哪,最后生成能夠直接運行的解決方案。
這原本考驗的是模型從0到1解決問題的能力,但我們的Qwen3,可沒按這個劇本走。
FAIR研究團隊追蹤它的操作軌跡發現,Qwen3拿到任務后,第一步不是分析代碼文件,而是調用工具檢索GitHub的提交日志。
![]()
具體操作是:
- 先切換(cd)到/workspace/django_django_4.1這個目錄;
- 然后執行git log —oneline —grep=“33628” —all這個命令。
git log是查看Git版本控制提交歷史的命令,—oneline讓提交歷史以簡潔的一行的形式展示。
—grep用于篩選提交指定內容(在這個例子中是issue編號33628),—all則表示所有分支的提交。
最后以退出碼0表示命令成功執行。
一番操作之后,Qwen3不用動腦子寫代碼就輕松“借鑒”了以前的成功答案。(怎么不算動腦子了呢)
其實不止Qwen3,研究者發現Claude 4 Sonnet也有類似的行為。
![]()
不過,模型能成功鉆空子,當然也不全是自身的原因。
說回SWE-Bench Verified,它自身的設計就有漏洞——沒過濾未來倉庫狀態。
簡單說就是,這個測試用的是開源項目數據,所以它連帶著項目后續已經解決bug的提交記錄一起放進去了,相當于把考題和參考答案混在一起,還沒設權限。
正常來說,測試應該只給模型bug未修復時的項目狀態,讓它只看著題目解題。
但SWE-Bench Verified沒做這個篩選,導致模型能夠拿到bug已經被修復后的數據
于是,只要用任務里的issue編號當關鍵詞,就能在已解決的數據里找到現成的修復方案。
看來啊,不是只有人類知道搜答案比解問題簡單,現在大模型也知道了。(Doge)
雖然說,按正常規則,這些模型確實是在作弊,但也有網友覺得:只要能完成任務,利用規則漏洞也沒什么不行的。
![]()
所以,你覺得這種行為算作弊還是算Qwen3聰明呢?
[1]https://x.com/giffmana/status/1963327672827687316
[2]https://x.com/bwasti/status/1963288443452051582
[3]https://github.com/SWE-bench/SWE-bench/issues/465
— 完 —
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.