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

LLMアプリにエージェントらしさを組み込む/Build LLM Apps Agentically

LLMアプリにエージェントらしさを組み込む/Build LLM Apps Agentically

吉田真吾

July 11, 2024
Tweet

More Decks by 吉田真吾

Other Decks in Technology

Transcript

  1. A Survey of Large Language Models https://arxiv.org/abs/2303.18223 特定のタスクの 補助 典型的な自然言語

    処理タスクの解決 文脈を考慮した 様々なタスク解決 現実世界のタスクの 汎用的解決 統計的手法の活用 ニューラルネットワークの 導入 事前学習モデルの登場 汎用性の獲得と プロンプトベースの生成
  2. サイダス(HRTech SaaS)での構築事例 【アプリケーション】 1. HR FAQ チャットサービス 課題:17,000人→人事への問い合わせ 解決法:FAQと問合せ履歴をRAGでチャット化 2.

    社員情報検索サービス 課題:500種類以上の属性の検索条件指定+複数 APIの使いこなし 解決法:Function Callingで自然言語による問合 せ検索を可能に 3. Job Description Generator 課題:ジョブディスクリプションの作成の手間 解決法:職種と現有社員のプロファイルを参考 に自動生成 【PJ推進】 工数:2名(BizDev 0.5M + Frontend 0.5M) 1. ディスカバリ工程 ◦ ユーザーと対話・ニーズ把握 2. PoC 各1週間 ◦ 達成基準の明確化 3. ベータ提供 +1ヶ月 ◦ ユーザーFB・UX改善 ◦ 利用する技術の入替え ◦ 評価データセットの作成 4. 公式リリース +3ヶ月 ◦ セキュリティレビュー ◦ CI/CDパイプライン整備 ◦ 社内マニュアル整備
  3. おおむね便利です 文書生成AI 画像生成AI 音声生成AI 適当に話した内容を整理してまとめてく れる/検討中のイシューの相談に乗って くれる/論文要約をしてくれる/あらゆ る言語で書かれた文献を翻訳してくれる 絵が描けなくても「こんな絵を描いて」 とお願いするだけで、その絵を生成して

    くれる/何度でもリテイクできる/生成 される映像のクオリティはプロ並に高い 人間と同じような音声を生成してくれる /アナウンサー、声優に頼まなくても無 限に読み上げ原稿を生成できる/無限に リテイクできる/プロ並に読み上げ可能
  4. 課題1:プロンプトを使いこなすのが大変 (Ultrarealistic:1. 3), (Award Winning Photo:1. 3), a man stands

    near a massive lonely magic (glowing tree:1. 3) in the middle of the snow field, (branches radiated a soft warm glow:1. 3), full moon, winter night, deep snow everywhere, (otherworldly glow:1. 2), (on a background of starry night:1. 3), masterpiece, (realism:1. 2), high contrast, (photorealism digital art:1. 3), Intricate, 8k HD high definition detailed, HDR, hyper detailed, best quality, (Photorealism:1. 3), (Vivid:1. 3), (Highly Detailed:1. 3), ((raytracing)), ((cinematic lighting)), (trending on Artstation:1. 3), <lora:add_detail:1> <lora:t3xtn:0. 4> <lora:galaxy_gods:0. 5> あなたは、プロンプトエンジニアです。 あなたの目標は、私のニーズに合わせて最高のプロンプトを作成することです。そのプロン プトは、ChatGPTで使用されるものです。 次のプロセスに従ってください。 1. まず最初に、何についてのプロンプトであるかを私に確認してください。 私が質問の答えを提供するので、次のステップを経て、継続的な反復を通じて改善してくだ さい。 2. 私の入力に基づいて、3つのセクションを生成します。 a) 改訂されたプロンプト(書き直したプロンプトを提示してください。明確、簡潔で、簡 単にあなたが理解できるものしてください) b) 提案(プロンプトを改善するために、プロンプトを含めるべき詳細について提案してく ださい) c) 質問(プロンプトを改善するために必要な追加情報について、関連する質問をしてくだ い) 3. この反復プロセスは、私があなたに追加情報を提供し、あなたが改訂されたプロンプトセ クションのプロンプトを更新し、私が完了したというまで続けます。 望みのプロンプトを生成してくれる
  5. 生成AIによって変化する ビジネスモデルについて レポートして ユーザー AIエージェント プログラムコードの生成/実行 インターネットや データベースからの情報収集 大規模言語モデルによる思考 ファイルの読み込み/書き出し

    アウトプットとなる 成果物 生成AIによって変化する ビジネスモデルは以下の 通りです... 人間は ミッション or タスク を与える ミッション達成に 向けて自律的に行動 成果を アウトプットする
  6. タスク分解 カレーライスをつくる 下準備 調理 仕上げ つくるカレーのレシピを決める レシピに必要な材料をリストアップする 必要な材料を購入する 必要な調理器具を準備する 野菜を洗い、皮をむく

    野菜を切る 肉を一口大にカットし、下味をつける 鍋に火をかけて温める 油を鍋にひき、温まったら玉ねぎを炒める 玉ねぎを透明になるまで炒めたら、肉を加えて炒める 肉の色が変わったら、他の野菜を加えてさらに炒める 指定の量の水を加え、沸騰させる 水が沸騰したらカレー粉を加え、次にトマトピューレを加える 火を弱めて蓋をし、40分間煮込む 最終的な味の確認(味を見て、足りない調味料を加える) カレーとご飯を皿に盛り付ける お米を洗い、炊飯器にセットする
  7. MRKL Systems: A modular, neuro-symbolic architecture that combines large language

    models, external knowledge sources and discrete reasoning (2022.5) • MRKLのアーキテクチャ ◦ 小規模で特殊な言語モデルや数学計算、通貨変換、データベー スなどへの接続APIをモジュールとして構成し、LLMによって 入力を最適なモジュールにルーティングする構成とし、最新情 報や独自の知識を出力に利用したり、複雑な入力に対して多段 階に処理をおこなうことで、専門性の高い出力を処理できるよ うになる • Jurassic-X (MRKLを実装したシステム) ◦ 実際に複雑な質問に対して外部知識や計算処理をおこなった結 果を多数評価 → 現在も試験運用中 https://arxiv.org/abs/2205.00445
  8. ReAct: Synergizing Reasoning and Acting in Language Models (2022.10) •

    ReAct (Reasoning and Acting) ◦ 大規模言語モデル (LLM) の推論能力と行動生成能力を組み合わせたアプローチ ◦ タスクに関連する推論と行動を交互に生成することで、両者の相乗効果を引き出すことが可能 • Reasoning(推論トレース)工程について ◦ 行動計画の作成、維持、調整をおこなう (reason to act) • Acting(行動)工程について ◦ 外部環境 (例: Wikipedia) とのインタラクションを通じて、推論に必要な追加情報を取り込んだ り、目的の外部実行をおこなう (act to reason) https://arxiv.org/abs/2210.03629
  9. ReAct: Synergizing Reasoning and Acting in Language Models (2022.10) •

    検証パターン a. Reasonなし、Actなし b. Reasonのみ c. Actのみ d. Reasonあり、Actあり (ReAct) • Apple Remoteのほかに、Apple Remoteがもともと相互作用するよう に設計されたプログラムを制御できる デバイスはありますか? →ReActのみ正解 https://arxiv.org/abs/2210.03629
  10. ReAct: Synergizing Reasoning and Acting in Language Models (2022.10) •

    検証パターン a. Actのみ b. Reasonあり、Actあり (ReAct) • ALFWorld:テキストベースによる 周辺環境認識の評価フレームワーク 行動(Act)→観察(Obs)→…を繰り返 してReActは引き出し1に胡椒入れを 格納成功 https://arxiv.org/abs/2210.03629
  11. Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models

    (2023.5) • LLMに「計画を立てて(タスクをサブタスクに分割して)から、計画に従ってサ ブタスクを実行してください」と指示する手法 https://arxiv.org/abs/2305.04091 Zero-shot-CoT Plan-and-Solve
  12. An LLM Compiler for Parallel Function Calling (2023.12) • 計画したサブタスクの依存関係を整理して、並列でアクションを実行

    https://arxiv.org/abs/2312.04511 • ReActより1.8倍高速 • LlamaIndexやLangGraphで実装済み・利用可能
  13. その他 • DB-GPT: Empowering Database Interactions with Private Large Language

    Models (2023.12) ◦ データベースとのやり取りにおいて、SQLなどの構造化クエリ言語ではなく、LLMによる自然 言語インターフェースが期待されているが、LLMでどのようにデータベース操作し、アプリケ ーションを構築するかが課題 ◦ フレームワークとして「RAG」「適応学習メカニズム」「サービス指向マルチモデルフレーム ワーク(SMMF)」「データ駆動型エージェント」を用いてText-to-SQLタスクとRAGメカニ ズムのQAパフォーマンスを評価 ◦ ほとんどの評価指標で競合アプローチを上回る https://github.com/eosphoros-ai/DB-GPT
  14. 評価フレームワークはSpiderかBIRD-SQL The Dawn of Natural Language to SQL: Are We

    Fully Ready? https://arxiv.org/html/2406.01265v1 Spider 2018〜(LLM版は2023.2〜) https://yale-lily.github.io/spider 10,181 questions and 5,693 unique complex SQL queries on 200 databases with multiple tables covering 138 different domains. • イェール大の学生がアノテートした データセット • 派生版が多く存在 • 1.0版は2024.2から停止中、2.0待ち BIRD-SQL 2023.5〜 https://bird-bench.github.io/ 12,751 unique question-SQL pairs, 95 big databases with a total size of 33.4 GB. It also covers more than 37 professional domains, • Spiderほど有名じゃないが、より現実 を反映している
  15. CHESS: Contextual Harnessing for Efficient SQL Synthesis CHESS: Contextual Harnessing

    for Efficient SQL Synthesis https://arxiv.org/html/2405.16755v1 1. キーワードの抽出 2. 関連性の高いデータとそのカラム情 報をRetrieveする 3. テーブルとカラムを選定する 4. 候補を生成する 5. 修正する
  16. Code Generation with AlphaCodium: From Prompt Engineering to Flow Engineering

    コード生成タスクにおいて、段階的循環的フローで生成した結果が一貫して 単一の最適化プロンプトの結果を上回った。 https://arxiv.org/abs/2401.08500 初版: 2024/1/16 【前処理を行う】 • 問題の目的・入力・出力・制約条件などを箇条書きで 整理する • Public Tests(回答検証用のテスト)を用意する • 複数の回答(コードではなくテキストのアルゴリズ ム)を生成する • PublicTestsを検証する(各テストケースの入力と出力 の関係を説明する • AIテストを生成する(Public Testsではカバーされてい ないケースや側面を考慮する) 【反復する】 • コードベースの回答を生成する • 回答をPublic Testsで試す • エラーが発生した場合は修正を行う(繰り返し) • AIテストを使用して更に反復して洗練する ※競技プログラミングの問題を元に設計され、性能が検証されているため、実用のソフトウェア開発などにおける有用性は別途確認が必要。
  17. MAGIS: LLM-Based Multi-Agent Framework for GitHub Issue Resolution (2024.3) •

    GitHubのイシュー解決は複雑な課題である。その理由は、新しいコードの導入と既存機能の 維持どちらも重要なため。 • LLMはリポジトリレベルでのコード変更には課題があると考えられてきた →LLMがGitHubのイシューを解決できない理由と影響要因を実証的に研究し、分析した https://arxiv.org/abs/2403.17927v1 ▪計画フェーズ 1. リポジトリカストディ アンエージェント 2. マネージャーエージェ ント →キックオフミーティングで開 発計画 ▪コーディングフェーズ 3. 開発者エージェント 4. QAエンジニアエージ ェント →レビューとマージ GPT-4の8倍のイシュー解決率‼
  18. Self-Organized Agents: A LLM Multi-Agent Framework toward Ultra Large-Scale Code

    Generation and Optimization https://arxiv.org/abs/2404.02183 初版: 2024/4/2 複数のエージェントに協力させ、大規模で複雑なコードを生成 (および改善)を行う方法を提案。各エージェントが扱うコード の量を一定に保ちつつ、問題の複雑さに応じてエージェントを自 動的に増殖させることで、生成されるコード全体を理論的には無 限に拡張できるとしている。 主要コンポーネントは(1)Child agentと(2)Mother agent (1)Child agent - 与えられた関数のdocstringに基づいて実装を行う。 - LLMとメモリを持ち、コードの生成と改変を行う。 - Mother agentの状態を観察し、その情報を使って自律的にコードを改善する。 (2)Mother agent - Child agentと同様に、docstringに基づいて関数を独立して実装する。 - 問題の複雑さに応じて複数のChild agentを生成し、実装の一部をこれらのエージェ ントに委譲する。 - 抽象的なプロセスの実装に集中し、生成されたChild agentは具体的なプロセスの実 装を担当する。 また、プロセスは(A)コード生成と(B)コード改変にフェーズ分けされる (A)コード生成プロセス - エージェント間の階層的な組み合わせによって、単一の大規模なコードベースが効 果的に構築される。 (B)コード改変フェーズ - すべてのエージェントの実装が組み合わされ、最終的な実装が作成される。 - フィードバックがルートのMother agentから生成され、Child agentに伝播される。
  19. その他 / マルチエージェントによる協調動作フレームワーク • HuggingGPT: Solving AI Tasks with ChatGPT

    and its Friends in Hugging Face (2023.3) https://github.com/microsoft/JARVIS • Generative Agents: Interactive Simulacra of Human Behavior (2023.4) https://github.com/joonspk- research/generative_agents • CAMEL: Communicative Agents for "Mind" Exploration of Large Language Model Society (2023.5) https://github.com/camel-ai/camel • Communicative Agents for Software Development (2023.7) https://github.com/OpenBMB/ChatDev • AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation (2023.8) https://github.com/microsoft/autogen • AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors (2023.8) https://github.com/OpenBMB/AgentVerse • MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework (2023.8) https://github.com/geekan/MetaGPT
  20. Generative Agents, Inc. AWS Serverless Heroとして日本におけるサーバーレスの普 及を促進。 「ChatGPT/LangChainによるチャットシステム構築[実 践]入門」(技術評論社)共著、「Azure OpenAI

    Serviceで はじめるChatGPT/LLMシステム構築入門」(技術評論社) 共著、「AWSによるサーバーレスアーキテクチャ」(翔泳 社)監修、「サーバーレスシングルページアプリケーショ ン」(オライリー)監訳、「AWSエキスパート養成読本」 (技術評論社)共著。 ChatGPT Community(JP)主催 大規模言語モデルを組み込んだアプリケーションやAIエージ ェントの開発を実施。 個人ではエンジニア向けの勉強会開催や教材作成など。オン ラインコースUdemyではベストセラー講座多数。 「ChatGPT/LangChainによるチャットシステム構築[実 践]入門」(技術評論社)共著。 勉強会コミュニティStudyCo運営。 事業会社の顧問CTOとして活動するソフトウェア開発のスペ シャリスト。AIエージェントを経営に導入することにより、 あらゆる業種業態の生産性を高めるための活動に尽力してい る。 「その仕事、AIエージェントがやっておきました。 ――ChatGPTの次に来る自律型AI革命」(技術評論社)単 著、Software Design「実践LLMアプリケーション開発」 (技術評論社)連載。 西見 公宏(にしみ まさひろ) 吉田 真吾(よしだ しんご) 大嶋 勇樹(おおしま ゆうき) 代表取締役CEO / Founder 取締役COO / Co-founder 取締役CTO / Co-founder
  21. 会社情報 会社名 株式会社ジェネラティブエージェンツ (英文:Generative Agents, Inc.) 役員構成 CEO 西見 公宏

    COO 吉田 真吾 CTO 大嶋 勇樹 設立年月 2024年3月14日 事業内容 AIエージェントによるBPaaSの提供/生成AIを活用し たソフトウェア開発/技術顧問、AIエージェントに関 わるコミュニティ運営、法人向けコンサルティング AIエージェントによるBPaaSの提供 複雑な業務管理を自律的におこなうLLMエージェントサービスを提供しま す。独自のワークフローエンジンと複数プロフィールを設定したマルチエ ージェントシステムが御社のワークフォースとして業務を遂行します。 生成AIを活用したソフトウェア開発支援 AIエージェントの開発技術をコアに、生成AIを活用したソフトウェア開発 をレンタルCAIO(最高AI責任者)として支援します。 法人向けメンバーシップの提供 キャッチアップの難しいAIエージェント活用のリサーチ・事例・プロダク ト情報を提供します。AIエージェントの活用を考えている企業同士のネッ トワーキングもサポートすることで、日本におけるAIエージェント活用を 積極的に後押しします。 AIエージェント研究コミュニティの提供 AIエージェントに興味関心のある個人に向けて、学びあえるコミュニティ を提供します。