日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

這次,華為代碼生成大模型盤古 Coder2 采用了一種類似于 RLHF(基于人類反饋的強化學習)的框架,相較前代實現了更高的一次生成通過率。

隨著大模型成為 AI 開發新范式,將大語言模型集成至編程領域、完成代碼生成與補全任務成為重要趨勢之一。業界出現了一些引人矚目的代碼大模型,比如 OpenAI 的 CodeX、谷歌 DeepMind 的 AlphaCode、HuggingFace 的 StarCoder 等等。

在國內,去年 7 月底,華為諾亞方舟實驗室語音語義實驗室聯合華為云 PaaS 技術創新實驗室推出了其代碼大模型 PanGu-Coder。與 Codex 和 AlphaCode 相比,該模型在代碼生成的一次通過率(PASS@1)指標上大幅超越同等參數規模的模型,甚至優于規模更大的模型。除了英文外,PanGu-Coder 在中文上表現出色。

PanGu-Coder 模型大小和配置。

根據對 PanGu-Coder 的相關內測表現,它不僅熟悉常見算法,而且能熟練地使用各種 API,求解高等數學問題也不在話下。

一年過去了,PanGu-Coder2 終于來了,論文已在 arXiv 上提交。此次華為云、中國科學院和北京大學的研究者聯合帶來了更強大的代碼生成大模型。

論文地址:

https://arxiv.org/pdf/2307.14936.pdf

為了增強預訓練代碼大模型的生成性能,各種各樣的方法被提出并應用,比如監督微調、指令調整、增強學習(RL)等。在本文中,針對現有基于 RL 方法所存在的問題并進一步挖掘代碼大模型的潛力,研究者提出了一種全新的 RRTF 框架,它的全稱為 Rank Responses to align Test&Teacher Feedback,成功地在代碼大模型上應用自然語言 LLM 對齊技術。

就其思路而言,RRTF 框架有別于以往的 CodeRL 和 RLTF,而是遵循了 RLHF(基于人類反饋的強化學習)的思路,使用排序響應(代替獎勵模型的絕對值)作為反饋,實現了更簡單和高效的訓練方法。

研究者將 RRTF 應用于開源的 StarCoder 15B 上,并推出了一個在所有已發布代碼大模型中實現最佳性能的 PanGu-Coder2。該模型在 OpenAI HumanEval 基準上實現了 62.20% 的 pass@1 指標,相較 PanGu-Coder 3 億參數版本的 17.07% 有了顯著提升

不僅如此,在 CoderEval 和 LeetCode 基準上的廣泛評估結果表明,PanGu-Coder2 超越了以往所有的代碼大模型。

方法概覽

RRTF 框架

研究者們提出了一個更簡單但是功能強大的框架 RRTF,它將幾種前沿技術無縫結合,包括指令調優、Evol-Instruct 方法以及強化學習。本次方法的核心理念是:利用測試信號和人類偏好共同作為反饋,對響應進行排序,從而引導模型生成更高質量的代碼。

