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件を選定
-
あるいは再度プロンプトを生成して改良指示を返す(フィードバックループ)
-
ワークフロー全体像(簡略図)
特徴と利点
-
段階的洗練: 雑多な出力を段階的にフィルタ・改善することで高品質な合成データを得る。
-
LLMの自己活用: Critic でLLM自身に評価・修正を行わせる点がAutoGenのユニークな強み。
-
柔軟な拡張性: 各ステージはカスタマイズ可能で、用途に応じたフィルタ・評価ロジックを差し替え可能。
応用例
-
Instruction tuning のための Q&A ペア生成
-
評価付きデータ(ランキング、フィードバック)作成
-
ドメイン適応型コーパス自動生成
このように、「Generator–Filter–Critic」のワークフローは、AutoGenの合成データ生成プロセスの中核であり、効率と品質の両立を実現する構成となっています。必要に応じてCriticからGeneratorへ再入力することで、反復的に精度を高めるループも構築可能です。
ChatGPT4o 生成日:2025/06/15