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

無需OpenAI數(shù)據(jù),躋身代碼大模型榜單!UIUC發(fā)布StarCoder-15B-Instruct

人工智能 新聞
通過StarCoder2-15B生成數(shù)千個指令-響應(yīng)對,直接對StarCoder-15B基座模型進(jìn)行微調(diào),無需依賴昂貴的人工標(biāo)注數(shù)據(jù),也無需從GPT4等商業(yè)大模型中獲取數(shù)據(jù),StarCoder2-15B-Instruct成功擠進(jìn)HumanEval榜單。

在軟件技術(shù)的前沿,UIUC張令明組攜手BigCode組織的研究者,近日公布了StarCoder2-15B-Instruct代碼大模型。

這一創(chuàng)新成果在代碼生成任務(wù)取得了顯著突破,成功超越CodeLlama-70B-Instruct,登上代碼生成性能榜單之巔。

StarCoder2-15B-Instruct的獨特之處在于其純自對齊策略,整個訓(xùn)練流程公開透明,且完全自主可控。

該模型通過StarCoder2-15B生成數(shù)千個指令-響應(yīng)對,直接對StarCoder-15B基座模型進(jìn)行微調(diào),無需依賴昂貴的人工標(biāo)注數(shù)據(jù),也無需從GPT4等商業(yè)大模型中獲取數(shù)據(jù),避免了潛在的版權(quán)問題。

在HumanEval測試中,StarCoder2-15B-Instruct以72.6%的Pass@1成績脫穎而出,較CodeLlama-70B-Instruct的72.0%有所提升。

更為令人矚目的是,在LiveCodeBench數(shù)據(jù)集的評估中,這一自對齊模型的表現(xiàn)甚至超越了基于GPT-4生成數(shù)據(jù)訓(xùn)練的同類模型。這一成果證明了,通過自身分布內(nèi)的數(shù)據(jù),大模型同樣能夠有效地學(xué)習(xí)如何與人類偏好對齊,而無需依賴外部教師大模型的偏移分布。

該項目的成功實施得到了美國東北大學(xué)Arjun Guha課題組、加州大學(xué)伯克利分校、ServiceNow和Hugging Face等機構(gòu)的鼎力支持。

技術(shù)揭秘

StarCoder2-Instruct的數(shù)據(jù)生成流程主要包括三個核心步驟:

1. 種子代碼片段的采集:團(tuán)隊從The Stack v1中篩選出高質(zhì)量、多樣化的種子函數(shù),這些函數(shù)來自海量的獲得許可的源代碼語料庫。通過嚴(yán)格的過濾和篩選,確保了種子代碼的質(zhì)量和多樣性;

2. 多樣化指令的生成:基于種子函數(shù)中的不同編程概念,StarCoder2-15B-Instruct能夠創(chuàng)建出多樣化且真實的代碼指令。這些指令涵蓋了從數(shù)據(jù)反序列化到列表連接、遞歸等豐富的編程場景;

3. 高質(zhì)量響應(yīng)的生成:對于每個指令,模型采用編譯運行引導(dǎo)的自我驗證方式,確保生成的響應(yīng)是準(zhǔn)確且高質(zhì)量的。

每個步驟的具體操作如下:

精選種子代碼片段的過程

為了提升代碼模型在遵循指令方面的能力,模型需要廣泛接觸和學(xué)習(xí)不同的編程原理與實際操作。StarCoder2-15B-Instruct受到OSS-Instruct的啟發(fā),從開源代碼片段中汲取靈感,尤其是The Stack V1中那些格式規(guī)范、結(jié)構(gòu)清晰的Python種子函數(shù)。

在構(gòu)建其基礎(chǔ)數(shù)據(jù)集時,StarCoder2-15B-Instruct對The Stack V1進(jìn)行了深度挖掘,選取了所有配備文檔說明的Python函數(shù),并借助autoimport功能自動分析并推斷了這些函數(shù)所需的依賴項。

