你好,我是郭震
程式碼生成任務,對當前的所有大模型,仍然是一大挑戰。
即使是表現最好的模型,強如Claude3.5, O1-preview,也很難保證每次生成程式碼都完全滿足提問需求。
但,這並不妨礙我們使用它,作為程式設計輔助,蹭蹭的提升效率。
尤其是,程式設計師或對程式設計感興趣的,使用AI輔助開發,使用AI找bug,已經成為日常一部分。
之前遇到開發問題,是谷歌一下,現在是AI一下。
問題來了,在如此眾多的AI大模型裡,哪些程式碼生成能力比較不錯,值得我們去用的呢?
今天這篇文章就來分析下大模型的程式碼生成能力,對此關心的老鐵,不妨閱讀 。
在推薦程式碼生成的大模型前,咱們先來看看
1)如何評估AI的程式碼生成能力
2)評估常用的資料集。
1 評估指標
評估程式碼生成能力,最重要三個指標,程式碼功能正確率,程式碼可讀性,多語言適應能力。如下圖所示:

具體說來,
1)程式碼正確率關乎是否能夠正確實現預期功能;
2)可讀性讓我們能方便理解和維護;
3)多語言轉化能力,Python轉C++,Java轉C等準確率如何。
2 基準評估資料集
瞭解這些後,下面再看下程式碼評估常用資料集。
其中最常用的就是OpenAI提出的HumanEval,最基準的測試資料集。
HumanEval 包含一組程式設計問題,每個測試sample包括:
1)問題描述
2)自動化的測試用例

大模型需根據問題描述生成 Python 程式碼,評估測試用例的透過率(如 Pass@k)。
Pass@1 可以理解為模型一次透過率
Pass@5 模型重複生成5次答案,至少有一次答案透過。
3 下一代測評資料集
HumanEval很棒,但是目前也有很多研究者發現它有不少缺陷。
HumanEval 中以演算法為導向的任務,真實世界的軟體開發通常涉及多樣化的庫和函式呼叫。
此外,LLMs 在 HumanEval 上的表現容易受到資料汙染和過擬合問題的影響,因此在評估 LLMs 的泛化能力方面,其可靠性較低。
為解決這些問題,目前還有些比較流行的下一代最新測評資料集,比如:BigCodeBench:

BigCodeBench該基準評估 LLMs 在解決實際且具有挑戰性的程式設計任務中的表現,並避免資料汙染問題。
具體而言,BigCodeBench 包含 1,140 個函式級別的任務,旨在考驗 LLMs 根據指令執行任務的能力,並透過 139 個庫中的多種函式呼叫進行工具式組合。
為了對 LLMs 進行嚴格評估,每個程式設計任務平均包含 5.6 個測試用例,且測試分支覆蓋率高達 99%。

4 程式碼生成能力榜單
基於BigCodeBench資料集,目前大模型在此資料集表現排名榜單TOP,如下截圖所示:

排名第一名的是,Athene-V2-Chat 。
很多老鐵可能沒有聽過這個模型,它是由 Nexusflow 開發的一個開源大型語言模型(LLM),擁有 720 億引數。
該模型基於阿里的 Qwen 2.5-72B-Instruct 進行訓練,採用了強化學習人類反饋(RLHF)技術,在數學和程式設計等任務中表現出色。
看到排名第一的程式碼生成大模型,使用的底座是國產大模型,可能出乎了有些人的意料!
榜單中其他大模型,幾乎被GPT4o、Claude3.5, O1-preview及不同版本霸榜。
在國產大模型中,佔據2席,分別是Qwen2.5,DeepSeek-Coder,目前程式碼生成能力位於TOP10。
1)Qwen2.5-Coder版,阿里達摩院開發的程式碼語言模型,程式碼生成能力表現優秀。
2)DeepSeek,由深度求索公司開發,浙大畢業的一位AI博士創辦的AI公司。
谷歌的Gemini也排到十名開外。
榜單10-20名,看到了Llama-3.1,Grok,DeeoSeek-Coder另一個版本,Mistral,
然後再次看到國產Qwen2.5-72B,阿里通義千問,這也是通用大模型中,程式碼表現能力最強的了。

參考文獻:
1 https://arxiv.org/pdf/2405.04520v1
2 https://paperswithcode.com/sota/code-generation-on-humaneval
3 https://huggingface.co/blog/leaderboard-bigcodebench
推薦幾個開源免費學習教程:
1 AI教程免費學習訪問入口,教程全部由我本人整理:
https://zglg.work

更多開源教程訪問網站免費學習
2 普通人瞭解AI應該做的最重要兩件事:
1)應該先從AI工具使用開始
2)應該先了解AI基礎名詞
普通人瞭解AI大忌:
1)不應該上來就學AI理論
2)不應該排斥AI,認為AI無用
基於上面,我也花費不少時間,做了一個詳細的開源教程:《普通人學AI指南》.PDF
咱們先別弄那些高深的AI理論,先玩熟AI基本概念、AI工具、自己電腦搭建AI和知識庫。

PDF 指南思維導圖
這個《普通人學AI指南》PDF,一共42頁,都是我來編寫的,完全開源,大家在我下面的公眾號回覆:AI,直接拿走。
3 如果想借助AI,更好進行程式碼程式設計練習,可以使用這個工具,免費好用:
以上就是這篇文章。如果對你有用,隨手點個贊、在看、轉發三連吧,如果以後想第一時間收到推送,也可以給我個星標⭐。謝謝你看我的文章,咱們下篇文章再見。
點選閱讀原文,從零學習AI
關鍵詞
模型
程式碼
大模型
資料集
能力