詳細解釋
OpenAI 於 2021 年發布的代碼生成評估基準,包含 164 個手工編寫的編程問題,測試 LLM 的函數級代碼生成能力。
測試設計:
- 164 個問題:涵蓋算法、數學、字符串處理、數據結構
- 形式:函數簽名 + docstring,模型填充函數體
- 測試:每題包含多個單元測試用例
- 評分:pass@k(k 個樣本中至少一個通過所有測試的概率)
例子:
題目描述:編寫函數找出列表中的最長遞增子序列。
模型輸出:Python 函數代碼
驗證:運行測試用例,檢查正確性
當前性能(2024):
- o1/o3:90%+
- GPT-4:87%
- Claude 3.5:92%
- CodeLlama 70B:81%
- DeepSeek-Coder 33B:90%+
- 人類程序員:約 80-90%
局限與批評:
- 僅 Python:不支持其他語言(雖然有 MultiPL-E 擴展)
- 算法題:類似競賽編程,非真實軟件工程
- 短函數:平均 10 行,非系統級代碼
- 數據污染:訓練數據可能包含這些題目
改進版本:
- HumanEval+:增加測試用例,減少假陽性
- MBPP:Google 的類似基準,更多 Python 入門級問題
- SWE-bench:真實 GitHub issue 修復(更難)
這是「AI 編程能力」的標準測試—— 雖不完美,但提供了客觀可比較的指標。