為了確保數(shù)據(jù)集的純凈性和高質(zhì)量,StarCoder2-15B-Instruct對所有選取的函數(shù)進(jìn)行了精細(xì)的過濾和篩選。

首先,通過Pyright類型檢查器進(jìn)行嚴(yán)格的類型檢查,排除了所有可能產(chǎn)生靜態(tài)錯誤的函數(shù),從而保證了數(shù)據(jù)的準(zhǔn)確性和可靠性。

接著,通過精確的字符串匹配技術(shù),識別和剔除了與評估數(shù)據(jù)集存在潛在關(guān)聯(lián)的代碼和提示,以避免數(shù)據(jù)污染。在文檔質(zhì)量方面,StarCoder2-15B-Instruct更是采用了獨特的篩選機制。

它利用自身的評估能力,通過向模型展示7個樣本提示,讓模型自行判斷每個函數(shù)的文檔質(zhì)量是否達(dá)標(biāo),從而決定是否將其納入最終的數(shù)據(jù)集。

這種基于模型自我判斷的方法,不僅提高了數(shù)據(jù)篩選的效率和準(zhǔn)確性,也確保了數(shù)據(jù)集的高質(zhì)量和一致性。

最后,為了避免數(shù)據(jù)冗余和重復(fù),StarCoder2-15B-Instruct采用了MinHash和局部敏感哈希算法,對數(shù)據(jù)集中的函數(shù)進(jìn)行了去重處理。通過設(shè)定0.5的Jaccard相似度閾值,有效去除了相似度較高的重復(fù)函數(shù),確保了數(shù)據(jù)集的獨特性和多樣性。

經(jīng)過這一系列的精細(xì)篩選和過濾,StarCoder2-15B-Instruct最終從500萬個帶有文檔的Python函數(shù)中,精選出了25萬個高質(zhì)量的函數(shù)作為其種子數(shù)據(jù)集。這一方法深受MultiPL-T數(shù)據(jù)收集流程的啟發(fā)。

多樣化指令的生成

當(dāng)StarCoder2-15B-Instruct完成了種子函數(shù)的收集后,它運用了Self-OSS-Instruct技術(shù)來創(chuàng)造多樣化的編程指令。這一技術(shù)的核心在于通過上下文學(xué)習(xí),讓StarCoder2-15B基座模型能夠自主地為給定的種子代碼片段生成相應(yīng)的指令。

為實現(xiàn)這一目標(biāo),StarCoder2-15B-Instruct精心設(shè)計了16個范例,每個范例都遵循(代碼片段,概念,指令)的結(jié)構(gòu)。指令的生成過程被細(xì)分為兩個階段:

代碼概念識別:在這一階段,StarCoder2-15B會針對每一個種子函數(shù)進(jìn)行深入分析,并生成一個包含該函數(shù)中關(guān)鍵代碼概念的列表。這些概念廣泛涵蓋了編程領(lǐng)域的基本原理和技術(shù),如模式匹配、數(shù)據(jù)類型轉(zhuǎn)換等,這些對于開發(fā)者而言具有極高的實用價值。

指令創(chuàng)建:基于識別出的代碼概念,StarCoder2-15B會進(jìn)一步生成與之對應(yīng)的編碼任務(wù)指令。這一過程旨在確保生成的指令能夠準(zhǔn)確地反映代碼片段的核心功能和要求。

通過上述流程,StarCoder2-15B-Instruct最終成功生成了高達(dá)238k個指令,極大地豐富了其訓(xùn)練數(shù)據(jù)集,并為其在編程任務(wù)中的表現(xiàn)提供了強有力的支持。

響應(yīng)的自我驗證機制

在獲取Self-OSS-Instruct生成的指令后,StarCoder2-15B-Instruct的關(guān)鍵任務(wù)是為每個指令匹配高質(zhì)量的響應(yīng)。

