AIパーソナル・ラーニング
と実践的なガイダンス
サイバーナイフ用ドローイングミラー

マイクロソフトのオリジナルWizardLMチーム:コード大きなモデルWarriorCoder、パフォーマンス新しいSOTA

blank

 

  • 論文題目名:WarriorCoder:大規模言語モデルのコード補強のための専門家の戦いからの学習
  • 論文へのリンク:https://arxiv.org/pdf/2412.17395

01 背景

近年、大規模言語モデル(Large Language Models: LLM)はコード関連タスクにおいて驚異的な性能を示し、様々なコードマクロモデルが登場している。これらのサクセスストーリーは、大規模コードデータでの事前学習がモデルのコアプログラミング能力を大幅に向上させることを示している。事前学習に加えて、命令データに対してLLMを事後学習させるいくつかの手法も、モデルの命令理解と解答の質の大幅な向上につながった。しかし、ポストトレーニングの有効性は、高品質なデータが利用できるかどうかに大きく依存するが、データの収集とアノテーションにはかなりの課題がある。
上記の課題を解決するために、Self-Instruct、Evol-Instructなど、命令データを生成するための様々なデータフライホイールを設計した手法がある。これらの手法は、様々なデータ拡張手段によって命令データを構築するように設計されている。これらの手法は、様々なデータ拡張手段によって命令データを構築し、これらのデータに対して学習を行うことで、モデルのコード生成能力を効果的に向上させることができる。しかし、図1に示すように、これらの手法は既存のデータセットの拡張に依存しており、プライベートLLM(GPT-3.5、GPT-4など)を呼び出す必要があるため、データ収集にコストがかかる。さらに、アノテーションに使用されるデータソースとLLMの数が限られているため、データの多様性も制限され、限られたプライベートLLMに固有の系統的なバイアスが継承される。 blank 図1


本稿で紹介するのは WarriorCoderは、コードマクロモデルのための新しいデータフライホイールトレーニングパラダイムである。.図1に示すように、コーディングの専門家の個々の大規模モデルを互いに戦わせ、攻撃側はそれぞれの専門分野で相手に挑戦し、ターゲットモデルはこれらの戦いのペアの勝者から学習する。warriorCoderは、既存のオープンソースデータセットをシードデータとして合成・増強する従来の手法とは異なり、シードデータを必要とせずに0から1までのデータを生成し、個々のモデルの強みを抽出するだけでなく、複数のコードエキスパートマクロモデルの強みを融合することができる。さらに、本論文で提案された方法は、データ収集プロセスにおける人間の関与やプライベートLLMへの依存を排除し、非常に低コストで高品質で多様な学習データを収集することができる。実験結果によれば、warriorCoderはコード生成タスクにおいて現行のSOTAを達成するだけでなく、コード推論やライブラリ利用などのベンチマークにおいても優れた結果を達成しており、コード六角形の戦士と呼ぶことができる。

02 方法論

本稿では、コード・グランドモデルのためのアリーナを構築する。ここでは、最先端のコードエキスパートであるマクロモデル同士が対戦し、各モデルが既に持っている知識を用いて他のモデルに挑戦する。ターゲットとなるモデルは、これらの対決の勝者から学び、すべての競争相手の長所を徐々に統合していく。本論文では、参加者(コードエキスパートマクロモデル)をグループとして扱い、グループ内の回答の相対的優劣によってモデルを最適化する。 blank 図2

2.1 競争相手の設定

参加者の能力が、WarriorCoderの最終的なパフォーマンスを決定する。理論的には、より大規模で強力な出場者のプールから得られる訓練データの多様性と質が高ければ高いほど、最終的に訓練されたモデルの性能は向上する。アリーナの各ラウンドでは、1組のコーダーのみが競技者として選ばれ、他のコーダーは審査員として機能する。本論文では、BigCodeBenchのランキングから、75B以内の5つの先進的なビッグモデル、Athene-V2-Chat、DeepSeek-Coder-V2-Lite-Instruct、Llama-3.3-70B-Instruct、Qwen2.5-72B-Instructが選ばれた。特筆すべきは、これら5つのビッグモデルはすべてオープンソースのビッグモデルであり、WarriorCoderはこれらオープンソースのビッグモデルとの対決だけで優れたパフォーマンスを達成していることだ。もちろん、WarriorCoderは強力なプライベート・マクロモデルからも学習することができる。

