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

AutoGenで作るLLM Agen

peisuke
November 30, 2023

AutoGenで作るLLM Agen

Azure OpenAI Service 生成AI実践知発表資料

peisuke

November 30, 2023
Tweet

More Decks by peisuke

Other Decks in Technology

Transcript

  1. Keisuke Fujimoto (Labs)
    AutoGenで作るLLM Agent

    View full-size slide

  2. 自己紹介

    2
    所属:ABEJA Labs

    テーマ:ビジョン、音声、NLP、ロボット


    SNS

     X (Twitter):@peisuke

     Github:https://github.com/peisuke

     note:https://note.com/peisuke 


    View full-size slide

  3. ● LLMとLLM Agent


    ● AutoGenについて


    ● AutoGenでできること

    本日のテーマ

    3

    View full-size slide

  4. Agentとは?

    4
    ● 強化学習にも出てくる、「エー
    ジェント」

    ● 結果を出力するだけのMLと異
    なり、環境内で行動したり操作を
    することが特徴


    ● 囲碁や将棋では・・・

    ○ (1) 盤面を観測、(2) 次の手を
    考え、(3) 打つ


    View full-size slide

  5. ● LLMに対し、(1) 目的を達成するプロセス案を提示させ、(2) 各プロセスの処理の
    InputをLLMによって生成・処理を行い、(3) これを逐次的に実行

    ○ LLMをChatBotだけではなく、プロセス案生成やクエリ生成に利用

    LLM Agentについて

    5
    今流行っているお
    笑い芸人の動画
    を見たい
    STEP1: 最近の流行りの芸
    人を検索
    STEP2: 代表的な作品名
    をピックアップ
    STEP3: 動画ユーザーに
    提示
    検索モジュールの出力した結果:
    [XXXX、XXXX、XXXX]
    LLMで生成した検索クエリ:
    [2023年 お笑い芸人 流行]
    クエリを利用し、外
    部の検索APIを利

    LLMで手順を生成し、プ
    ログラムで読み込む

    View full-size slide

  6. ● ユーザーがやりたいことを言うとLLMがそれを全部やってくれちゃう仕組み


    要するに・・・

    6
    社内データを分
    析したい
    プログラムを作っ
    て欲しい
    動画を作って
    XXXについての
    情報を集めて

    View full-size slide

  7. ChatGPTでも使われているAgentの仕組み

    7
    画像解析が必要なら・・・

    コードの実行が必要なら・・・

    ファイルの読み込みが

    必要なら

    GPT-4V
    画像を描きたい場合は

    質問を投げる

    どの機能を使う
    かを考える


    View full-size slide

  8. マルチエージェントの仕組み

    8
    質問を投げる

    調査します

    ソースコードを
    作ります

    結果を整理しま
    す


    View full-size slide

  9. 世の中の色々なAgent

    9
    ● プログラムの自動開発の仕組み

    ● それぞれのキャラクターが、問題を解くAgentとして行
    動

    ● 全体を統括するCTO、開発をするエンジニア、テストを
    するテスターなどのAgentが存在

    ● 利用者が指示したゴールに基づき、要件定義〜開
    発〜テスト〜納品を行い、制作物を出力


    View full-size slide

  10. ● AutoGPT

    世の中の色々なAgent

    10

    View full-size slide

  11. ● Voyager:マインクラフトにおいて、次にどんなアクションをするかをLLMを用いて決
    定、アクションをゲーム側に伝えて動かす

    世の中の色々なAgent

    11

    View full-size slide

  12. ● LangChain

    ○ 様々な種類のAgentが利用可能


    ● Llama Index

    ○ Data AgentにAgentの仕組みが実装


    ● AutoGen

    ○ MicrosoftのAgentに特化したライブラリ

    ○ 柔軟な仕組みを構築できる

    Agentを作るためのライブラリ

    12

    View full-size slide

  13. ● AutoGen: Microsoftが提供しているOSS

    ○ AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent
    Conversation, preprint: 2308.08155, arxiv

    AutoGenの紹介

    13

    View full-size slide

  14. AutoGenの紹介

    14

    View full-size slide

  15. AutoGenを使ってできること

    15

    View full-size slide

  16. AutoGenのプログラム例

    16

    View full-size slide

  17. AutoGenのプログラム例

    17

    View full-size slide

  18. AutoGenのプログラム例

    18

    View full-size slide

  19. AutoGenのプログラム例

    19

    View full-size slide

  20. ● Agentの構成例

    AutoGenの簡単な原理

    20

    View full-size slide

  21. ● 各Agentが通信する流れ

    ○ generate_replyで各Agentがレスポンスを他のエージェントに出力

    AutoGenの簡単な原理

    21

    View full-size slide

  22. ● Azure OpenAI APIとOpenAI APIでの切り替えが容易

    AutoGenをAzureで動かしてみよう!

    22

    View full-size slide

  23. AutoGenの色々なパターン

    23

    View full-size slide

  24. ● プログラムを実行

    ○ FizzBuzzのコードを書かせて実行させてみる

    色々できる、AutoGen

    24

    View full-size slide

  25. ● RAG + AutoGen

    ○ 検索して回答が得られなかったら、自動で再検索

    ○ 回答結果が、英語になってしまった場合も日本語で出力

    色々できる、AutoGen

    25
    Retrieve
    判定
    再Retrieve
    判定
    終了
    再Retrieve 終了
    Retrieve
    回答生成
    Retriever
    Agent
    Agent 回答
    質問
    仮にここが英語
    でも・・・
    ここで日本語で
    出力される
    Function Calling

    View full-size slide

  26. ● プログラムのマニュアルに基づいてコードを実行

    ○ Optunaのマニュアルを読ませて、パラメータ最適化のコードを実行させた
    例

    色々できる、AutoGen

    26

    View full-size slide

  27. ● GroupChatという機能を用いて沢山の種類のエージェントを連携

    色々できる、AutoGen

    27
    様々な役割を持つエージェントを連携
    (例)
    ● プランナー
    ● コーダー
    ● 分析者
    ● 調査者

    View full-size slide

  28. 標準では文字を表示するだけで、サービスに組み込めない

    AutoGenをサービスに組み込むために

    28
    文字を表示するメソッドを継承し、履歴を残すカスタムクラスを作成


    View full-size slide

  29. 状態を持っているため、Azure Functions等のサービスに利用できない

    AutoGenをサービスに組み込むために

    29
    内部状態のロード/セーブの機構を追加で開発


    View full-size slide


  30. LLM単独の汎用性ではできないことも多い中、Agentの仕組みで将来的には色ん
    な作業が自動化されていく


    まずは、AutoGenを使うことにより、非常に面白いことができそう!

    まとめ

    30

    View full-size slide