Generator-Filter-Critic のワークフロー

LLMフレームワークAutoGenにおける「Generator–Filter–Critic のワークフロー」は、質の高い合成データを効率的に生成・選別・改善するための中心的な処理パイプラインです。このワークフローは、以下の3つの主要コンポーネントから構成され、それぞれが明確な役割を担っています。


1. Generator(生成器)

目的: 指定されたインストラクションやプロンプトテンプレートに基づき、初期出力候補(合成データ)を生成します。

  • 使用されるモデル: LLM(例:GPT、Claude、LLaMA など)

  • 入力: インストラクション + プロンプトテンプレート(+ コンテキスト)

  • 出力: 回答候補群(例:5件、10件などの多様な生成)

この段階では、質の保証はされておらず、多様性や創造性を優先します。


2. Filter(フィルタ)

目的: Generator が出力した複数の候補から、基本的なルールに基づいて不適切な出力を除外します。

  • フィルタ基準の例:

    • 出力が空または形式違反

    • 重複やナンセンスな表現

    • 指定されたトピックから逸脱しているもの

  • 実装方法:

    • 正規表現

    • ルールベーススクリプト

    • トークン数チェックや構文パターン検出

このステージでは明示的な品質評価というより、「機械的な除外」に近い処理が行われます。


3. Critic(批評器)

目的: Filter を通過した候補に対して、意味的・文脈的な妥当性を評価し、最良のものを選抜または再構成します。

  • 方法:

    • LLM によるスコアリング(例: “この出力はタスクに適切か?” と自己評価)

    • 自己反省型プロンプト(Self-reflection Prompt)

    • Few-shot または Chain-of-thought 評価方式の利用

    • BLEU/ROUGE などの自動指標評価(タスクに応じて)

  • 結果:

    • 最良の1件を選定

    • あるいは再度プロンプトを生成して改良指示を返す(フィードバックループ


ワークフロー全体像(簡略図)

css
[ Instruction + Prompt ][ Generator ] (複数候補生成) ↓ [ Filter ] (明らかな誤り除外) ↓ [ Critic ] (意味的品質評価) ↓ [ 最終合成データ ]

特徴と利点

  • 段階的洗練: 雑多な出力を段階的にフィルタ・改善することで高品質な合成データを得る。

  • LLMの自己活用: Critic でLLM自身に評価・修正を行わせる点がAutoGenのユニークな強み。

  • 柔軟な拡張性: 各ステージはカスタマイズ可能で、用途に応じたフィルタ・評価ロジックを差し替え可能。


応用例

  • Instruction tuning のための Q&A ペア生成

  • 評価付きデータ(ランキング、フィードバック)作成

  • ドメイン適応型コーパス自動生成


このように、「Generator–Filter–Critic」のワークフローは、AutoGenの合成データ生成プロセスの中核であり、効率と品質の両立を実現する構成となっています。必要に応じてCriticからGeneratorへ再入力することで、反復的に精度を高めるループも構築可能です。

ChatGPT4o 生成日:2025/06/15