自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

編碼碾壓ChatGPT!UIUC清華聯(lián)手發(fā)布7B參數(shù)Magicoder,代碼數(shù)據(jù)權(quán)重全開源

人工智能 新聞
全新代碼大模型Magicoder,不到7B參數(shù),就能在代碼生成領(lǐng)域與頂級代碼模型不相上下。

開源「代碼大模型」來了!

UIUC清華團隊的研究人員發(fā)布了Magicoder,不到7B參數(shù),就能在代碼生成領(lǐng)域與頂級代碼模型不相上下。

值得一提的是,Magicoder的代碼、權(quán)重和數(shù)據(jù),毫無保留完全開源。

論文地址:https://arxiv.org/abs/2312.02120

Magicoder依靠的OSS-INSTRUCT的方法,是通過對現(xiàn)有頂級代碼模型(例如ChatGPT)的提示,加上網(wǎng)絡(luò)上的種子代碼片段,來生成的代碼。

這可真是取之于大模型,用之于大模型;就有網(wǎng)友轉(zhuǎn)發(fā)說道:通過這些結(jié)果,看到了提高用于LLMs的合成數(shù)據(jù)的潛力也是一個非常有趣的領(lǐng)域。

話不多說,那就讓我們來具體了解一下Magicoder的來歷吧!

代碼生成的發(fā)展史

代碼生成(Code Generation),也叫程序合成(Program Synthesis),近幾十年來,一直都是學(xué)術(shù)界的一塊「硬骨頭」,在此領(lǐng)域進行過的許多嘗試,例如基于抽象的合成和基于示例的編程,都沒有取得很好的效果。

直到最近,使用在代碼上訓(xùn)練的大型語言模型取得了顯著的突破,被廣泛應(yīng)用于輔助實際軟件開發(fā)。

最初,諸如GPT-3.5 Turbo和GPT-4之類的閉源模型主導(dǎo)了各種代碼生成基準和排行榜。

為了推動開源LLM在代碼生成領(lǐng)域的應(yīng)用,SELF-INSTRUCT方法被開發(fā)出來,通過使用強大的LLM生成合成的編碼指令,并利用這些指令對較弱的學(xué)生模型進行微調(diào),以從強大的教師模型中提取知識。

然而,SELF-INSTRUCT在提高LLM的指令遵循能力時,仍然依賴于狹窄范圍的預(yù)定義任務(wù)或啟發(fā)式方法。

為了解決這一問題,UIUC和清華的研究人員提出了Magicoder,其中采用的OSS-INSTRUCT方法,旨在減輕LLM固有的偏見,通過直接學(xué)習(xí)開源代碼釋放其創(chuàng)造高質(zhì)量和創(chuàng)意編碼指令的潛力。

OSS-INSTRUCT通過從開源中搜集的隨機代碼片段獲得靈感,自動生成新的編碼問題。借助于不同的種子代碼片段,OSS-INSTRUCT能夠直接產(chǎn)生多樣、真實和可控的編碼指令數(shù)據(jù)。

如下圖所示,在這個例子中,LLM從兩個不同函數(shù)的不完整代碼片段中獲取靈感,成功地將它們關(guān)聯(lián)起來,并構(gòu)建出一個現(xiàn)實的機器學(xué)習(xí)問題。

由于OSS-INSTRUCT與現(xiàn)有的數(shù)據(jù)生成方法是正交的,OSS-INSTRUCT可以被同時結(jié)合使用,進一步推動模型在編碼任務(wù)中的能力。

為什么OSS-INSTRUCT如此神奇?

OSS-INSTRUCT的工作方式是通過對LLM(例如ChatGPT)進行提示,然后根據(jù)從互聯(lián)網(wǎng)搜集的一些種子代碼片段(例如來自GitHub)生成編程問題及其解決方案。

一方面,種子片段提供了生成的可控性;

另一方面,OSS-INSTRUCT加強了LLM創(chuàng)建編程問題的多樣化,更符合真實的編程場景。

我們可以從以下幾個指標中一探究竟:

1. 類別平衡

如下圖所示,通過計算OSS-INSTRUCT中每個樣本的嵌入與這10個類別之間的余弦相似性,可以看出其在不同類別之間表現(xiàn)出了多樣性和平衡。

2. 長度分布

下圖展示生成問題和解決方案的長度分布,良好的平衡性讓OSS-INSTRUCT更貼合實際應(yīng)用場景。

3. 與HumanEval的相似性計算

下圖展示了與HumanEval樣本的余弦相似性。

可以看出,OSS--INSTRUCT在所有研究的數(shù)據(jù)生成技術(shù)中表現(xiàn)出最低的平均相似度,這說明OSS--INSTRUCT生成的數(shù)據(jù)是最富有多樣性的。

但是,既然OSS-INSTRUCT獲取到的種子片段來自于開源代碼,為什么不直接在這些開源代碼上進行微調(diào)呢?