2.2 ゼロからの命令マイニング

AとB(Aが攻撃側、Bが防御側)という対戦相手のペアに対して、対決の最初のステップは、Aが得意とする分野でBに挑むことである。しかし、現在オープンソースで提供されているマクロモデルのほとんどは、コアとなるトレーニングデータを公開していないため、攻撃者の得意分野を知ることは非常に困難である。本論文では、Magpieに着想を得て、グランドモデルが既に習得している能力を掘り起こすための対話補完ベースのアプローチを考案する。Qwen2.5を例にとると、クイックソートアルゴリズムを生成させる場合、完全なプロンプトフォーマットは図3に示すようになる。"、""などのような、書式に関連する特別なトークンを含むべきである。 blank 図3

これに対して、図4に示すように、接頭辞部分(これ自体には特定の意味はない)だけをモデルに入力すれば、モデルの補完機能を利用してユーザーコンテンツを得ることができる。 blank 図4

このようにして、生成パラメータの異なる構成(例えば、異なる温度値やtop-p値)で、モデルによって学習されたインストラクションデータを収集することが可能である。従来のデータ合成とは異なり、本論文で収集された指示データはモデルによって合成されたものではなく、モデルの分布から直接サンプリングして得られたものであるため、パターンのオーバーフィットや出力分布の偏りといった問題を回避することができる。しかし、命令は反復的であったり、曖昧であったり、不明確であったり、単純すぎたりする可能性がある。このような問題に対処するため、データの重複を取り除き、レフリーモデルを用いて難易度を評価する。本論文では、難易度を「優」、「良」、「並」、「悪」の4つの等級に分類する。最終的に、「優」と「良」の等級の命令のみを使用し、KcenterGreedyアルゴリズムを用いて命令データをさらに圧縮する。

2.3 勝敗の決定

挑戦者と防衛者の双方が、指示されたデータに基づいて答えを生成し、レフェリー(残りのモデル)が勝者を投票する:
blank しかし、勝者を選ぶためにtextit{ローカルスコア}だけに頼ることは、偶然性の問題を引き起こす可能性があります。投票はランダム性やレビュアーのバイアスなどの要因に影響される可能性があるため、ある指示のもとでは、弱いモデルが強いモデルよりも多くの票を得るかもしれません。
この問題を解決するために、本稿では意思決定プロセスにおいて局所的偶発性とグローバルな一貫性の両方を考慮する。本稿では、グローバルスコア-Eloレーティングの概念を導入する。これは、モデルの相対的な性能の変化をより包括的に反映することができ、経時的かつ複数の評価にわたる性能をカバーする。Eloレーティングを導入することで、1つのゲームにおけるモデルの局所的な性能と、複数のラウンドにわたるグローバルな性能の両方を評価プロセスで考慮することができるため、モデルの総合的な能力をよりロバストかつ正確に測定することができ、偶然や代表的でない投票によって弱いモデルが勝利するリスクを低減するのに役立つ。
blank blank 最終的な回答スコアは、Eloレーティングと審査員の投票によって加重される:
blank 各対応はすべての対戦相手の対応と比較されるため、スコアはグループ内での現在の対応の相対的な強さを表す。

2.4 最終トレーニング

本論文では、インストラクション、各受講者からの回答、各回答に対応するスコアをデータ形式とする。このデータ形式は、SFT、DPO、KTOなど、様々な事後訓練手法に対応可能である。本論文では、SFTを採用し、グループ内で最もスコアの高い回答をゴールド出力として使用することで、WarriorCoderは、訓練における各参加者の強みを統合し、参加者全員の強みを組み合わせることができる。

 

