論文閱讀_代碼生成模型_CodeLlama

英文名稱: Code Llama: Open Foundation Models for Code
中文名稱: Code Llama:開(kāi)放基礎(chǔ)代碼模型
鏈接: https://arxiv.org/abs/2308.12950
代碼: https://github.com/facebookresearch/codellama
作者: Baptiste Rozière, Jonas Gehring, Fabian Gloeckle, Sten Sootla, Itai Gat, Xiaoqing Ellen Tan, Yossi Adi, Jingyu Liu, Romain Sauvestre, Tal Remez, Jérémy Rapin, Artyom Kozhevnikov, Ivan Evtimov, Joanna Bitton, Manish Bhatt, Cristian Canton Ferrer, Aaron Grattafiori, Wenhan Xiong, Alexandre Défossez, Jade Copet, Faisal Azhar, Hugo Touvron, Louis Martin, Nicolas Usunier, Thomas Scialom, Gabriel Synnaeve
機(jī)構(gòu): Meta AI
日期: 2023-08-24
引用次數(shù): 319

1 讀后感

Code Llama 是一個(gè)基于 llama2 模型進(jìn)行訓(xùn)練得到的代碼生成大模型。又針對(duì)代碼填充、長(zhǎng)上下文等特殊條件以及人類通常用法進(jìn)行了優(yōu)化,因此它集成了 llama2 對(duì)自然語(yǔ)言的理解,并針對(duì)代碼生成場(chǎng)景進(jìn)行了優(yōu)化汰蓉。

除了調(diào)用推理,我們一般主要利用微調(diào)模型來(lái)進(jìn)行改進(jìn)模型效果逸尖,因此選擇一個(gè)好的基礎(chǔ)模型作為工作基礎(chǔ)非常重要古沥,Code Llama 是當(dāng)前代碼生成模型中比較推薦的基礎(chǔ)模型。

論文結(jié)構(gòu)針對(duì)幾項(xiàng)主要貢獻(xiàn)進(jìn)行了層層深入的討論娇跟。在整理時(shí)岩齿,我把實(shí)現(xiàn)部分歸納了一下,把同一主題的內(nèi)容放在一起了苞俘。

2 摘要

目標(biāo):發(fā)布 Code Llama 代碼模型系列盹沈,基于 Llama 2 開(kāi)發(fā),提供了在開(kāi)放模型中最先進(jìn)的性能吃谣、填充能力乞封、支持大型輸入上下文,并具有 zero-shot 指令跟隨能力岗憋,用于編程任務(wù)肃晚。

方法:提供多個(gè)版本以覆蓋各種應(yīng)用場(chǎng)景:基礎(chǔ)模型(Code Llama)、Python 專業(yè)化模型(Code Llama-Python)和指令引導(dǎo)模型(Code Llama-Instruct)仔戈,分別具有 7B关串、13B 和 34B 參數(shù)。

結(jié)論:這些模型在性能监徘、填充能力晋修、支持大型輸入上下文以及 zero-shot 指令跟隨能力方面表現(xiàn)出色。

3 引言

主要貢獻(xiàn)

  • 基于 llama2 訓(xùn)練:所有 Code Llama 模型都使用 Llama2 模型權(quán)重進(jìn)行初始化凰盔,實(shí)驗(yàn)證明它優(yōu)于僅在代碼上訓(xùn)練的相同架構(gòu)墓卦。
  • 代碼填充:生成代碼時(shí),需要考慮整個(gè)周圍上下文的同時(shí)填充代碼的缺失部分户敬,因此通過(guò)多任務(wù)目標(biāo)訓(xùn)練模型落剪,包括自回歸和因果填充預(yù)測(cè)。
  • 長(zhǎng)上下文:將最大上下文長(zhǎng)度從 4,096 token 擴(kuò)展到 100,000 個(gè) token尿庐。
  • 指令微調(diào):在專有 Instruct 數(shù)據(jù)的混合上進(jìn)行了進(jìn)一步微調(diào)著榴,以提高安全性和實(shí)用性。

4 Code Llama 實(shí)現(xiàn)

4.1 發(fā)布了三個(gè)版本

  • Code Llama:基礎(chǔ)模型屁倔。
  • Code Llama - Python:用于 Python 版本。
  • Code Llama - Instruct:引導(dǎo)微調(diào)版本暮胧。

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

從 Llama 2 的 7B锐借、13B 和 34B 版本開(kāi)始问麸,在初始階段使用 500B token 訓(xùn)練 Code Llama。

4.3 代碼填充

代碼填充的目標(biāo)是在給定周圍上下文情況下預(yù)測(cè)程序缺失部分钞翔。

使用因果掩蔽的概念來(lái)訓(xùn)練填充模型严卖。將字符級(jí)別的訓(xùn)練文檔拆分為前綴、中間部分和后綴布轿,拆分位置獨(dú)立于文檔長(zhǎng)度上的均勻分布進(jìn)行采樣哮笆。

4.4 長(zhǎng)上下文微調(diào)

提出了一個(gè)專用的長(zhǎng)上下文微調(diào)(LCFT)階段,模型支持 16,384 個(gè) token 的序列汰扭,高于 Llama 2 和初始代碼訓(xùn)練階段使用的 4,096 個(gè) token稠肘。對(duì)旋轉(zhuǎn)位置嵌入進(jìn)行優(yōu)化,將基周期從 10,000 增加到 1,000,000 以進(jìn)行微調(diào)萝毛。使模型支持處理更大的序列项阴,并減少短距離注意力的傾向。

