Slide 1

Slide 1 text

LLMマルチエージェントの アプリケーション設計のコツと未来 2024.11.06 # pharmax_tech_collabo

Slide 2

Slide 2 text

(C)PharmaX Inc. 2024 All Rights Reserve 2 自己紹介 上野彰大 PharmaX共同創業者・エンジニアリング責任者 好きな料理はオムライスと白湯とコーラ マイブームはLLMとRust X:@ueeeeniki

Slide 3

Slide 3 text

(C)PharmaX Inc. 2024 All Rights Reserve 3 自社としては LLMを中心に勉強会を月 1回程度開催 自己紹介

Slide 4

Slide 4 text

(C)PharmaX Inc. 2024 All Rights Reserve 4 個人でも勉強会コミュニティ StudyCoも運営 自己紹介

Slide 5

Slide 5 text

(C)PharmaX Inc. 2024 All Rights Reserve 5 医療アドバイザーに体調 のことをいつでも気軽に相 談できる 相談型医療体験 30種類以上の漢方薬からあ なたに合ったものを月毎に 提案 パーソナライズ漢方薬 定期的に漢方をお届けし、 一人ひとりに寄り添うかか りつけ医療を提供 継続的なかかりつけ 一生涯にわたって寄り添うかかりつけ漢方薬局「 YOJO」

Slide 6

Slide 6 text

(C)PharmaX Inc. 2024 All Rights Reserve 6 患者向けチャットシステムと薬剤師向け管理画面を自作 患者とのスムーズなコミュニケーション 薬剤師向け管理画面 チャット形式での診断・相談・購入 患者向けチャットシステム

Slide 7

Slide 7 text

(C)PharmaX Inc. 2024 All Rights Reserve 7 技術スタック 生成AIはLangChainエコシステムに全面的に乗っかっている フロントエンド バックエンド BI 生成AI インフラストラクチャー その他

Slide 8

Slide 8 text

(C)PharmaX Inc. 2024 All Rights Reserve 8 今回対象とするアプリケーション ● ユーザーからのメッセージを受信したタイミングで LLMによる返信のサジェストが作られ、一部の メッセージは自動送信&必要があれば薬剤師が確認・修正して送る ○ 自動で送る場合は当然精度が重要 ○ サジェストされる場合も、そのまま送信することができれば、返信速度が速くなる&生産性が 高くなるので精度が高いことはやはり重要 ● 管理画面上でボタンを押す(ショートカットキーをタイプする)ことでもチャットがサジェストされる 薬剤師にチャットの返答をサジェッションするために LLMを活用している

Slide 9

Slide 9 text

(C)PharmaX Inc. 2024 All Rights Reserve 9 今回対象とするアプリケーション

Slide 10

Slide 10 text

(C)PharmaX Inc. 2024 All Rights Reserve 10 YOJOにおけるフローエンジニアリング ① ② ④ ● ①ルールベースでLLM処理可能かを 判定 ● ②LLMで会話を分類しLLM処理可能 かを判定 ● ③LLMで次のフェーズに移るべきかど うかを判定 ● ④LLMでメッセージを作成 ● ⑤LLMで作成されたメッセージを評価 (LLM-as-a-Judge)し、一定の水準を 下回ったら再生成して、クリアしたもの のみをサジェストする 現時点では精度高く メッセージ提案できない ため薬剤師が対応 ③ ⑤ ※②〜⑤: GPT-4o

Slide 11

Slide 11 text

(C)PharmaX Inc. 2024 All Rights Reserve 11 フローエンジニアリングの概要とメリット・デメリット YOJOではフローエンジニアリングを実践することで、高性能なメッセージのサジェストを実現している ● 特定のタスクに特化したプロンプトを与えられた LLMプログラムをエージェントと呼ぶ( 1プロンプ ト1エージェント) ● 小さなエージェントを組み合わせることで処理系全体を実現することをフローエンジニアリングと 呼び、処理系全体の精度を向上させることができる ● エージェントのタスクを小さくすることでプロンプトの肥大化を避け、保守性を向上させることもで きる ○ 巨大なプロンプトは変更の影響をコントロールできなくなっていく ● 一方で、最終的な出力までに複数の処理が行われるため、処理系全体のレスポンス速度は遅く なる&コスト高になる傾向にある

Slide 12

Slide 12 text

(C)PharmaX Inc. 2024 All Rights Reserve 12 LangGraphで実際に構築したグラフ ルール1 ルール2 LLM-メッセージ作成 _ 分類4 LLM-会話分類 LLM-メッセージ作成 _ 分類1 LLM-メッセージ作成 _ 分類2 LLM-メッセージ作成 _ 分類3 LLM-フェーズ切替 LangGraphで作成したグラフはmermaidで出力しテストにも使用している

Slide 13

Slide 13 text

(C)PharmaX Inc. 2024 All Rights Reserve 13 LangSmithによるトレーシング rule1 ① ② ③ ④ ⑤ ・・・ rule2 ④ ⑤ ① ② ④ ③ ⑤ ※②〜⑤: GPT-4o

Slide 14

Slide 14 text

(C)PharmaX Inc. 2024 All Rights Reserve 14 CloudRunをフル活用したインフラ構成 LangGraph環境はCloudRunに載せてバックエンド APIサーバーとgRPCで通信 DBには read only gRPCで通信

Slide 15

Slide 15 text

15 (C)PharmaX Inc. 2024 All Rights Reserve フローエンジニアリングの設計のコツ

Slide 16

Slide 16 text

(C)PharmaX Inc. 2024 All Rights Reserve 16 フローエンジニアリングを活用したデザイン フローエンジニアリングによる処理系の設計 フローエンジニアリングでは、タスクを分割しエージェントを組合わせて最終的な目的を達成する 単一の巨大プロンプトを活用したデザイン

