コーディングエージェント蒸留テンプレートは、コーディングエージェントを利用してリモートのサンドボックス内で実際のコードを修正し、その後、変更をリプレイしてテストを実行し検証します。これにより、ShareGPT フォーマットのマルチターン SFT データセットが生成されます。これらのデータセットは、小規模モデルが実際のリポジトリで問題を特定し、コードを修正し、結果を検証できるようにトレーニングするのに適しています。
テンプレートの概要
コーディングエージェント蒸留テンプレートを使用して、コーディング能力を持つモデルをトレーニングします。コーディングエージェントがリモートのサンドボックス内で実際のコードを修正し、その後、クリーンなサンドボックスで変更がリプレイされ、テストされます。変更によって実際にテストに合格した軌跡のみが保持され、ShareGPT フォーマットのマルチターン SFT データセットを生成します。ツールコールをシミュレートするエージェント蒸留とは異なり、このデータパイプラインの各ステップには、実際の実行と不正行為防止チェックが含まれています。これらのデータセットは、小規模モデルが実際のリポジトリで問題を特定し、コードを修正し、結果を検証できるようにトレーニングするのに適しています。
このテンプレートは、蒸留データ構築 の 1 段階のみをサポートします。スチューデントモデルのトレーニング段階は含まれていません。
コーディングエージェント蒸留テンプレートのパイプラインには、次のステップが含まれます。
ステップ | 名前 | 説明 |
1 | サンドボックス実行 | 各シードに対して独立したリモートサンドボックスを作成し、そのワークスペースを抽出します。次に、コーディングエージェントがタスクの指示に従ってコードを修正し、完全なインタラクションの軌跡が記録されます。 |
2 | リプレイとテスト検証 | クリーンなサンドボックスで軌跡からのファイル変更をリプレイし、シードで指定された検証コマンドを実行します。また、テストファイルが変更されたか、すべてのテストケースがスキップされたか、環境エラーが合格としてカウントされたかといった不正行為防止チェックも実行します。スコアと結論を出力します。 |
3 | SFT データセットの構築 | 検証に合格した軌跡を、ShareGPT フォーマットのマルチターン会話トレーニングサンプルに整理します。 |
操作手順
Platform for AI (PAI) コンソールにログインします。左側のナビゲーションペインで、モデルアプリケーション > モデル蒸留 (ModelDistill) を選択します。
タスクの作成 をクリックして 知識蒸留テンプレート タブを開くか、直接 知識蒸留テンプレート タブを開きます。
[Coding Agent Distillation] を選択し、テンプレートの使用 をクリックして 知識蒸留ジョブの作成 ページを開きます。以下の主要なパラメーターを設定し、その他のパラメーターはデフォルト値のままにしてください。
基本設定 で、次のパラメーターを設定します。
[タスク名]:システムがこのフィールドに自動的に入力します。
[出力パス]:アクセス権のある OSS パス (例:
oss://mybucket.oss-cn-hangzhou-internal.aliyuncs.com/coding-agent-distill/) を指定します。説明ファイルが上書きされないように、各蒸留タスクごとに個別の出力ディレクトリを作成してください。OSS バケットは、PAI サービスと同じリージョンにある必要があります。
次へ をクリックして 蒸留データ構築 を開きます。
[教師モデル]:ソースを [Token Service] に設定し、教師モデル (例:
qwen3.8-max) を選択します。ジャッジモデルは選択しないでください。教師モデルがジャッジモデルとして再利用されます。[データセット]:アクセス権のある OSS ディレクトリを選択します。JSONL ファイルだけでなく、ディレクトリ全体を選択する必要があります。サンプルを直接ダウンロードして使用できます。
[知識蒸留の設定]:デフォルトの設定が用意されており、必要に応じて変更できます。次のパラメーターに注意してください。
coding_agent.harness.max_turns:単一シードの最大インタラクションターン数です。デフォルト値は 150 です。エージェントは各ターンでサンドボックス内のコードを修正し、テストを実行するため、このパラメーターはタイムアウトと一緒に設定してください。coding_agent.sandbox.endpoint: Instant Service のエンドポイントです。プレースホルダー
${EAS_SANDBOX_ENDPOINT}を実際のエンドポイントに置き換えます。coding_agent.sandbox.api_key:インスタントサービス API トークンです。プレースホルダー
${EAS_SANDBOX_API_KEY}を実際のトークンに置き換えます。説明Instant Service:Coding Agent Distillation でサンドボックス実行環境を提供するには、Instant Service が必要です。PAI コンソールの左側のナビゲーションペインでElastic Algorithm Service (EAS) を選択し、即時サービス タブをクリックします。Instant Service を作成したら、パブリックテンプレートまたはカスタムテンプレートを使用します。テンプレート詳細ページの右上隅にある [SDK Access] をクリックして、上記の蒸留設定で
${EAS_SANDBOX_ENDPOINT}と${EAS_SANDBOX_API_KEY}を置き換えるためのエンドポイントと API トークンを取得します。詳細については、「Instant Service - はじめに」をご参照ください。
[計算リソース]:リソースタイプ を 汎用コンピューティングリソース に、リソースのソース を パブリックリソース に設定し、タスクリソース で適切な リソース仕様 (例:
ecs.c6.large) を選択します。
作成 をクリックします。表示される課金リマインダーで OK をクリックします。ページは自動的にタスク詳細の基本設定ページにリダイレクトされ、そこでタスクのステータスを追跡できます。
設定の詳細
以下のセクションでは、コーディングエージェント蒸留テンプレートの主要な設定パラメーターについて説明します。基本設定とリソース設定は一般的な蒸留タスクと同様であるため、このセクションではこのテンプレートに固有のパラメーターのみを記載します。
基本設定
基本設定には、タスク名と出力パスの 2 つの設定が含まれます。出力パスは、すべてのタスク出力のルートディレクトリです。蒸留データセットもこのディレクトリに書き込まれるため、データセットの出力パスを別途指定する必要はありません。
蒸留データ構築
教師モデル
コーディングエージェント蒸留テンプレートには、次の教師モデルが必要です。
番号 | モデルの役割 | 説明 |
1 | 教師モデル (必須) | コーディングエージェントの推論とエージェントハーネスの両方で軌跡を生成するために使用されます。長いコンテキストとツールコールをサポートする、強力なコーディング能力を持つモデルを選択してください。 |
2 | ジャッジモデル (任意) | コーディングエージェントの軌跡の品質を評価するために使用されます。このフィールドを空のままにすると、教師モデルが再利用されます。別途モデルを指定することを推奨します。 |
教師モデルのソースは [Token Service] に対応しています。
データセット
入力ディレクトリを選択します。JSONL ファイルだけでなく、ディレクトリ全体を選択する必要があります。データは次のフォーマット要件を満たす必要があります。
シードファイル: seeds.jsonl。各行には、
id、instruction、workspace、test_cmd、test_filesフィールドを持つ 1 つのシードタスクが含まれます。各シードのワークスペースアーカイブを準備します。アーカイブパスは、seeds.jsonl 内の相対パスから解決されます。
入力ディレクトリ全体を選択する必要があります。seeds.jsonl ファイルのみを選択した場合、アーカイブは利用できません。
蒸留設定
蒸留設定は YAML フォーマットで用意されており、アルゴリズムチームが推奨するデフォルト値が含まれています。必要に応じて値を調整してください。以下の表では、注意が必要ないくつかのパラメーターについて説明します。
設定セクション | 説明 |
dataset |
|
backend |
|
coding_agent.harness | コーディングエージェントの動作とサンドボックスとのインタラクションを制御するエージェントハーネス。
|
coding_agent.sandbox | リモートサンドボックスの設定。各シードには、独立したインスタンスが割り当てられます。
|
coding_agent.scoring | 軌跡の品質フィルタリングを制御する検証およびスコアリングメカニズム。
|
coding_agent.execution |
|