4.5 指令微調(diào)

使用三種不同類型的數(shù)據(jù)訓(xùn)練:

4.5.1 專有數(shù)據(jù)集

使用 Llama 2 論文中的指令調(diào)整數(shù)據(jù)集 “RLHF V5” 微調(diào)模型笆包,通過(guò)人類反饋和人類反饋?zhàn)⑨尩膹?qiáng)化學(xué)習(xí)的幾個(gè)階段收集环揽,它結(jié)合了數(shù)以千計(jì)的監(jiān)督微調(diào)示例,每個(gè)示例都包含用戶和工具之間的多輪對(duì)話庵佣。

4.5.2 自我指導(dǎo)

專有數(shù)據(jù)集包含幾個(gè)與代碼相關(guān)的任務(wù)示例歉胶。

使用執(zhí)行反饋來(lái)選擇數(shù)據(jù)來(lái)訓(xùn)練我們的指令模型,而不是人工反饋巴粪。我們按照以下方法構(gòu)建自學(xué)數(shù)據(jù)集通今,得到約 14,000 個(gè)問(wèn)題 - 測(cè)試 - 解決方案三元組。

  1. 通過(guò)提示生成 62,000 個(gè)訪談式編程問(wèn)題 Llama 2 70B验毡。詳見(jiàn)附錄中圖 -9衡创。
  2. 通過(guò)刪除完全重復(fù)的問(wèn)題來(lái)消除重復(fù)問(wèn)題集,從而產(chǎn)生約 52,000 個(gè)問(wèn)題晶通。
  3. 對(duì)于每個(gè)問(wèn)題:
    • 通過(guò)提示 Code Llama 7B 生成單元測(cè)試(圖 10 中包含提示)璃氢。
    • 通過(guò)提示 Code Llama 7B 生成 10 個(gè) Python 解決方案(圖 11)。
    • 對(duì)十個(gè)解決方案運(yùn)行單元測(cè)試狮辽。將通過(guò)測(cè)試的第一個(gè)解決方案(及其相應(yīng)的問(wèn)題和測(cè)試)添加到自指導(dǎo)數(shù)據(jù)集一也。

我們使用 Code Llama 7B 來(lái)生成測(cè)試和 Python 解決方案,因?yàn)樽髡甙l(fā)現(xiàn)喉脖,在相同的計(jì)算預(yù)算下椰苟,它比使用 34B 模型為每個(gè)問(wèn)題生成更少的解決方案更有效。

4.5.3 排演

為了防止模型在一般編碼和語(yǔ)言理解能力上倒退树叽,Code Llama - Instruct 還使用來(lái)自代碼數(shù)據(jù)集(6%)和自然語(yǔ)言數(shù)據(jù)集(2%)的一小部分?jǐn)?shù)據(jù)進(jìn)行訓(xùn)練舆蝴。

4.6 訓(xùn)練方法

具體參數(shù)請(qǐng)見(jiàn)論文原文:Training details 部分。

4.7 結(jié)果

主實(shí)驗(yàn)結(jié)果如下,后面還有一些消融實(shí)驗(yàn)洁仗,用于展示文中幾種優(yōu)化的具體效果层皱。

5 相關(guān)工作

相關(guān)工作中列出了其它主流的代碼生成工具,也可以看一下赠潦。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末叫胖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子她奥,更是在濱河造成了極大的恐慌瓮增,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哩俭,死亡現(xiàn)場(chǎng)離奇詭異绷跑,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)携茂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門你踩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人讳苦,你說(shuō)我怎么就攤上這事带膜。” “怎么了鸳谜?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵膝藕,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我咐扭,道長(zhǎng)芭挽,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任蝗肪,我火速辦了婚禮袜爪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘薛闪。我一直安慰自己辛馆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布豁延。 她就那樣靜靜地躺著昙篙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诱咏。 梳的紋絲不亂的頭發(fā)上苔可,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天绰播,我揣著相機(jī)與錄音峻贮,去河邊找鬼迂卢。 笑死凭需,一個(gè)胖子當(dāng)著我的面吹牛陪蜻,可吹牛的內(nèi)容都是我干的豫领。 我是一名探鬼主播址愿,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼谭企,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了埃仪?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤陕赃,失蹤者是張志新(化名)和其女友劉穎卵蛉,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體么库,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡傻丝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了诉儒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片葡缰。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖忱反,靈堂內(nèi)的尸體忽然破棺而出泛释,到底是詐尸還是另有隱情,我是刑警寧澤温算,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布怜校,位于F島的核電站,受9級(jí)特大地震影響注竿,放射性物質(zhì)發(fā)生泄漏茄茁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一巩割、第九天 我趴在偏房一處隱蔽的房頂上張望裙顽。 院中可真熱鬧,春花似錦宣谈、人聲如沸愈犹。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)甘萧。三九已至,卻和暖如春梆掸,著一層夾襖步出監(jiān)牢的瞬間扬卷,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工酸钦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留怪得,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像徒恋,于是被迫代替她去往敵國(guó)和親蚕断。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容