03 実験的

3.1 主な結果
表1は、コード生成ベンチマークにおけるWarriorCoderのパフォーマンスを示している。類似の研究と比較して、WarriorCoderはHumanEval、HumanEval+、MBPP、MBPP+でSOTAを達成している。 特筆すべきは、WarriorCoderがプライベートな大規模モデル(GPT-4など)をまったく必要とせずに、圧倒的な結果を達成していることだ。 blank 表1

WarriorCoderは、コード推論ベンチマークとライブラリを使用したベンチマークでも優れた結果を達成している。表2と表3に示すように、WarriorCoderはほとんどのメトリクスで最適な性能を発揮し、15Bや34Bのような大規模モデルをも凌駕している。これはまた、本論文で提案された方法が優れた汎化性を持ち、コード専門家の複数の大規模モデルから多くの異なる能力を得ることを可能にするモデルであることを証明している。 blank 表2 blank 表3

3.2 データ分析

また、構築された訓練データを分析し、依存性、多様性、困難性の3つの観点から調査する。
依存
これまでの研究では、既存のコードデータセット(例)を基に拡張、データ増強を行う傾向があったが、本論文では全く新しいデータをゼロから構築している。図5に示すように、著者らは学習データと一般的に使用されている2つのコードデータセットとの重複度(ROUGEメトリクス)を計算しており、命令の大部分はcodealpacaとcodeultrafeedbackのROUGEスコアが0.3未満であり、既存のデータセットとは内容が大きく異なることを示唆している。注目すべきは、採掘されたどの命令もROUGEメトリックが0.6を超えていないことで、これらの命令が既存のトレーニングデータの単純なコピーや拡張ではなく、エキスパートマクロモデルの内部分布に由来することがさらに証明されている。その結果、これらのインストラクションは新規性が高く、独立性が高い。 blank 図5

表4は、7つの異なるコードタスクをカバーする学習データの構成を示し、これがWarriorCoderが複数のベンチマークで優れた性能を発揮できる理由である。注目すべきは、コード推論が2.9%しか占めていないことで、WarriorCoderは関連するベンチマークで驚くべき性能を発揮している。これは、本稿で提案した手法が大きな可能性を秘めていることを示しており、データをマイニングしてモデルの弱点を狙えば、モデルをさらに高性能にすることができる。さらに、図6のヒートマップは、出場者の対決結果も示しており、最強のモデルでも性能が悪いときがあり、WarriorCoderは、現在の命令で最も高いスコアを持つ勝者応答からのみ学習する。 blank 表4 blank 図6

図7は、異なるモデルによって生成された命令の難易度比を示している。大半の命令は、スコアが 6 から 8 の間で「良い」と評価されている。このことは、非常に複雑で高度なタスクは比較的稀であることを示している。著者らは、スコアが6以下の指示をトレーニングセットから除外した。なぜなら、それらの指示は単純すぎるか、曖昧すぎる傾向があり、トレーニング段階にとって有害であり、モデルの性能と汎化を弱める可能性さえあったからである。 blank 図7


04 関連リソース

著者らは現在このモデルをオープンソース化していないが、以下のアドレスで著者らの研究をすでに再現している人がいることがわかった:
プロジェクトへのリンク:https://huggingface.co/HuggingMicah/warriorcoder_reproduce

シーディーエヌワン
無断転載を禁じます:チーフAIシェアリングサークル " マイクロソフトのオリジナルWizardLMチーム:コード大きなモデルWarriorCoder、パフォーマンス新しいSOTA

チーフAIシェアリングサークル

チーフAIシェアリングサークルは、AI学習に焦点を当て、包括的なAI学習コンテンツ、AIツール、実践指導を提供しています。私たちの目標は、高品質のコンテンツと実践的な経験の共有を通じて、ユーザーがAI技術を習得し、AIの無限の可能性を一緒に探求することです。AI初心者でも上級者でも、知識を得てスキルを向上させ、イノベーションを実現するための理想的な場所です。

お問い合わせ
ja日本語