CodeQwen1.5 版本說明
TL;DR
Qwen 推出了 CodeQwen1.5-7B,一款基於 Qwen1.5 系列的專門化 70 億參數開源程式碼大型語言模型。它支援 92 種程式語言,提供 64K 令牌的上下文視窗,於程式碼生成、除錯與 SQL 任務上展現出與更大型專有模型競爭的表現。
基本程式碼生成能力
CodeQwen1.5-7B 縮小了開源模型與 GPT-4 等專有系統在基本程式碼生成上的差距。在 HumanEval 與 MBPP 評估中,該模型優於其他 70 億規模的開源模型,如 CodeLlama-Base、StarCoder2 與 DeepSeek-Coder-Base。
效能基準測試
根據提供的數據,CodeQwen1.5-7B(Base)在 HumanEval 0-shot 中取得 51.8 分,在 MBPP 0-shot 中取得 72.2 分。Chat 版本 CodeQwen1.5-Chat 在 HumanEval 0-shot 中達到 83.5 分,MBPP 0-shot 中達到 77.7 分,於多項指標上超過 DeepSeek-Coder-Instruct(6.7B)。
除 Python 外,該模型在 MultiPL-E 評估的八種主流語言上亦表現優異:Python、C++、Java、PHP、TypeScript、C#、Bash 與 JavaScript。
長上下文理解與生成
CodeQwen1.5 支援最高 64K 令牌的輸入長度,此能力透過在預訓練階段加入倉庫層級的長序列程式碼資料而開發。這使模型能更好地理解倉庫層級的程式碼,並可作為程式碼代理。
長上下文評估
- Perplexity (PPL): 在 GitHub Trending 倉庫(截至 2024-03-28)上測試,顯示 CodeQwen1.5 隨著序列長度增加,其困惑度呈下降趨勢。
- Needle in the Code: 在一項合成任務中,將自訂函式插入 Megatron 程式碼庫,模型成功在 64k 長度範圍內複製該函式。
- SWE Bench: 在此實務軟體開發基準測試中,CodeQwen1.5 獲得 0.89 分,Qwen 團隊指出此分數超過 ChatGPT-3.5。
程式碼編輯與除錯
CodeQwen1.5 設計用於處理超越簡單生成的程式碼修改任務。透過 CodeEditorBench 套件,模型在除錯、翻譯、語言切換與程式碼潤飾四個面向進行評估。結果顯示,CodeQwen1.5 在 70 億參數規模的模型中達到最先進(SOTA)的表現。
文本轉 SQL 能力
CodeQwen1.5-Chat 在將自然語言轉換為 SQL 查詢方面展現高度熟練,使其成為非程式設計師與資料庫互動的工具。
在 Spider 與 Bird 基準測試中使用 DIN‑SQL 提示方法,CodeQwen1.5-Chat 獲得第二名,接近 GPT‑4。Qwen 團隊將此表現歸因於在預訓練與微調階段使用可擴展、可驗證且多樣的合成資料。
技術規格
- Model Size: 70 億參數。
- Pre‑training Data: 約 3 兆個與程式碼相關的令牌。
- Language Support: 92 種程式語言。
- Context Window: 64K 令牌。
Sources
- OriginalCode with CodeQwen1.5