すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:コーディングエージェント蒸留

最終更新日:Sep 30, 2026

コーディングエージェント蒸留テンプレートは、コーディングエージェントを利用してリモートのサンドボックス内で実際のコードを修正し、その後、変更をリプレイしてテストを実行し検証します。これにより、ShareGPT フォーマットのマルチターン SFT データセットが生成されます。これらのデータセットは、小規模モデルが実際のリポジトリで問題を特定し、コードを修正し、結果を検証できるようにトレーニングするのに適しています。

テンプレートの概要

コーディングエージェント蒸留テンプレートを使用して、コーディング能力を持つモデルをトレーニングします。コーディングエージェントがリモートのサンドボックス内で実際のコードを修正し、その後、クリーンなサンドボックスで変更がリプレイされ、テストされます。変更によって実際にテストに合格した軌跡のみが保持され、ShareGPT フォーマットのマルチターン SFT データセットを生成します。ツールコールをシミュレートするエージェント蒸留とは異なり、このデータパイプラインの各ステップには、実際の実行と不正行為防止チェックが含まれています。これらのデータセットは、小規模モデルが実際のリポジトリで問題を特定し、コードを修正し、結果を検証できるようにトレーニングするのに適しています。

重要

このテンプレートは、蒸留データ構築 の 1 段階のみをサポートします。スチューデントモデルのトレーニング段階は含まれていません。

コーディングエージェント蒸留テンプレートのパイプラインには、次のステップが含まれます。

ステップ

名前

説明

1

サンドボックス実行

各シードに対して独立したリモートサンドボックスを作成し、そのワークスペースを抽出します。次に、コーディングエージェントがタスクの指示に従ってコードを修正し、完全なインタラクションの軌跡が記録されます。

2

リプレイとテスト検証

クリーンなサンドボックスで軌跡からのファイル変更をリプレイし、シードで指定された検証コマンドを実行します。また、テストファイルが変更されたか、すべてのテストケースがスキップされたか、環境エラーが合格としてカウントされたかといった不正行為防止チェックも実行します。スコアと結論を出力します。

3

SFT データセットの構築

検証に合格した軌跡を、ShareGPT フォーマットのマルチターン会話トレーニングサンプルに整理します。

