SelfCodeAlign: コード生成のための自己アラインメント
Author
Venue
NeurIPS 2024
Abstract
指示チューニングは、大規模言語モデル(LLM)が人間の指示に従う能力を大幅に向上させる、教師ありの微調整手法である。 我々は、大規模な人間によるアノテーションやディスティレーションを必要とせず、コード生成LLMを自己アラインメントさせるための、初の完全透明かつ許容性の高いパイプライン「SelfCodeAlign」を提案する。SelfCodeAlignは、データ生成プロセス全体を通じて推論に同じベースモデルを用いる。まず、高品質なシードスニペットから多様なコーディング概念を抽出し、新しいタスクを生成する。次に、タスクごとに複数の応答をサンプリングし、それぞれをテストケースとペアリングして、サンドボックス環境で検証を行う。 最後に、合格した例が選定され、指示チューニングに用いられる。主要な実験では、SelfCodeAlignとCodeQwen1.5-7Bを組み合わせて、74,000組の指示-応答ペアからなるデータセットを生成した。このデータセットを用いた微調整により、HumanEval+で67.1%のpass@1を達成するモデルが得られ、モデル規模が10分の1であるにもかかわらず、CodeLlama-70B-Instructを上回る性能を示した。 すべてのベンチマークにおいて、この微調整済みモデルは、人間によるアノテーションやディスティレーションを伴わない指示チューニングの従来の最先端手法であるOctoPackで訓練されたオリジナル版を一貫して上回っています。さらに、SelfCodeAlignが3Bから33Bまでの様々なサイズのLLMで有効であること、またベースモデルが自身のデータ分布との整合性からより多くの恩恵を受けられることを示しています。 さらに、我々のパイプラインにおける各コンポーネントの有効性を検証し、SelfCodeAlignがGPT-4oからの直接ディスティレーションや、OSS-InstructやEvol-Instructといった主要なGPT-3.5ベースのディスティレーション手法の両方を上回ることを示した。 また、SelfCodeAlignは、最先端のコーディング性能を達成した、初の完全透明かつ許容的なライセンスを持つ自己アラインメント型コードLLMであるStarCoder2-Instructの開発にもつながりました。
