Skip to main content
QUICK REVIEW

[論文レビュー] OctoPack: Instruction Tuning Code Large Language Models

Niklas Muennighoff, Qian Liu|arXiv (Cornell University)|Aug 14, 2023
Software Engineering Research被引用数 16
ひとこと要約

本論文は CommitPack と CommitPackFT を導入し、コードコミットの4TB および 2GB データセットを、コード LLM の指示学習用に公開許可ライセンスで提供する。最良の許可コード LLM である OctoCoder と OctoGeeX を提示し、Code Repair、Code Explanation、Code Synthesis を含む拡張版 HumanEvalPack ベンチマークを、六言語にわたって評価した。

ABSTRACT

Finetuning large language models (LLMs) on instructions leads to vast performance improvements on natural language tasks. We apply instruction tuning using code, leveraging the natural structure of Git commits, which pair code changes with human instructions. We compile CommitPack: 4 terabytes of Git commits across 350 programming languages. We benchmark CommitPack against other natural and synthetic code instructions (xP3x, Self-Instruct, OASST) on the 16B parameter StarCoder model, and achieve state-of-the-art performance among models not trained on OpenAI outputs, on the HumanEval Python benchmark (46.2% pass@1). We further introduce HumanEvalPack, expanding the HumanEval benchmark to a total of 3 coding tasks (Code Repair, Code Explanation, Code Synthesis) across 6 languages (Python, JavaScript, Java, Go, C++, Rust). Our models, OctoCoder and OctoGeeX, achieve the best performance across HumanEvalPack among all permissive models, demonstrating CommitPack's benefits in generalizing to a wider set of languages and natural coding tasks. Code, models and data are freely available at https://github.com/bigcode-project/octopack.

研究の動機と目的

  • 許可されたライセンスのコードデータに基づく指示学習が、複数の言語とタスクに跨る Code LLM の一般化性能を向上させることを示す。
  • 大規模で高品質なコード指示データを提供するために CommitPack および CommitPackFT を作成する。
  • 拡張された HumanEvalPack ベンチマーク上で、改良された許可コード LLM(OctoCoder、OctoGeeX)を開発・評価する。
  • CommitPackFT と自然言語データを組み合わせると、許可付きモデルの中で最良の性能を達成することを示す。

提案手法

  • GitHub Action のメタデータと関連コードの変更をフィルタリングして、350 言語に跨る Git コミットの 4TB データセットである CommitPack を構築する。
  • 指示文のようなコミットメッセージと制限されたフィルタ(大文字で始まる命令形、複数語フレーズ等)を備えた高品質な 2GB のサブセットである CommitPackFT を作成する。
  • HumanEval を拡張して Code Repair、Code Explanation、Code Synthesis を六言語に跨る HumanEvalPack を作成し、実行ベースの評価を慎重に行う。
  • CommitPackFT および OASST に類似したデータで StarCoder 派生モデルをファインチューンして OctoCoder を作成し、同様に CodeGeeX2 をファインチューンして OctoGeeX を作成する。
  • HumanEvalPack 上で pass@k を用いて、ほとんどのモデルで 20 サンプル、GPT-4 は 1 を用いて評価し、三つのタスクと六言語を対象とする。
  • Permissive モデルを non-permissive モデルおよび GPT-4 と比較し、 Code Synthesis、Code Repair、Code Explanation の三つのタスク種別で比較する。

実験結果

リサーチクエスチョン

  • RQ1大規模で許可されたライセンスのコードデータセットに対する指示学習は、複数のプログラミング言語にわたる Code LLM の性能を改善するか。
  • RQ2キュレーションされた高品質なコミット指示データセット(CommitPackFT)と自然言語データ(OASST)を組み合わせると、コードタスクに対して最良の成果を得られるか。
  • RQ3事前学習で十分には表現されていない言語やタスクへ、指示学習済み Code LLM はどれくらい一般化できるか。
  • RQ4バグ修正やコード説明のような難易度の高いタスクにおける、現行の許可付き Code LLM の限界は何か。
  • RQ5指示学習済みモデルは HumanEvalPack タスクで、クローズドソースモデルとどう比較されるか。

主な発見

  • OctoCoder は HumanEvalPack の三つの評価シナリオすべてで、許可付きモデルの中で最高の平均スコアを達成した。
  • OctoGeeX、6B パラメータの OctoGeeX は、従来の許可付き Code LLM を上回り、強い一般化を示す。
  • GPT-4 は全体でトップパフォーマーのままだが、クローズドソースで許可的ではない。
  • CommitPackFT と自然言語データ(OASST)の組み合わせは、Code Synthesis に関して permissive モデルの中で最高の性能を示し、StarCoder から絶対的に 23% 向上した。
  • HumanEvalPack は、多くのモデルにとって Code Repair が依然として難しいことを示しており、ターゲットを絞ったコミットが OctoCoder のバグ修正対応を助ける。
  • モデルは自然言語の説明を生成するのに苦戦しており、指示学習時に NL ターゲットを含む出力の必要性を浮き彫りにしている。

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

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

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

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