操作手順

  1. Platform for AI (PAI) コンソールにログインします。左側のナビゲーションペインで、モデルアプリケーション > モデル蒸留 (ModelDistill) を選択します。

  2. タスクの作成 をクリックして 知識蒸留テンプレート タブを開くか、直接 知識蒸留テンプレート タブを開きます。

  3. [Coding Agent Distillation] を選択し、テンプレートの使用 をクリックして 知識蒸留ジョブの作成 ページを開きます。以下の主要なパラメーターを設定し、その他のパラメーターはデフォルト値のままにしてください。

  4. 基本設定 で、次のパラメーターを設定します。

    • [タスク名]:システムがこのフィールドに自動的に入力します。

    • [出力パス]:アクセス権のある OSS パス (例: oss://mybucket.oss-cn-hangzhou-internal.aliyuncs.com/coding-agent-distill/) を指定します。

      説明

      ファイルが上書きされないように、各蒸留タスクごとに個別の出力ディレクトリを作成してください。OSS バケットは、PAI サービスと同じリージョンにある必要があります。

  5. 次へ をクリックして 蒸留データ構築 を開きます。

    • [教師モデル]:ソースを [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) を選択します。

  6. 作成 をクリックします。表示される課金リマインダーで OK をクリックします。ページは自動的にタスク詳細の基本設定ページにリダイレクトされ、そこでタスクのステータスを追跡できます。

設定の詳細

以下のセクションでは、コーディングエージェント蒸留テンプレートの主要な設定パラメーターについて説明します。基本設定とリソース設定は一般的な蒸留タスクと同様であるため、このセクションではこのテンプレートに固有のパラメーターのみを記載します。

基本設定

基本設定には、タスク名と出力パスの 2 つの設定が含まれます。出力パスは、すべてのタスク出力のルートディレクトリです。蒸留データセットもこのディレクトリに書き込まれるため、データセットの出力パスを別途指定する必要はありません。

蒸留データ構築

教師モデル

コーディングエージェント蒸留テンプレートには、次の教師モデルが必要です。

番号

モデルの役割

説明

1

教師モデル (必須)

コーディングエージェントの推論とエージェントハーネスの両方で軌跡を生成するために使用されます。長いコンテキストとツールコールをサポートする、強力なコーディング能力を持つモデルを選択してください。

2

ジャッジモデル (任意)

コーディングエージェントの軌跡の品質を評価するために使用されます。このフィールドを空のままにすると、教師モデルが再利用されます。別途モデルを指定することを推奨します。

教師モデルのソースは [Token Service] に対応しています。

データセット

入力ディレクトリを選択します。JSONL ファイルだけでなく、ディレクトリ全体を選択する必要があります。データは次のフォーマット要件を満たす必要があります。

  • シードファイル: seeds.jsonl。各行には、id、instruction、workspace、test_cmd、test_files フィールドを持つ 1 つのシードタスクが含まれます。

  • 各シードのワークスペースアーカイブを準備します。アーカイブパスは、seeds.jsonl 内の相対パスから解決されます。

  • 入力ディレクトリ全体を選択する必要があります。seeds.jsonl ファイルのみを選択した場合、アーカイブは利用できません。

蒸留設定

蒸留設定は YAML フォーマットで用意されており、アルゴリズムチームが推奨するデフォルト値が含まれています。必要に応じて値を調整してください。以下の表では、注意が必要ないくつかのパラメーターについて説明します。

設定セクション

説明

dataset

  • input_path (デフォルト: seeds.jsonl):入力マウントディレクトリにある入力シードファイルのパスです。

  • output_path (デフォルト: 04_merged.jsonl): 検証に合格しなかった軌跡を含む、エクスポート前のマージされた監査スナップショットです。トレーサビリティと選好ペアの構築に使用されます。このファイルは SFT トレーニングデータファイルとは別にする必要があります。両方を同じファイルに指定すると、トレーニングデータがサイレントに上書きされます。

  • build_sft.output_path (デフォルト: outputs/handoff/03_sft_records.jsonl): 最終的な build_sft ステージによって生成される、ShareGPT 形式のトレーニング可能なマルチターン SFT データです。

backend

  • timeout (デフォルト: 1200.0): 単一のリクエストに対する最大待機時間 (秒単位) です。この値は、平均的な長さのレスポンスではなく、max_tokens をすべて使用するレスポンスに対応できる必要があります。

  • max_retries (デフォルト: 3): 単一のリクエストに対するネットワークレベルのリトライ回数です。

coding_agent.harness

コーディングエージェントの動作とサンドボックスとのインタラクションを制御するエージェントハーネス。

  • type (デフォルト: cc):エージェントハーネスタイプで、sandbox.templateで指定されたサンドボックスイメージと一致する必要があります。

  • model (デフォルト: deepseek-v4-flash-0731): コーディングエージェントが使用するモデルです。

  • max_turns (デフォルト: 150): 単一のシードに対するインタラクションの最大ターン数。

  • timeout (デフォルト: 2400):単一のシードに対する実時間制限 (秒) です。エージェントは各ターンでサンドボックス内のコードを修正してテストを実行するため、このパラメーターは max_turns と一緒に設定します。

  • supervisor.hard_abort_elapsed_s (デフォルト: 1200): 単一シードの強制終了のしきい値 (秒単位)。エージェントの実行時間がこの値を超えると、強制的に終了されます。

coding_agent.sandbox

リモートサンドボックスの設定。各シードには、独立したインスタンスが割り当てられます。

  • endpoint (必須): https://api.<domain> 形式の EAS Instant Service エンドポイントです。プレースホルダー ${EAS_SANDBOX_ENDPOINT} を実際のエンドポイントに置き換えます。

  • api_key (必須):教師モデルの認証情報とは異なる Instant Service API トークンです。プレースホルダー ${EAS_SANDBOX_API_KEY} を実際のトークンに置き換えます。

  • template (デフォルト: coding-agents-harness-cc): サンドボックスのテンプレート名。テンプレートは、お使いの Instant Service に存在している必要があります。

  • ttl (デフォルト: 3600): サンドボックスの有効期間 (秒単位)。サンドボックスは有効期限が切れると自動的に回収されます。

  • create_concurrency (デフォルト: 10): 並行して作成されるサンドボックスの最大数。バッチをスケールアップする場合、この値を execution.max_workers と合わせて調整します。

coding_agent.scoring

軌跡の品質フィルタリングを制御する検証およびスコアリングメカニズム。

  • require_real_test (デフォルト: true): test_cmd はサンドボックス内で実際に実行されなければなりません。 LLM によって評価されたスコアは受け付けられません。

  • require_test_pass (デフォルト: true): test_cmd の終了コードは 0 でなければなりません。そうでない場合、実行全体が破棄されます。

  • require_modification (デフォルト: true): トラジェクトリに実際のファイル変更が含まれている必要があります。そうでない場合、トラジェクトリ全体が破棄されます。

  • pass_threshold (デフォルト: 0.5): 検証に合格するために必要な最小スコア。

  • enable_judge (デフォルト: true): 補助スコアリング用の LLM 判定モデルを有効にするかどうかを指定します。判定モデルは judge_model で指定します。

  • false_positive_check (デフォルト: true): 統合された不正行為防止チェックです。テストファイルが変更されたかどうか、すべてのテストケースがスキップされたかどうか、および環境エラーが成功としてカウントされたかどうかを検証します。

coding_agent.execution

  • max_workers (デフォルト: 10): 同時に実行されるシードの数を制御する、シードレベルの並列性です。