首頁 >科技週邊 >人工智慧 >Code Llama代碼能力飆升,微調版HumanEval得分超越GPT-4,一天發布

Code Llama代碼能力飆升,微調版HumanEval得分超越GPT-4,一天發布

WBOY
WBOY轉載
2023-08-26 21:01:111160瀏覽
昨天,Meta 開源專攻程式碼產生的基礎模型 Code Llama,可免費用於研究以及商用目的。

Code Llama 系列模型有三個參數版本,參數量分別為 7B、13B 和 34B。並且支援多種程式語言,包括 Python、C 、Java、PHP、Typescript (Javascript)、C# 和 Bash。

Meta 提供的Code Llama 版本包含:
  • 程式碼Llama,基礎程式碼模型;


Code Llama代码能力飙升,微调版HumanEval得分超越GPT-4,一天发布

#程式碼羊- Python,Python 微調版本;
程式碼Llama-Instruct,自然語言指令微調版
就其效果來說,Code Llama 的不同版本在HumanEval 和MBPP 資料集上的一次生成通過率(pass@1)都超越GPT-3.5。

Code Llama代码能力飙升,微调版HumanEval得分超越GPT-4,一天发布

此外,Code Llama 的「Unnatural」34B 版本在 HumanEval 資料集上的 pass@1 接近了 GPT-4(62.2% vs 67.0%)。不過 Meta 並沒有發布這個版本,但透過一小部分高品質編碼資料的訓練實現了明顯的效果改進。

Code Llama代码能力飙升,微调版HumanEval得分超越GPT-4,一天发布

圖源:https://ai.meta.com/research/publications/code-llama-open-foundation-models-for-code/
  • 一天剛過,就有研究者向GPT-4 發起了挑戰。他們來自 Phind(一個組織,旨在建構一款為開發人員而生的AI 搜尋引擎),該研究以
    微調的 Code Llama-34B 在 HumanEval 評估中擊敗了 GPT-4
  • Phind 共同創辦人 Michael Royzen 表示:「這只是一個早期實驗,旨在重現(並超越)Meta 論文中的「Unnatural Code Llama」結果。未來,我們將擁有不同 CodeLlama 模型的專家組合,我認為這些模型在現實世界的工作流程中將具有競爭力。 」

兩個模型都已開源:
研究者在Huggingface 上發布了這兩個模型,大家可以前去查看。

Phind-CodeLlama-34B-v1:https://huggingface.co/Phind/Phind-CodeLlama-34B-v1

Phind -CodeLlama-34B-Python-v1:https://huggingface.co/Phind/Phind-CodeLlama-34B-Python-v1

#接下來我們看看這項研究如何實現的。

微調 Code Llama-34B 擊敗 GPT-4

Code Llama代码能力飙升,微调版HumanEval得分超越GPT-4,一天发布我們先看結果。這項研究以 Phind 內部資料集對 Code Llama-34B 和 Code Llama-34B-Python 進行了微調,分別得到兩個模型 Phind-CodeLlama-34B-v1 以及 Phind-CodeLlama-34B-Python-v1。


新得到的兩個模型在 HumanEval 上分別實現了 67.6% 和 69.5% pass@1。

Code Llama代码能力飙升,微调版HumanEval得分超越GPT-4,一天发布為比較,CodeLlama-34B pass@1 為 48.8%;CodeLlama-34B-Python pass@1 為 53.7%。

############而 GPT-4 在 HumanEval 上 pass@1 為 67%(OpenAI 在今年 3 月發布的「GPT-4 Technical Report」中公佈的數據)。 ############圖片來源:https://ai.meta.com/blog/code-llama-large-language-model-coding/########### ###################圖源:https://cdn.openai.com/papers/gpt-4.pdf######
談到微調,自然少不了資料集,該研究在包含約 8 萬個高品質程式設計問題和解決方案的專有資料集上對 Code Llama-34B 和 Code Llama-34B-Python 進行了微調。

該資料集沒有採用程式碼補全範例,而是採用指令 - 答案對,這與 HumanEval 資料結構不同。之後研究對 Phind 模型進行了兩個 epoch 的訓練,總共約有 16 萬個範例。研究者表示,訓練中沒有使用 LoRA 技術,而是採用了在地微調。

此外,研究還採用了DeepSpeed ZeRO 3 和Flash Attention 2 技術,他們在32 個A100-80GB GPU 上、耗時三個小時,訓練完這些模型,序列長度為4096 個token。

此外,研究也將 OpenAI 的去污染(decontamination)方法應用於資料集,使模型結果更加有效。

眾所周知,即使是非常強大的GPT-4,也會面臨資料污染的困境,通俗一點的講就是訓練好的模型可能已經接受評估資料的訓練。

這個問題對LLM 非常棘手,舉例來說,在評估一個模型性能的過程中,為了進行科學可信的評估,研究者必須檢查用於評估的問題是否在模型的訓練資料中。如果是的話,模型可以記住這些問題,在評估模型時,顯然會在這些特定問題上表現得更好。

這就像一個人在考試之前就已經知道考試問題了。

為了解決這個問題,OpenAI 在公開的 GPT-4 技術文件《 GPT-4 Technical Report 》中披露了有關 GPT-4 是如何評估資料污染的。他們公開了量化和評估這種數據污染的策略。

具體而言,OpenAI 使用子字串匹配來測量評估資料集和預訓練資料之間的交叉污染。評估和訓練資料都是透過刪除所有空格和符號,只保留字元(包括數字)來處理的。

對於每個評估範例,OpenAI 隨機選擇三個 50 個字符的子字串(如果少於 50 個字符,則使用整個範例)。如果三個採樣的評估子字串中的任何一個是處理後的訓練樣例的子字串,則確定匹配。

這將產生一個受污染範例的列表,OpenAI 丟棄這些並重新運行以獲得未受污染的分數。但這種過濾方法有一些局限性,子串匹配可能導致假陰性(如果評估和訓練資料之間有微小差異)以及假陽性。因而,OpenAI 只使用評估範例中的部分信息,只利用問題、上下文或等效數據,而忽略答案、回應或等效數據。在某些情況下,多項選擇選項也被排除在外。這些排除可能導致假陽性增加。 

關於這部分內容,有興趣的讀者可以參考論文了解更多。

論文網址:https://cdn.openai.com/papers/gpt-4.pdf

不過,Phind 在標GPT-4 時所使用的HumanEval 分數上存在一些爭議。有人說,GPT-4 的最新測分數已經達到 85%了。但 Phind 回覆說,得出這個分數的相關研究並沒有進行污染方面的研究,無法確定 GPT-4 在接受新一輪測試時是否看到過 HumanEval 的測試數據。再考慮到最近一些關於「GPT-4 變笨」的研究,所以用原始技術報告中的數據更為穩健。

Code Llama代码能力飙升,微调版HumanEval得分超越GPT-4,一天发布

不過,考慮到大模型評測的複雜性,這些評量結果能否反映出模型的真實能力依然是一個有爭議的問題。大家可以下載模型後自行體驗。

重寫內容如下:參考連結:

需要改寫的內容是:https://benjaminmarie.com/the-decontaminated-evaluation- of-gpt-4/

需要重寫的內容是:https://www.phind.com/blog/code-llama-beats-gpt4

以上是Code Llama代碼能力飆升,微調版HumanEval得分超越GPT-4,一天發布的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jiqizhixin.com。如有侵權,請聯絡admin@php.cn刪除