因此,受最近大型自然語言模型與指令微調取得的進展啟發,研究者提出了這一新的訓練范式,即 RRTF 框架??蚣芨庞[如下圖所示。

圖 1:RRTF 框架概覽

RRTF 包括以下三個步驟:采樣、排序和訓練。

  • 采樣階段:通過 Evol-Instruct 生成的 prompt 對響應性進行采樣。
  • 排序階段:根據單元測試和啟發式偏好對不同來源的響應進行排序。
  • 訓練階段:使用 prompt 三元組和被選用 / 被拒絕響應的相應分數來訓練代碼大模型。

模型架構

基于具有

Multi-Query-AttentionShazeer 的 decoder-only Transformer,研究者訓練出一個 15B 參數的 PanGu-Coder2。同時利用 FlashAttention 來減少計算量和內存占用。因此,該模型的最大長度可以擴展到 8192。下表 1 顯示了該模型的詳細超參數。

訓練語料庫

由于手動收集高質量語料庫耗時耗力,研究者遵循 Evol-Instruct 技術來構建其訓練語料庫。具體來講,他們基于 Alpaca 20K 數據集,并迭代進化該數據集中的編程問題,從而獲得新的編程問題。prompt 如下圖 2 所示。

針對這些問題,研究者從不同模型中采樣了答案??偟膩碚f,他們收集了一個包含 100K 個有答案編程問題的原始語料庫,并把它稱為指令和解答方案對(instruction and solution pairs)。然后利用一些手動定義的規則在原始語料庫上進行數據預處理,將其規??s小至 68K。

更重要的,為了防止數據泄露,研究者花大力氣調查了其 68K 數據集與 HumanEval 基準之間的潛在重疊。經過細致的調查,他們確信其實驗中無數據泄露,進一步驗證了 PanGu-Coder2 的有效性。

實現細節

研究者選擇 StarCoder 15B 作為基礎模型,并以 512 的全局批大小對其進行 6 epoch 訓練。圖 3 展示了單個訓練樣本的格式。除了在 prompt 中添加一對三引號外,研究者只使用從響應中提取的代碼片段進行訓練。

實驗及評估

研究團隊進行了一系列的實驗來評估 PanGu-Coder2 的性能。

性能

該研究將 PanGu-Coder2 與現有的代碼大模型在 Python/ target=_blank class=infotextkey>Python 代碼生成方面進行了性能比較。下表 2 顯示了在 HumanEval 基準上的比較結果。

在所有閉源模型中,PanGu-Coder2 排名第二。與 PaLM-Coder 和 LaMDA 等大模型相比,PanGu-Coder2 雖然規模較小,但性能卻更好。值得注意的是,PanGu-Coder2 的表現優于 OpenAI 的 GPT-3.5,但與 GPT-4 仍有差距。

表 3 展示了貪婪解碼的比較結果。在所有基準測試中,PanGuCoder2 都取得了最好的成績。值得注意的是,PanGu-Coder2 不僅在 HumanEval 上超過了 WizardCoder 和 StarCoder,而且在 CoderEval 和 LeetCode 上也超過了這兩個模型。

表 2 和表 3 的實驗結果可以得出以下結論:

在開源模型中,PanGu-Coder2 在 HumanEval 上以 61.64% pass@1 達到了 SOTA。

盡管 PanGu-Coder2 的規模較小,但其性能卻優于 PaLM-Coder 和 LaMDA 等更大規模的模型。

PanGu-Coder2 是實驗中唯一同時在 HumanEval、CoderEval 和 LeetCode 上都達到最佳性能的模型。

如下圖 4 所示,整體準確率隨著數據集大小的增加而增加:

在訓練計算量方面,無論數據集大小如何,準確率可能會在訓練開始時急劇下降或持平。大約 2 個 epoch 后,訓練曲線變得更加穩定,準確率隨著損失的減少而持續上升。3 個 epoch 后,準確率達到最佳,而 4 個 epoch 后,準確率變得更加穩定,顯示出收斂的跡象。這表明,PanGu-Coder2 模型大約需要 3-4 個 epoch 才能完全捕捉到數據集中的知識,而之后的訓練步驟對提高模型能力的幫助可能微乎其微。

用例研究

為了對模型進行實證研究并分析未來的工作方向,該研究比較和分析了三個模型的成功和失敗案例:基礎模型 StarCoder、指令調整模型 WizardCoder 和 PanGu-Coder2 模型。下圖 5 顯示了三種模型在貪婪解碼(greedy decoding)和核采樣(nucleus sampling)方面的異同:

圖 5 還表明 PanGu-Coder2 和 WizardCoder 可以互補:雖然 PanGu-Coder2 解決了大部分問題,并且其中一些問題是 WizardCoder 無法解決的,但也有一些問題只能通過 WizardCoder 解決。此外,還有一些問題即使采樣 200 次,這三個模型也都無法解決。

該研究選擇 StarCoder、WizardCoder 和 PanGu-Coder2 生成的幾個具有代表性的示例代碼作為案例進行研究,以對 PanGu-Coder2 的優缺點進行評估。

如下圖 6 所示,PanGu-Coder2 能夠熟練地理解編程問題的邏輯,而 WizardCoder 和 StarCoder 在這方面有所欠缺。這一觀察結果表明,PanGu-Coder2 通過該研究提出的排名反饋,有效地在編程問題陳述和代碼解決方案之間建立了細致的映射。

如下圖 7 所示,在某些情況下,PanGu-Coder2 和 StarCoder 的性能差于 WizardCoder,WizardCoder 可能受益于使用大量豐富注釋代碼指令進行訓練。在某種程度上,這一觀察表明,引入注釋數據可能會在訓練過程中產生積極效果。

此外,下圖 8 給出了一個復雜的編程挑戰,StarCoder、WizardCoder 和 PanGu-Coder2 都給出了錯誤的代碼解決方案。這一觀察結果表明,目前代碼大模型在處理復雜編程要求方面仍達不到人類的熟練程度,還有一些改進的空間。

推理優化

GPU 內存消耗和推理速度是模型實際部署和使用的關鍵因素,因此該研究使用 CTranslate2 和 GPTQ 兩種量化技術來進行實驗,研究模型推理的優化策略。下表 4 展示了使用不同量化技術優化的模型的 GPU 內存消耗、推理速度和 HumanEval 性能。

參考鏈接:

https://zhuanlan.zhihu.com/p/548457445

分享到:
標簽:模型
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定