Skip to main content
QUICK REVIEW

[論文レビュー] Code Llama: Open Foundation Models for Code

Baptiste Rozière, Jonas Gehring|arXiv (Cornell University)|Aug 24, 2023
Model-Driven Software Engineering Techniques被引用数 392
ひとこと要約

Code Llama は、Llama 2 由来のオープンコード基盤モデルファミリー(7B, 13B, 34B, 70B)で、コード生成と補完、長い文脈サポート、指示追従バリアントを特徴とし、複数のコーディングベンチマークでオープンモデルの最先端パフォーマンスを達成しています。

ABSTRACT

We release Code Llama, a family of large language models for code based on Llama 2 providing state-of-the-art performance among open models, infilling capabilities, support for large input contexts, and zero-shot instruction following ability for programming tasks. We provide multiple flavors to cover a wide range of applications: foundation models (Code Llama), Python specializations (Code Llama - Python), and instruction-following models (Code Llama - Instruct) with 7B, 13B, 34B and 70B parameters each. All models are trained on sequences of 16k tokens and show improvements on inputs with up to 100k tokens. 7B, 13B and 70B Code Llama and Code Llama - Instruct variants support infilling based on surrounding content. Code Llama reaches state-of-the-art performance among open models on several code benchmarks, with scores of up to 67% and 65% on HumanEval and MBPP, respectively. Notably, Code Llama - Python 7B outperforms Llama 2 70B on HumanEval and MBPP, and all our models outperform every other publicly available model on MultiPL-E. We release Code Llama under a permissive license that allows for both research and commercial use.

研究の動機と目的

  • Llama 2 から始め、コード中心データでファインチューニングすることにより、優れたオープンコードモデルが得られることを実証する。
  • インフィリング機能と長文脈のファインチューニングを導入して、エディタ内のコーディングとリポジトリ規模の推論を可能にする。
  • 言語特化(Python)および指示追従(Instruct)バリアントを、安全性と有用性の向上とともに提示する。
  • 標準的なコードベンチマーク(HumanEval、MBPP、APPS)および多言語ベンチマーク(MultiPL-E)で評価する。
  • 研究および商用利用に適した寛容なライセンスの下でモデルを提供する。

提案手法

  • Llama 2 ウェイトから初期化し、コード中心データセット(約500Bトークン; 70B は約1T を使用)で訓練する。
  • 7B、13B、70B バリアントに対して、自己回帰予測とインフィリング予測を組み合わせたマルチタスク目的を適用する。
  • LCFT によって文脈長を拡張し、RoPE 回転周波数を調整して最大100,000トークン入力をサポートする。
  • Code Llama - Python 専用モデルを、Python中心データで訓練して開発する。
  • Code Llama - Instruct を、独自の指示データと自己指示生成パイプライン(ユニットテストと解答)でさらにファインチューニングして作成する。
  • HumanEval、MBPP、APPS、および多言語 MultiPL-E ベンチマークでゼロショットおよび few-shot プロンプトを用いて評価する。

実験結果

リサーチクエスチョン

  • RQ1Code Llama は標準的なコードベンチマークで他のオープンコードモデルを上回ることができるか?
  • RQ2インフィリング訓練は、オートコンプリート品質の許容できるトレードオフとともに実用的な利点をもたらすか?
  • RQ3長文脈ファインチューニングは性能にどう影響し、100kトークン入力への外挿性にどう影響するか?
  • RQ4Python 特化と指示追従ファインチューニングから、コード生成品質、安全性、言語を跨いだ有用性の点でどのような利得が生じるか?
  • RQ5多言語のコーディングシナリオで、他のオープンモデルと比べてどのように性能を発揮するか?

主な発見

  • Code Llama バリアントは、いくつかのベンチマーク(HumanEval、MBPP、MultiPL-E)でオープンモデル中の最先端パフォーマンスを達成する。
  • Code Llama - Python 7B は Python タスクの HumanEval および MBPP で Llama 2 70B を上回ることができる。
  • インフィリング有効化モデルは強力なインフィリングベンチマークに到達し、自己回帰生成指標には大きな低下をもたらさない。
  • 長文脈ファインチューニングは安定した生成と最大100,000トークンまでの外挿を可能にし、標準的なベンチマークへの影響は穏やかである。
  • Code Llama - Instruct は、コード生成コストを僅かに抑えつつ、安全性と有用性のベンチマークを改善する。
  • 言語を跨いで、Code Llama は同サイズの Llama 2 モデルを上回り、Code Llama 7B は多言語タスクで公開モデルのより大きなものと競合する。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。