傳統(tǒng)上,人們傾向于依賴如GPT-4等更強大的教師模型來獲取這些響應(yīng),但這種方式不僅可能面臨版權(quán)許可的難題,而且外部模型并非總是觸手可及或準(zhǔn)確無誤。更重要的是,依賴外部模型可能引入教師與學(xué)生之間的分布差異,這可能會影響到最終結(jié)果的準(zhǔn)確性。

為了克服這些挑戰(zhàn),StarCoder2-15B-Instruct引入了一種自我驗證機制。這一機制的核心思想是,讓StarCoder2-15B模型在生成自然語言響應(yīng)后,自行創(chuàng)建對應(yīng)的測試用例。這一過程類似于開發(fā)人員編寫代碼后的自測流程。

具體而言,對于每一個指令,StarCoder2-15B會生成10個包含自然語言響應(yīng)和對應(yīng)測試用例的樣本。隨后,StarCoder2-15B-Instruct會在一個沙盒環(huán)境中執(zhí)行這些測試用例,以驗證響應(yīng)的有效性。任何在執(zhí)行測試中失敗的樣本都會被過濾掉。

經(jīng)過這一嚴(yán)格的篩選過程,StarCoder2-15B-Instruct會從每個指令的通過測試的響應(yīng)中隨機選取一個,加入最終的SFT數(shù)據(jù)集。整個過程中,StarCoder2-15B-Instruct為238k個指令生成了總計240萬個響應(yīng)樣本(每個指令10個樣本)。在采用0.7的采樣策略后,有50萬個樣本成功通過了執(zhí)行測試。

為了確保數(shù)據(jù)集的多樣性和質(zhì)量,StarCoder2-15B-Instruct還進(jìn)行了去重處理。最終,剩下5萬個指令,每個指令都配有一個隨機選取的、經(jīng)過測試驗證的高質(zhì)量響應(yīng)。這些響應(yīng)構(gòu)成了StarCoder2-15B-Instruct最終的SFT數(shù)據(jù)集,為模型的后續(xù)訓(xùn)練和應(yīng)用提供了堅實的基礎(chǔ)。

StarCoder2-15B-Instruct的卓越表現(xiàn)與全面評估

在備受矚目的EvalPlus基準(zhǔn)測試中,StarCoder2-15B-Instruct憑借其規(guī)?;瘍?yōu)勢,成功脫穎而出,成為表現(xiàn)最出色的自主可控大型模型。

它不僅超越了規(guī)模更大的Grok-1 Command-R+和DBRX,還與Snowflake Arctic 480B和Mixtral-8x22B-Instruct等業(yè)界翹楚性能相當(dāng)。

值得一提的是,StarCoder2-15B-Instruct是首個在HumanEval基準(zhǔn)上達(dá)到70+得分的自主代碼大模型,其訓(xùn)練過程完全透明,數(shù)據(jù)和方法的使用均符合法律法規(guī)。

在自主可控代碼大模型領(lǐng)域,StarCoder2-15B-Instruct顯著超越了之前的佼佼者OctoCoder,證明了其在該領(lǐng)域的領(lǐng)先地位。

即便與擁有限制性許可的大型強力模型如Gemini Pro和Mistral Large相比,StarCoder2-15B-Instruct依然展現(xiàn)出卓越的性能,并與CodeLlama-70B-Instruct平分秋色。更令人矚目的是,StarCoder2-15B-Instruct完全依賴于自生成數(shù)據(jù)進(jìn)行訓(xùn)練,其性能卻能與基于GPT-3.5/4數(shù)據(jù)微調(diào)的OpenCodeInterpreter-SC2-15B相媲美。

除了EvalPlus基準(zhǔn)測試,StarCoder2-15B-Instruct在LiveCodeBench和DS-1000等評估平臺上也展現(xiàn)出了強大的實力。

LiveCodeBench專注于評估2023年9月1日之后出現(xiàn)的編碼挑戰(zhàn),而StarCoder2-15B-Instruct在該基準(zhǔn)測試中取得了最優(yōu)成績,并且始終領(lǐng)先于使用GPT-4數(shù)據(jù)進(jìn)行微調(diào)的OpenCodeInterpreter-SC2-15B