為了回答這個問題,研究人員遵循CodeSearchNet,使用基礎(chǔ)的CODELLAMA-PYTHON-7B對配對數(shù)據(jù)進行了2個時期的微調(diào),遵循相同訓(xùn)練設(shè)置。

對比結(jié)果如下表,在75,000個配對注釋-函數(shù)數(shù)據(jù)上,微調(diào)甚至使基礎(chǔ)模型惡化,而OSS-INSTRUCT有助于引入實質(zhì)性的提升。

研究人員推測,這種惡化可能是由這些配對數(shù)據(jù)固有的大量噪聲和不一致性導(dǎo)致的。

這進一步表明,數(shù)據(jù)的真實性對于代碼指令調(diào)整至關(guān)重要,而非格式。

該結(jié)果還凸顯了OSS-INSTRUCT的優(yōu)越性,可以將這些松散相關(guān)的代碼片段轉(zhuǎn)化為語義一致的指令調(diào)整數(shù)據(jù)。

Magicoder表現(xiàn)評估

研究團隊首先構(gòu)建了使用OSS-INSTRUCT進行訓(xùn)練的Magicoder系列,同時進一步組合使用OSS-INSTRUCT和Evol--INSTRUCT構(gòu)建了MagicoderS系列,并在兩個系列上都進行了測試。

代碼生成基準使用的是HumanEval和MBPP,這是目前兩個最廣泛使用的基準。這些基準中的每個任務(wù)都包括一個任務(wù)描述(例如docstring)作為提示,然后讓LLMs生成相應(yīng)的代碼。其正確性由少量測試用例進行檢查。

為了更嚴格的評估,研究人員還使用了由EvalPlus框架支持的HumanEval+和MBPP+以獲取更多的測試。

值得注意的是,MagicoderS-CL和MagicoderS-DS在HumanEval+上的表現(xiàn)都優(yōu)于只有7B參數(shù)的ChatGPT。

讓我們具體看下Magicoder的表現(xiàn):

1. Python語言

我們首先可以觀察到Magicoder-CL相在HumanEval和HumanEval+上相對于CODELLAMA-PYTHON-34B有了實質(zhì)性的改進。

MagicoderS-CL在HumanEval+上優(yōu)于ChatGPT和所有其他開源模型。

此外,盡管在HumanEval上得分略低于WizardCoder-CL-34B和ChatGPT,但在更嚴格的HumanEval+數(shù)據(jù)集上超過了它們,這表明MagicoderS-CL可能生成更穩(wěn)健的代碼。

2. 其他編程語言

在除了Python之外的語言對比中,Magicoder-CL在所有研究過的編程語言中都大幅超過了基礎(chǔ)的CODELLAMA-PYTHON-7B。

此外,MagicoderS-CL在所有編程語言上都進一步改進了Magicoder-CL,僅使用7B參數(shù)就實現(xiàn)了與WizardCoder-CL-34B相當(dāng)?shù)男阅堋?/span>

值得注意的是,Magicoder-CL僅使用非常有限的多語言數(shù)據(jù)進行訓(xùn)練,但仍然優(yōu)于其他具有相似甚至更大規(guī)模的LLMs。這意味著LLMs可以從數(shù)據(jù)中學(xué)習(xí)超出其格式的知識。

3. 數(shù)據(jù)科學(xué)庫

最后,針對7個熱門Python數(shù)據(jù)科學(xué)庫的1,000個獨特的數(shù)據(jù)科學(xué)編碼問題(DS-1000 dataset),研究人員也進行了單元測試,旨在評估LLMs在實際用例中的表現(xiàn)。

從表中可以看出,Magicoder-CL-7B已經(jīng)在所有評估的基線中表現(xiàn)出色,包括最先進的WizardCoder-SC-15B,改善了8.3個百分點。

雖然Magicoder還不夠完美,但作者認為,通過公開分享所有的數(shù)據(jù)和代碼細節(jié),會有越來越多的先進代碼模型出現(xiàn)。

讓我們也拭目以待。

責(zé)任編輯:張燕妮 來源: 新智元
相關(guān)推薦

2024-07-22 09:00:00

2024-03-18 07:01:42

2025-03-20 08:34:14

2024-07-22 07:10:00

小模型機器學(xué)習(xí)蘋果

2025-02-10 14:30:00

模型數(shù)據(jù)開源

2024-12-03 15:51:45

2025-04-14 09:27:00

2024-02-22 10:09:00

開源模型

2025-04-02 09:00:00

模型開源AI

2024-06-03 10:43:34

2025-01-06 07:40:00

2023-12-14 13:00:00

AI訓(xùn)練

2024-05-15 09:17:30

模型AI

2025-03-27 09:40:59

2023-12-17 13:07:11

訓(xùn)練數(shù)據(jù)

2023-10-13 19:58:33

Mistral7B模型

2024-08-13 15:40:00

2024-01-29 09:40:00

AI訓(xùn)練

2024-02-04 07:20:00

AI模型

2024-09-05 14:25:00

訓(xùn)練代碼
點贊
收藏

51CTO技術(shù)棧公眾號