Slide 17

Slide 17 text

(C)PharmaX Inc. 2024 All Rights Reserve 17 単一の巨大プロンプトのイメージ 1つのエージェントに多くのタスクを任せる方式は、プロンプトの肥大化を招く ## 質問分類のルール ### 労務系 有給や休暇などの就業規則に関わる質問は労務として扱う ーーーー ### 人事系 社内の教育制度、採用活動などに関わる質問は人事として扱う (略) ーーーーーーーーーーーーーーー ## 回答作成のルール ### 労務系の質問への回答のルール ①〇〇 ②□□ ③△△ ーーーー ### 人事系の質問への回答のルール ①〇〇 ②□□ (略)

Slide 18

Slide 18 text

(C)PharmaX Inc. 2024 All Rights Reserve 18 単一の巨大プロンプトの分割 1つのプロンプトで行おうとしている複数のタスクを分割することができるはず ## 質問分類のルール ### 労務系 有給や休暇などの就業規則に関わる質問は労務として扱う ーーーー ### 人事系 社内の教育制度、採用活動などに関わる質問は人事として扱う (略) ーーーーーーーーーーーーーーー ## 回答作成のルール ### 労務系の質問への回答のルール ①〇〇 ②□□ ③△△ ーーーー ### 人事系の質問への回答のルール ①〇〇 ②□□ (略) ①質問分類 質問回答作 成 ②労務系質問回答作 成 ③人事系質問回答作 成

Slide 19

Slide 19 text

(C)PharmaX Inc. 2024 All Rights Reserve 19 フローエンジニアリングの設計のコツと未来 フローエンジニアリングの設計にはプロンプトエンジニアリング力とソフトウェア設計力の両方が必要 ● まずは大きなタスク単位からプロンプトエンジニアリングを行い、精度が出ないと感じたら適切な 単位に分割する ○ フローエンジニアリングは実装コストも大きいので、無理して分割しすぎないようにしている ● データセットを使ってプロンプトエンジニアリングを行いながら ○ 正答率の評価が可能なものは人手で正答率を評価 ○ メッセージ作成のような正答率の評価が難しいものは、 LLM-as-a-Judgeでの評価+目視 での定性的な評価も行う ● 精度向上はリリース後にも可能なので、この時点では精度向上に拘泥しすぎない

Slide 20

Slide 20 text

(C)PharmaX Inc. 2024 All Rights Reserve 20 マルチエージェントは不要になるか ● LLMがより賢くになれば、1エージェントで複数のタスクをこなせるようになるとは予想している ○ (CoTのように)途中のタスクの結果も出力することができれば、原理的には複数のタスク をこなすことは決して不可能ではない ● 一方で、複雑なフローのルールを言語化するのは難しいため、 many-shotが必要になり、あま りに複雑なタスクを任せすぎると組み合わせが膨大になる ○ many-shotによる精度向上と、ロングコンテキストによる管理負荷の増大 &精度低下、マ ルチエージェントによる実装コストの増加のバランスで LLMが賢くなればエージェント数を減らすことはできるが、フローエンジニアリングの発想は今後も有用

Slide 21

Slide 21 text

21 (C)PharmaX Inc. 2024 All Rights Reserve レスポンス速度向上のための工夫

Slide 22

Slide 22 text

(C)PharmaX Inc. 2024 All Rights Reserve 22 チャットアプリケーションにおける返信速度の重要性 ● LINEで薬剤師が返答するというサービスの特性上、数分〜 10分程度の待ち時間は許容される と考えていた ○ アンケートでも返信速度に対する不満は多くはなかった ● 実際には、LLMのサジェスト機能を導入して返信速度が早くなった結果、ユーザーからの返信 率・返信速度、さらには購入率までもが向上した ○ 感覚的には、ユーザーは10秒以内でLINEを閉じず、30秒以内でスマホを閉じないという 境界があるのではないか? ○ レスポンス速度の担保の重要性を悟った チャットアプリケーションでは、 LLMを活用して返信速度を向上できればポジティブな影響がある

Slide 23

Slide 23 text

(C)PharmaX Inc. 2024 All Rights Reserve 23 投機的な並列実行による処理時間の短縮 処理結果が無駄になることを許容して投機的に実行することで、処理時間を短縮することができる ①

Slide 24

Slide 24 text

(C)PharmaX Inc. 2024 All Rights Reserve 24 投機的な並列実行による処理時間の短縮 処理結果が無駄になることを許容して投機的に実行することで、処理時間を短縮することができる ① ②

Slide 25

Slide 25 text

(C)PharmaX Inc. 2024 All Rights Reserve 25 投機的な並列実行による処理時間の短縮 処理結果が無駄になることを許容して投機的に実行することで、処理時間を短縮することができる 作成した回答は捨てる ① ② ③

Slide 26

Slide 26 text

(C)PharmaX Inc. 2024 All Rights Reserve 26 まとめ マルチエージェントLLMチャットボットの設計のコツと未来 &速度向上戦略について話した ● LLMアプリケーションでは精度とレスポンス速度を高次元で両立させることは重要 ● フローエンジニアリングを実践することで、精度は向上するが、処理系全体のレスポンス速度は 遅くなってしまう可能性がある ● LLMが賢くなればエージェント数を減らすことはできるが、フローエンジニアリングの発想は今後 も有用 ● 投機的な並列処理を行うことで処理時間を短縮することができる ○ 投機的な処理を行うことで、コストは割高になるので、リリース後にデータセットを収集し、 一部の処理のML化、あるいは安価のモデルのfine-tuningを行うことでコストダウンも狙 う