盡管DS-1000專注于數(shù)據(jù)科學(xué)任務(wù),StarCoder2-15B-Instruct在訓(xùn)練數(shù)據(jù)中涉及的數(shù)據(jù)科學(xué)問題相對較少,但其在該基準(zhǔn)測試中的表現(xiàn)依然強勁,顯示出廣泛的適應(yīng)性和競爭力。

StarCoder2-15B-Instruct-v0.1的突破與啟示

StarCoder2-15B-Instruct-v0.1的發(fā)布,標(biāo)志著研究者們在代碼模型自我調(diào)優(yōu)領(lǐng)域邁出了重要一步。這款模型的成功實踐,打破了以往必須依賴如GPT-4等強大外部教師模型的限制,展示了通過自我調(diào)優(yōu)同樣能夠構(gòu)建出性能卓越的代碼模型。

StarCoder2-15B-Instruct-v0.1的核心在于其自我對齊策略在代碼學(xué)習(xí)領(lǐng)域的成功應(yīng)用。這一策略不僅提升了模型的性能,更重要的是,它賦予了模型更高的透明度和可解釋性。這一點與Snowflake-Arctic、Grok-1、Mixtral-8x22B、DBRX和CommandR+等其他大型模型形成了鮮明對比,這些模型雖然強大,但往往因缺乏透明度而限制了其應(yīng)用范圍和可信賴度。

更令人欣喜的是,StarCoder2-15B-Instruct-v0.1已經(jīng)將其數(shù)據(jù)集和整個訓(xùn)練流程——包括數(shù)據(jù)收集和訓(xùn)練過程——完全開源。這一舉措不僅彰顯了研究者的開放精神,也為未來該領(lǐng)域的研究和發(fā)展奠定了堅實的基礎(chǔ)。

有理由相信,StarCoder2-15B-Instruct-v0.1的成功實踐將激發(fā)更多研究者投入到代碼模型自我調(diào)優(yōu)領(lǐng)域的研究中,推動該領(lǐng)域的技術(shù)進(jìn)步和應(yīng)用拓展。同時,也期待這一領(lǐng)域的更多創(chuàng)新成果能夠不斷涌現(xiàn),為人類社會的智能化發(fā)展注入新的動力。

作者簡介

UIUC的張令明老師是一位在軟件工程、程序語言和機器學(xué)習(xí)交叉領(lǐng)域具有深厚造詣的學(xué)者。他領(lǐng)導(dǎo)的課題組長期致力于基于AI大模型的自動軟件合成、修復(fù)和驗證研究,以及機器學(xué)習(xí)系統(tǒng)的可靠性提升。

近期,團(tuán)隊發(fā)布了多個創(chuàng)新性的代碼大模型和測試基準(zhǔn)數(shù)據(jù)集,并率先提出了一系列基于大模型的軟件測試和修復(fù)技術(shù)。同時,在多個真實軟件系統(tǒng)中成功挖掘出上千個新缺陷和漏洞,為提升軟件質(zhì)量做出了顯著貢獻(xiàn)。

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

2024-03-29 12:43:15

精度代碼模型

2024-10-24 14:30:00

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

2023-12-19 13:18:36

AI數(shù)據(jù)

2023-06-07 12:28:47

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

2024-01-16 12:10:33

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

2025-05-16 09:10:00

2025-04-22 09:06:00

強化學(xué)習(xí)工具AI

2024-09-13 10:06:21

2024-01-29 09:40:00

AI訓(xùn)練

2023-05-16 20:47:38

2024-02-29 16:35:01

StarCoder2大型語言模型人工智能

2010-01-15 09:43:20

IT企業(yè)騰訊

2023-05-17 10:05:56

2024-11-13 10:05:00

2023-04-27 09:41:47

2024-05-10 12:58:08

點贊
收藏

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