Andrew Ng の Agentic AI 講座 第2回
Andrew Ng 教授による Agentic AI 講座の第2回
📅 2025-10-26📂 AI 講座原文(2025-10-26 版)からの翻訳
📚 おすすめリソース
🚀 林悦己 - AI リソースとツール集↗リフレクション(Reflection)デザインパターン
タスクの出力を改善するためのリフレクション
リフレクションを使うと、人間が自分の草稿を振り返って推敲するのと同じように、LLM が自分自身の出力を改善できます。
例:
- メールを書く → バージョン1(v1)を作る
- リフレクションする → 不明瞭な表現、誤字、署名の抜けを見つける
- 修正する → バージョン2(v2)を作る
LLM も同じループをたどれます:
- v1 を生成する(メール、コードなど)
- v1 を別のプロンプトに渡す
- リフレクションして改善し、v2 を作る
各ステップを異なるモデルが担当できます:
- 生成 → 創造的なモデル、あるいは直接的なモデル
- リフレクション → 推論モデル、あるいは分析的なモデル
外部からのフィードバックは効果を高めます:
- 例:コードを実行する → エラーを取得する → 結果をフィードバックする → バグを修正する
重要なポイント
- リフレクションは、控えめながら安定した性能向上をもたらす
- 外部の情報はリフレクションのプロセスを強化する
- リフレクション ≠ 完璧。しかし、明確さ、正確さ、完全さを改善する
なぜ直接生成だけではだめなのか?
ゼロショットプロンプティング = 例を示さない1ステップの生成。
例:
- “Write an essay about black holes.”
- “Write a Python function for compound interest.”
リフレクション vs 直接生成:
- リフレクションは、多様なタスクにおいてゼロショットをしばしば上回る。
- 研究により、リフレクションは GPT-3.5 や GPT-4 などのモデル全般で成功率を高めることが示されている。
リフレクションが役立つ場面
- 構造化データの生成(HTML、JSON)
- 複数ステップの手順(例:お茶の淹れ方)
- 創造的な生成(ドメイン名、ブランド名)
リフレクションプロンプトの例
- メールのトーン、事実、明確さをチェックする
- ドメイン名が発音しやすく、ネガティブな意味を持たないかを評価する
プロンプトを書くコツ
- “review”、“reflect”、“check”、“verify” のような動詞を使う
- 明確な基準(トーン、事実の正確さ、構造)を指定する
- 優れたオープンソース実装のプロンプトを研究する
グラフ生成ワークフロー
リフレクションは視覚的な出力も改善します。
ワークフローの例:
- グラフのコード(Python)を生成する → 積み上げ棒グラフを作る(v1)
- コードと生成された画像の両方をマルチモーダル LLM に渡す
- 視覚的にリフレクションする → より良いグラフを提案する(例:グループ化した棒グラフ)
- 改善した可視化を生成する(v2)
効果的なリフレクションプロンプト
- 明確な役割を割り当てる(「専門のデータアナリスト」)
- コンテキストを含める:コード、データ、画像
- 基準を定義する:読みやすさ、明確さ、完全さ
モデルの選択
- 生成:GPT-4o、GPT-5 など
- リフレクション:推論モデル、あるいは視覚モデル
リフレクションの効果を評価する
リフレクションはレイテンシを増やしますが、多くの場合、正確さを改善します。残す価値があるかどうかは必ずテストしてください。
例:データベースクエリの評価
- LLM が SQL を書く → リフレクションなしで実行する
- LLM が SQL を書く → リフレクションして書き直す → もう一度実行する
- 正解(ground truth)の答えと正確さを比較する
結果の例:
- リフレクションなし → 87% 正解
- リフレクションあり → 95% 正解
評価方法
- 客観的なタスク: 自動テストを使う(例:SQL の結果)
- 主観的なタスク: ルーブリックを伴う LLM-as-judge を使う
ルーブリックに基づく評価
- ペアワイズ比較のバイアスを避ける
- 一貫した評価のために二値(0/1)スコアリングを使う
- 基準:明確なタイトル、適切なラベル、正しいグラフの種類など
なぜこれが重要なのか
- プロンプトの最適化が可能になる
- 再現可能なベンチマークが得られる
- 改善をデータ駆動に保てる
外部フィードバックの活用
新しい情報を伴うリフレクションは、以前のコンテキストだけを使うリフレクションを上回ります。
性能曲線:
- ゼロショット → すぐに頭打ちになる
- リフレクション → 中程度の向上
- リフレクション + 外部フィードバック → 大きな改善
外部フィードバックの例
- コードを実行する → 実行時エラーを取得する → フィードバックする
- 禁止用語を検出する → 検出結果をフィードバックする
- ファクトチェックのためのウェブ検索 → 検証済みの情報を与える
- 文字数の検証 → 長さの制限を守らせる
デザインパターン
- 生成する → 出力を作る
- 外部フィードバックを集める → 新しいデータ
- フィードバックを使ってリフレクションする → 改善された出力
リフレクションはシステムレベルのループです:
- LLM が現実から学ぶ
- 開発者が測定して調整する
- システムが継続的に改善される
まとめ
リフレクションデザインパターン:
- 人間の推敲を模倣する
- テキスト、コード、画像にわたって機能する
- 明確な基準や外部フィードバックに導かれると品質が向上する
基本原則 あらゆる生成システムに、構造化されたフィードバックループを追加する。