Upgrade to Pro — share decks privately, control downloads, hide ads and more …

デザインパターンで理解するLLMエージェントの作り方 / How to develop an ...

Avatar for r-kagaya r-kagaya
November 23, 2024

デザインパターンで理解するLLMエージェントの作り方 / How to develop an LLM agent using agentic design patterns

2024年11月23日のFullstack AI Dev & Raycast Summit(#FullstackAIDev2024 )の登壇資料です
Agentic Design Patternを中心に、AI/LLMエージェントのデザインパターンについて触れています

https://devx.jp/mt202411

Avatar for r-kagaya

r-kagaya

November 23, 2024
Tweet

More Decks by r-kagaya

Other Decks in Programming

Transcript

  1. © 2024 Loglass Inc. 0 © 2024 Loglass Inc. Fullstack

    AI Dev & Raycast Summit #FullstackAIDev2024 デザインパターンで理解する LLMエージェントの作り方 r.kagaya 2024.11.23
  2. © 2024 Loglass Inc. 2 今日の内容 • 話すこと ◦ LLMエージェント、Agentic

    Workflowの設計パターン ▪ 特にAgentic Design Pattern ◦ 関連事例/リソース紹介 • 話さないこと ◦ AI/LLMエージェント、Agentic Workflowの概要、定義の詳細 ◦ 特定言語 / フレームワークでの実装 言語・フレームワークレベルでの実装ではなく、LLMエージェント、Agenticワークフロー を作る上で参考になる抽象的な構造について言及します
  3. © 2024 Loglass Inc. 4 単一のプロンプトからAgenticなワークフローへ • 一回のプロンプト実行(Non-Agentic)での出力品質の制約 ◦ 複雑なタスクへの対応の難しさ

    • LLMが反復的、段階的にタスクをこなすAgenticワークフローへ • Agentic ≒ 設定された目標に向かって、より自律的に行動しタスクがこなせる度合い • Agenticなワークフローの効果 ◦ HumanEval(コーディングベンチマーク)による検証 ▪ GPT-3.5 ゼロショット: 48.1% ▪ GPT-4 ゼロショット: 67.0% ▪ GPT-3.5 Agenticワークフロー: 95.1% • 補足: fews shotも強力
  4. © 2024 Loglass Inc. 5 • 自然な表現に修 正 • 文法,語彙,構文を

    改善 • 翻訳言語らしい表 現に調整 翻訳プロセスを「事前調査」「ドラフト」「リファインメント」「校正」の4段階に分解 Zero-shot翻訳と比較して、各ステップで翻訳品質が段階的に向上 • 事前調査を基に下 訳を作成 • 正確性重視 • 原文の意味を忠実 に反映 翻訳タスクを複数のステップでこなすことで品質が上がる Translating Step-by-Step: Decomposing the Translation Process for Improved Translation Quality of Long-Form Texts 事前調査 ドラフト リファインメント 校正 • 原文の慣用句や比 喩表現を特定 • 課題の事前把握 • 翻訳戦略を立案 • 最終チェック • 誤字脱字の修正 • 文法的誤りの確認 • 正確性と流暢さの 最終確認
  5. © 2024 Loglass Inc. 6 Agentic Workflow == LLMが反復的、段階的、自律的にタスクをこなす プロンプト一回でタスクをこなすのではなく、タスクの分解、「〇〇を修正して」というフィードバック

    の提供等を反復的に行った方が求めた出力に近づく可能性は高くなる プロンプトを与えて一度で出力を生成 ≒ ゼロショット 一度で出力生成を完結させず、LLMが反復的にタス クをこなしながら、出力を改善 ≒ LLMエージェント、フローエンジニアリング Non Agentic Workflow Agentic Workflow
  6. © 2024 Loglass Inc. 7 Agentic Workflow == LLMが反復的、段階的、自律的にタスクをこなす プロンプト一回でタスクをこなすのではなく、タスクの分解、「〇〇を修正して」というフィードバック

    の提供等を反復的に行った方が求めた出力に近づく可能性は高くなる プロンプトを与えて一度で出力を生成 ≒ ゼロショット 一度で出力生成を完結させず、LLMが反復的にタス クをこなしながら、出力を改善 ≒ LLMエージェント、フローエンジニアリング Non Agentic Workflow Agentic Workflow -> 複数のLLM推論、not AIなプログラムをどう組み合わせ、処理を作るか
  7. © 2024 Loglass Inc. 8 • 自然な表現に修 正 • 文法,語彙,構文を

    改善 • 翻訳言語らしい表 現に調整 翻訳プロセスを「事前調査」「ドラフト」「リファインメント」「校正」の4段階に分解 Zero-shot翻訳と比較して、各ステップで翻訳品質が段階的に向上 • 事前調査を基に下 訳を作成 • 正確性重視 • 原文の意味を忠実 に反映 (再掲)翻訳タスクを複数のステップでこなすことで品質が上がる Translating Step-by-Step: Decomposing the Translation Process for Improved Translation Quality of Long-Form Texts 事前調査 ドラフト リファインメント 校正 • 原文の慣用句や比 喩表現を特定 • 課題の事前把握 • 翻訳戦略を立案 • 最終チェック • 誤字脱字の修正 • 文法的誤りの確認 • 正確性と流暢さの 最終確認
  8. © 2024 Loglass Inc. 9 • 自然な表現に修 正 • 文法,語彙,構文を

    改善 • 翻訳言語らしい表 現に調整 翻訳プロセスを「事前調査」「ドラフト」「リファインメント」「校正」の4段階に分解 Zero-shot翻訳と比較して、各ステップで翻訳品質が段階的に向上 • 事前調査を基に下 訳を作成 • 正確性重視 • 原文の意味を忠実 に反映 (再掲)翻訳タスクを複数のステップでこなすことで品質が上がる Translating Step-by-Step: Decomposing the Translation Process for Improved Translation Quality of Long-Form Texts 事前調査 ドラフト リファインメント 校正 • 原文の慣用句や比 喩表現を特定 • 課題の事前把握 • 翻訳戦略を立案 • 最終チェック • 誤字脱字の修正 • 文法的誤りの確認 • 正確性と流暢さの 最終確認 翻訳を段階的に行う LLMワークフローで翻訳品質が向上
  9. © 2024 Loglass Inc. 10 LLMエージェントデザインパターンの意義 モデルやツールの進化に依存しない共通パターンを理解する • モデルやツールの状況は日進月歩で変化している •

    半年前はGPT-4o miniも、LangGraphも存在していない • 抽象的な共通パターンの理解は比較的長期で適用可能な知見 • 直近のLLMエージェントの研究/実装も、本スライドで紹介するAgentic Design Patternで捉 えることで理解を深めるなど
  10. © 2024 Loglass Inc. 12 Agentic Workflow / LLMエージェント構築の4つのデザインパターン •

    Andrew Ng氏が提唱 • Agentic Workflow / LLMエージェントに共通で見られるパターン、構造を整理 • Reflection、Tool Use、Planning、Multi-agent collaborationの4つに分類 Reflection Tool Use Multi-agent Planning
  11. © 2024 Loglass Inc. 13 Reflection: 自己改善プロセス • LLMが自身の出力を批評的に検証・評価するプロセス •

    シンプルながら、出力品質を大幅に改善可能 • 自動化された自己改善メカニズム 簡単な例は、プログラム生成において実行エラーを提供しそれを元にコードを改善 初期出力生成 自己評価・批評 出力の改善・修正 フィードバック生成
  12. © 2024 Loglass Inc. 14 Reflectionの実装例 • 良質なフィードバックを生成できるか、フィードバックを改善に繋げられるか 名称 アプローチ

    特徴 Self-Refine 単一LLMによる自己改善の反復的プロセス • 自身の出力に対するフィードバック生成 • フィードバックに基づく出力の改善 • 単一モデルで完結する設計 Reflexion メモリーと自己反省機能を活用した改善プロ セス • 言語的フィードバックの生成 • 長期記憶への保存機能 • 次回試行での改善に活用 CRITIC 外部ツールとの対話による検証・改善サイク ル • 外部ツールとの連携による検証 • LLM単体の限界を補完 • 多角的な出力評価が可能 紹介する事例・研究は Agentic Design Pattern登場当時に言及されていた、少し昔の研究・実装
  13. © 2024 Loglass Inc. 15 Tool Use: LLMの能力拡張のためのツール活用 出力の改善・修正 フィードバック生成

    • 外部ツールの呼び出しによるLLMエージェントのケイパビリティ拡張 • タスクに適したツールを自律的に選択 • 情報収集・アクション実行・データ操作等が可能に 最も簡易な例は、Web検索ツールの利用
  14. © 2024 Loglass Inc. 16 Tool Useの実装例 • 何のツールを選定して、どのLLMにどのツールを、いつ使わせるか 名称

    アプローチ 特徴 Toolformer APIコール生成の自己学習 Few-shotベースの学習 • API呼び出しのタイミング学習 • 適切な引数の自動生成 • 有用なAPIコールの選別 Gorilla APIコールに特化 検索システムとの連携 • 高精度なAPI選択 • 適切なコード生成 • APIドキュメント更新対応 • GPT-4超えの精度実現 紹介する事例・研究は Agentic Design Pattern登場当時に言及されていた、少し昔の研究・実装
  15. © 2024 Loglass Inc. 17 Planning: 目標達成のための多段階計画の立案・実行 出力の改善・修正 フィードバック生成 •

    複雑なタスクの自律的な分割と計画立案 • 動的なサブタスク生成と実行順序の決定
  16. © 2024 Loglass Inc. 18 Planningの実装例 • 計画立案を自律的に行えば行うほど複雑度が増し、コントロールが難しい側面も 名称 アプローチ

    特徴 Plan-and-S olve Plan段階でのタスク分割 Solve段階での順次実行 • 2段階プロンプティング • 段階的な問題解決 HuggingG PT 複数モデルの連携 タスク依存関係の分析 • 最適モデルの選択 • 複雑タスクの分解 BabyAGI マルチエージェント方式 反復的なタスク生成 • タスク優先順位付け • 動的なタスク管理 紹介する事例・研究は Agentic Design Pattern登場当時に言及されていた、少し昔の研究・実装
  17. © 2024 Loglass Inc. 19 • 複数LLMエージェントの協調による問題解決 • 専門性を活かした役割分担 •

    単一エージェントを超える解決能力 Multi-agent collaboration: 複数AIの協調によるタスク解決
  18. © 2024 Loglass Inc. 20 Multi-agent collaborationの実装例 • 役割分担とエージェント間のコミュニケーション設計 名称

    アプローチ 特徴 ChatDev 開発プロセスに特化 Chat Chainによる対話型協調 フェーズごとの役割分担 • ロール別マルチエージェント • CEO、CTO、プログラマー、テスター MetaGPT SOPsベースの協調 Pub/Subメカニズム 役割別スキーマ定義 • 専門的役割を持つエージェント群 • 標準化された作業手順 • フィードバックメカニズム API-Bank 段階的データ生成 専門エージェントの連携 品質チェック機能 • ドメインエージェント • APIエージェント • クエリ/実行エージェント • テストエージェント 紹介する事例・研究は Agentic Design Pattern登場当時に言及されていた、少し昔の研究・実装
  19. © 2024 Loglass Inc. 21 Agentic Design Patternの使い方 • 登場直後はOSS/論文でも1,2つ程度のパターンが確認できるものが多かった印象

    • 今となってはこの4つだけでは分類/整理しきれない ◦ 濃淡はあれどAgentic Design Patternが確認できない方が珍しい(感想) • シンプルな形でも使いやすいのはReflection、Tool Use • Planningは強力だが、初手から意図せず挙動を生み出す可能性も高い • Multi Agentはエージェント数、役割分担の差配で制御の難易度が変化 ◦ エージェント間の連携方法にも設計差分が生まれる印象 ▪ 単に出力をそのまま渡すのではなく、YAML,XMLを用いて独自仕様の構造化ドキュ メント、pub-subに近い仕組みの導入 ▪ LangChainが公開したAgent Protocolのように標準仕様の登場の可能性も
  20. © 2024 Loglass Inc. 23 Sakana.aiのAIサイエンティスト • アイデア創出から論文執筆まで自動化 • 1論文あたり約15ドルで生成可能

    • アイディア生成、実験、論文執筆の3フェーズ Idea Generation(アイデア生 成) • LLMによるアイデア・計画の革新 • Semantic Scholarによる新規性確認 • アイデアのスコアリングとアーカイブ Experiment Iteration(実験実 行) • 実験テンプレートの活用 • LLM & aiderによるコード生成 • 実験の実行と結果収集、反復 Paper Write-Up(論文執筆) • 論文テンプレートの活用 • 論文の執筆と改訂 • LLMによる論文レビュー 「AIサイエンティスト」: AIが自ら研究する時代へ
  21. © 2024 Loglass Inc. 24 Sakana.aiのAIサイエンティストに見るAgentic Design Pattern デザインパターン毎にざっくり見てみる •

    研究アイデアの自 己評価 • 実験結果の分析と 改善提案 • 論文の品質チェッ クと修正 • Semantic Scholar APIによる文献調査 • Aiderによるコード 生成と実行 • LaTeXコンパイラの 活用 • 研究計画の段階 的な立案 • 実験の優先順位 付け • 執筆者と査読者の 役割分担 • 複数の視点からの 品質評価 Reflection Tool Use Planning Multi-Agent 「AIサイエンティスト」: AIが自ら研究する時代へ
  22. © 2024 Loglass Inc. 25 Sakana.aiのAIサイエンティストに見るAgentic Design Pattern フェーズ毎にざっくり見てみる •

    Reflection: アイデアの自己 評価 • Tool Use: Semantic Scholar APIの活用 • Planning: 研究計画の立案と 検証 • Tool Use: Aiderによるコード 生成と実行 • Reflection: 実験結果の分析 と改善 • Planning: 実験の優先順位 付け • Multi-Agent: 執筆者と査読 者の分離 • Reflection: 論文の品質 チェック • Tool Use: LaTeXコンパイラ の活用 Idea Generation Experiment Iteration Paper Write-Up 「AIサイエンティスト」: AIが自ら研究する時代へ
  23. © 2024 Loglass Inc. 26 Sakana.aiのAIサイエンティストに見るAgentic Design Pattern デザインパターンの組み合わせ 結果の分析に基づく計画の改善:

    実験結果を振り返り、次のステップを効率的に計画する Reflection + Planning ツールを活用した役割の分担と連携: 各エージェントが専門ツールを活用し、より高度な作業をこなす Tool Use + Multi-Agent 複数エージェントによる効率的な実行: 実験・執筆・レビューの各フェーズを専門エージェントが担当 エージェント間の連携を考慮した実行計画 Planning + Multi-Agent 「AIサイエンティスト」: AIが自ら研究する時代へ
  24. © 2024 Loglass Inc. 27 MicrosoftのMagentic-One マルチエージェントの協調による複雑なタスクの解決 汎用的な問題解決能力を持つチームベースアプローチ リーダーエージェントによるタスク分析 エージェント構成の決定

    実行計画の立案とリソース配分 Task Planning Task Execution Result Integration 専門エージェントによる並列処理 エージェント間の協調と情報共有 進捗モニタリングと計画調整 各エージェントの結果統合 品質評価と最適化 最終アウトプットの生成 Magentic-One: A Generalist Multi-Agent System for Solving Complex Tasks
  25. © 2024 Loglass Inc. 29 AI Agentic Design Patterns with

    AutoGen AutoGenでAgentic Design Patternsを実装する学習コース AI Agentic Design Patterns with AutoGen
  26. © 2024 Loglass Inc. 30 Agent Design Pattern Catalogue •

    Agent Design Pattern Catalogue: A Collection of Architectural Patterns for Foundation Model based Agents • AIエージェントの設計に役立つ18のデザインパターンを紹介、より具体的
  27. © 2024 Loglass Inc. 31 AFlow: Automating Agentic Workflow Generation

    • モンテカルロ木探索を用いてLLMワークフローの自動生成 • コードで表現されたノードとエッジ、オペレーターで構成 ◦ オペレーター: 事前定義されたノードの組み合わせ。一般的なエージェント操作 (例: アン サンブル、レビュー) をカプセル化 -> AIエージェントを生成するAIエージェント、 Automated Design of Agentic Systemsも AFlow: Automating Agentic Workflow Generation
  28. © 2024 Loglass Inc. 32 Agent as a Judge •

    LLM as a Judgeに着想を得た、Agentを評価するAgentの提案 • 「LLM-as-a-Judgeよりも優れたパフォーマンスを発揮し、人間の評価ベースラインと同等の 信頼性があることを確認」 -> LLM as a JudgeのLLM部分を、Agenticに 作ればもっと性能が良くなるのではない? Agent-as-a-Judge: Evaluate Agents with Agents
  29. © 2024 Loglass Inc. 34 まとめ • 細かな名称/定義は違えど、単一のプロンプトではなく、Agenticなワークフローを用いるケー スは、これからもさらに増加するだろう •

    LLMエージェント、Agentic Workflowのデザインパターンとして、Agentic Design Patternを 紹介 ◦ 別のパターンや学習コンテンツも紹介 • 言語/フレームワークに依存しないため、組み合わせ、設計を考える際の参考に • Agentic Workflowの自動生成/チューニングも濃淡はあれど遅かれ早かれやってくる ◦ 評価/データセットの整備はその時にも生きそう
  30. © 2024 Loglass Inc. 35 Appendix • LangChain - Agent

    architectures • Large Language Model-Based Agents for Software Engineering: A Survey ◦ ソフトウェアエンジニアリング領域のLLMエージェントの研究のサーベイ • LLMエージェントのデザインパターン、Agentic Design Patternsを理解する ◦ 本スライドの元となった記事