エンタープライズ向けAIエージェントの訓練データ生成を自動化する「AutoSynthData」とは

エンタープライズAIエージェントの課題とAutoSynthData
企業が導入するAIエージェントは、それぞれの環境に特化したシステム、ルール、データ状態に対応する必要があります。汎用的なモデルであっても、特定のワークフロー処理の不備、ツールの誤用、制約の無視といった問題に直面することがあります。これらの弱点を改善するためには、適切な訓練データが不可欠です。
しかし、個々の失敗から訓練データを生成するのは容易ではありません。モデルの訓練には、同じ能力を異なる状況で試す多数の新しいタスクが必要です。これらのタスクは、実際の環境で実行可能であり、ユーザーが実際に要求するような内容で、かつエージェントの成功を確実に検証できるものでなければなりません。
ServiceNow CoreAIは、これらの能力ギャップを訓練データに変換するために「AutoSynthData」を開発しました。AutoSynthDataは、ターゲットモデルの失敗と、より強力なティーチャーモデルの成功を利用して、モデルが次に何を学ぶべきかを決定し、その能力を試す新しいタスクを生成・検証します。モデルが改善するにつれて、カリキュラムはモデルがまだ困難と感じる領域へとシフトしていきます。
有用なエージェントタスクの条件
エージェントが動作する環境は、観測・変更可能な状態、呼び出し可能なツールやAPI、アクションによって生成される状態遷移を定義します。タスクはこの環境内でインスタンス化され、以下の抽象化で表現されます。
- システム仕様: エージェントが動作する制約(システム指示、環境ポリシー、タスク固有の初期化など)を定義します。
- ユーザープロンプト: ユーザーがエージェントに達成してほしいことと、ユーザーレベルの制約を指定します。
- ベリファイア: 結果として得られる軌跡がタスクを正常に完了したかどうかを判断します。
生成されるタスクは、以下の3つの特性を満たす必要があります。
- 実現可能性: ユーザープロンプトを満たし、システム仕様を尊重する実行可能な軌跡が環境内に存在すること。
- 現実性: ユーザープロンプトが、ターゲット環境でユーザーが実際に要求するような内容であること。
- 難易度: 現在のエージェントの弱点を露呈するタスクであること。
ベリファイアは、以下の3つの特性を満たす必要があります。
- 一貫性: ユーザープロンプト、システム仕様、タスク固有の環境状態と一致すること。
- 健全性: タスクを満たさない、または関連する制約に違反する軌跡を拒否すること。
- 完全性: 特定の参照軌跡を符号化するのではなく、有効な解決策を受け入れること。
AutoSynthDataの仕組み
AutoSynthDataは、環境とターゲットモデルが与えられると、システム仕様、ユーザープロンプト、ベリファイアからなる訓練タスクを生成します。生成されたタスクは環境に根ざしており、現在のモデルに有用な訓練シグナルを提供するように選択されます。
まず、AutoSynthDataは診断タスクを使用して環境内でターゲットモデルを評価し、モデルが完了に苦労するタスクのパターンを特定します。より強力なティーチャーモデルが、これらのタスクのどれが解決可能か、そして成功する振る舞いがどのようなものかを特徴づけるのに役立ちます。
AutoSynthDataは、結果として得られる能力ギャップを新しい実行可能なタスクに変換し、環境内で各タスクをチェックし、受け入れられたサンプルを後続の訓練に使用します。更新されたモデルを評価することで、どのギャップが残っているかが明らかになり、次の生成ラウンドを導くことができます。
モデルの失敗からカリキュラムへ
AutoSynthDataは、ターゲット環境での評価実行を使用して、モデルが次に何を学ぶ必要があるかを特定します。EnterpriseOps Gymの実験では、ターゲットモデルとより強力なティーチャーモデルの両方を評価タスクで実行します。これらの実行を調査して、以下を特定します。
- テストされている能力
- 関連するツールとワークフロー構造
- ターゲットモデルが失敗する箇所とティーチャーモデルが成功する方法
- 正しい最終状態が満たすべきプロパティ
- テストされている能力を維持しながら変化させることができる次元
これらの発見は、サニタイズされた能力仕様カードにまとめられます。評価タスクはモデルが何を学ぶべきかを導きますが、ジェネレーターは元のプロンプト、エンティティ、軌跡、ベリファイアの詳細を受け取りません。カードを受け取り、それらを使用して異なるプロンプト、状態、解決パスを持つ新しいタスクを作成します。
タスクの生成と拡張
能力ギャップを特定することは何を教えるべきかを教えてくれますが、訓練にはそれを試す多様なタスクが多数必要です。AutoSynthDataは仕様カードを使用してこれらのタスクを生成します。
AutoSynthDataは、エンティティ、初期環境状態、ワークフロー構成、ツール組み合わせ、表現、難易度を変化させながら、このワークフローを試す新しいタスクを作成します。その後、より強力なティーチャーモデルが各タスクの成功軌跡をデモンストレーションします。教師ありファインチューニング(SFT)の場合、これらのデモンストレーションは、ターゲットモデルに新しい状況で能力を適用する方法を教えます。
AutoSynthDataは、まずコアサンプルを生成・検証し、次にそれらを新しいバリアントに拡張する2つのフェーズでデータセットを構築します。
- ターゲットフェーズ: 能力仕様から訓練サンプルのコアセットを作成します。各候補は検証、実行、ソルバー評価、修復を経て受け入れられます。
- マルチプライフェーズ: 受け入れられたターゲットサンプルの新しいバリアントを作成することでデータセットを拡張します。各バリアントは独自のユーザー要求、環境状態、エンティティ構成、参照軌跡、ベリファイアを持ち、同じ検証および実行チェックをパスする必要があります。
高品質な合成データに必要な検証
もっともらしいリクエストを生成するだけでは、有用な訓練データは得られません。タスクがターゲット環境で不可能であったり、参照ソリューションが実行時に失敗したり、ベリファイアが間違った最終状態を報酬として与えたりする可能性があります。AutoSynthDataは、タスクを訓練に受け入れる前にこれらのプロパティをチェックします。
AutoSynthDataは、2つのレベルで品質をレビューします。個々の候補は検証をパスする必要があり、バッチは有用なカバレッジと多様性を提供する必要があります。
- サンプルレベルの検証と修復: 各候補は訓練データセットに入る前に品質管理ループをクリアする必要があります。
- ポジティブ検証: 意図されたソリューションが生成されたタスクを解決するかどうかを問います。
- ネガティブ検証: 関連する誤った結果が失敗するかどうかを問います。
- 批評と修復: 失敗した候補は、破棄される前に批評家によって検査されます。


