Slide 1

Slide 1 text

LLMチャットアプリケーション・アーキテ クチャの工夫 2024.06.19 # pharmax_tech_collabo

Slide 2

Slide 2 text

(C)PharmaX Inc. 2024 All Rights Reserve 2 自己紹介 上野彰大 PharmaX共同創業者・エンジニアリング責任者 好きな料理はオムライスと白湯とコーラ 登壇前にやることは入念なストレッチです X:@ueeeeniki

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

4 (C)PharmaX Inc. 2024 All Rights Reserve はじめに

Slide 5

Slide 5 text

(C)PharmaX Inc. 2024 All Rights Reserve 5 本発表のスコープや注意事項について PharmaXのLLMアプリケーションで取り組んで来たことや今後の展望をお話します ● PharmaXで取り組んできたこと、今後のどのようなことをやっていきたいのかについて中心にお 話します ○ 個人的な感想や考えを多分に含みます ● マルチエージェントLLMアプリケーションのベストプラクティスが出揃っておらず、今回お話する 内容をどの程度取り入れるかは皆さまでご判断いただければと幸いです ● できる限りPharmaXでのリアルな事例や実験結果をお伝えしますが、より詳しく聞きたい方やお 困りごとについて議論したい方は是非 DM等いただければ幸いです

Slide 6

Slide 6 text

6 (C)PharmaX Inc. 2024 All Rights Reserve PharmaXのプロダクトの簡単な説明

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

(C)PharmaX Inc. 2024 All Rights Reserve 9 薬剤師の意思でメッセージを(再)提案させることも可能 「作成可」ボタンを押すと再度提案サジェストされる ユーザーからのメッセージを受信すると 自動で作成され、薬剤師がユーザーとの トーク画面に入った時にはすでに メッセージ欄に作成されている

Slide 10

Slide 10 text

10 (C)PharmaX Inc. 2024 All Rights Reserve LLMマルチエージェントによる チャットアプリケーションの構成

Slide 11

Slide 11 text

(C)PharmaX Inc. 2024 All Rights Reserve 11 対応フェーズの切り替えも LLMが行い、フェーズごとに異なるエージェントがメッセージ提案を行う マルチエージェントによる チャットアプリケーションの概念図

Slide 12

Slide 12 text

(C)PharmaX Inc. 2024 All Rights Reserve 12 対応フェーズの切り替えも LLMが行い、フェーズごとに異なるエージェントがメッセージ提案を行う マルチエージェントによる チャットアプリケーションの概念図 1エージェント 1プロンプト

Slide 13

Slide 13 text

(C)PharmaX Inc. 2024 All Rights Reserve 13 対応フェーズの切り替えも LLMが行い、フェーズごとに異なるエージェントがメッセージ提案を行う マルチエージェントによる チャットアプリケーションの概念図

Slide 14

Slide 14 text

(C)PharmaX Inc. 2024 All Rights Reserve 14 会話内容分類エージェント まず会話内容の分類用のエージェントを通して、一部の話題のみエージェントがメッセージを自動提案 確率は低いが現時点では 精度高くメッセージ提案 できないため、最初から 薬剤師が対応 LLMがメッセージ提案

Slide 15

Slide 15 text

(C)PharmaX Inc. 2024 All Rights Reserve 15 User 会話分類プロンプトのイメージ まず会話内容の分類するルールと few-shotを与えて、会話内容のタイプ(複数回答可)を分類させる メッセージ作成用プロンプト System あなた(assistant)は、ユーザーから受信したメッセージ内容を もとに、会話内容がどの分類にあたるのかを判定してください。 ...(略)… ・会話内容のタイプは、下記のA〜Nの14分類の中から複数選 択されることもあります。配列形式で、分類名(A~Nの記号)をカ ンマ区切りで返してください。 ・userとchat-assistantとの会話の流れは以下の通りです。直近 の会話だけを抜き出します。 ーーー {会話の流れ} ーーーーーーーーーーーーーーー 漢方提案前確認のチャットを送るべきかどうか判定してください。 条件を元にJSON形式で、{ "reason": {判断理由}, "会話内容タ イプ": [{タイプの配列}]}を返してください。

Slide 16

Slide 16 text

(C)PharmaX Inc. 2024 All Rights Reserve 16 対応フェーズの切り替えも LLMが行い、フェーズごとに異なるエージェントがメッセージ提案を行う マルチエージェントによる チャットアプリケーションの概念図

Slide 17

Slide 17 text

(C)PharmaX Inc. 2024 All Rights Reserve 17 フェーズ切替えエージェントの役割 漢方提案前確認フェーズ フェーズ切替えエージェントは、フェーズ切替えメッセージを送るタイミングを判断する どのタイミングでフェーズ切り替え メッセージを送るべきかを判定 共感フェーズ 実際にメッセージが送られたら フェーズを切り替える

Slide 18

Slide 18 text

(C)PharmaX Inc. 2024 All Rights Reserve 18 対応フェーズの切り替えも LLMが行い、フェーズごとに異なるエージェントがメッセージ提案を行う マルチエージェントによる チャットアプリケーションの概念図

Slide 19

Slide 19 text

(C)PharmaX Inc. 2024 All Rights Reserve 19 様々な観点で LLMの出力結果の評価を記録 サジェストが生成されたタイミング、薬剤師が実際に文章を送ったタイミングでそれぞれ評価し記録 様々な観点で評価

Slide 20

Slide 20 text

(C)PharmaX Inc. 2024 All Rights Reserve 20 共感フェーズのメッセージ提案部のフロー 次のフェーズへ

Slide 21

Slide 21 text

21 (C)PharmaX Inc. 2024 All Rights Reserve LLMエージェントの設計上の工夫

Slide 22

Slide 22 text

(C)PharmaX Inc. 2024 All Rights Reserve 22 共感フェーズのメッセージ提案部のフロー ① ② ③ ④ メッセージが提案されるまでに 4段階のLLM処理が実行されている

Slide 23

Slide 23 text

(C)PharmaX Inc. 2024 All Rights Reserve 23 LLMエージェントの設計上の工夫 ● メッセージ作成までに複数のLLM処理が行われるために実行時間が長く、 処理を実行しようとするときには状態が変わっている可能性があるので、 トランザクション管理を導入している ○ 処理を決定したときに本当に実行していいのかを再度確認し、処理して問題な いなら処理を実行する ● デバックしやすいように&精度向上のために会話分類や評価などの出力に reasonやその他プロパティを付与している ○ その分、レスポンスは遅くなってしまっている

Slide 24

Slide 24 text

(C)PharmaX Inc. 2024 All Rights Reserve 24 LLM処理のトランザクション管理 ①前処理 ②LLM処理 (APIの実行) ③後処理 LLMの処理 トランザクションを開始 LLMの処理結果を渡す トランザクションを完了 LLM モデル ● LLM処理を開始すべきか判定 ● トランザクション開始 …etc ● ルールベースの判定 ● 会話分類 ● フェーズ切替判定 ● メッセージ作成 …etc ● LLM処理の完了時アクションを 実行すべきかの判定 ● LLM処理のアクションを実行 ● トランザクション結果記録 …etc

Slide 25

Slide 25 text

(C)PharmaX Inc. 2024 All Rights Reserve 25 LLM処理のトランザクションのシーケンス図 ワーカー サーバー ワーカー サーバー 前処理 前処理 LLM処理 LLM処理 LLM API LLM API 後処理 DB 後処理 DB LLM処理の起動 トランザクション処理を開始すべきかの判定 LLMトランザクションを発行 LLM API 実行① LLM API 実行② ・ ・ ・ 処理結果と完了時のアクションを記録 LLM処理終了通知 完了時アクションを実行すべきか判定 完了時アクションの実行 トランザクション結果の記録

Slide 26

Slide 26 text

(C)PharmaX Inc. 2024 All Rights Reserve 26 LLM処理のトランザクションのシーケンス図 ワーカー サーバー ワーカー サーバー 前処理 前処理 LLM処理 LLM処理 LLM API LLM API 後処理 DB 後処理 DB LLM処理の起動 トランザクション処理を開始すべきかの判定 LLMトランザクションを発行 LLM API 実行① LLM API 実行② ・ ・ ・ 処理結果と完了時のアクションを記録 LLM処理終了通知 完了時アクションを実行すべきか判定 完了時アクションの実行 トランザクション結果の記録

Slide 27

Slide 27 text

(C)PharmaX Inc. 2024 All Rights Reserve 27 User 会話分類プロンプトのイメージ まず会話内容の分類するルールと few-shotを与えて、会話内容のタイプ(複数回答可)を分類させる メッセージ作成用プロンプト System あなた(assistant)は、ユーザーから受信したメッセージ内容を もとに、会話内容がどの分類にあたるのかを判定してください。 ...(略)… ・会話内容のタイプは、下記のA〜Nの14分類の中から複数選 択されることもあります。配列形式で、分類名(A~Nの記号)をカ ンマ区切りで返してください。 ・userとchat-assistantとの会話の流れは以下の通りです。直近 の会話だけを抜き出します。 ーーー {会話の流れ} ーーーーーーーーーーーーーーー 漢方提案前確認のチャットを送るべきかどうか判定してください。 条件を元にJSON形式で、{ "reason": {判断理由}, "会話内容タ イプ": [{タイプの配列}]}を返してください。

Slide 28

Slide 28 text

(C)PharmaX Inc. 2024 All Rights Reserve 28 フェーズ切替判定エージェントのプロンプトのイメージ 各フェーズ切替判定エージェントは、フェーズ切替メッセージを送るべきタイミングかどうかを判定する System あなた(assistant)には別のassistant(chat-assistant)が漢方 提案前確認のメッセージを送るべきかどうか判定していただき ます。 ...(略)… 信頼関係を構築するための会話をしたユーザーに対して、十分 状態を深ぼったと判断したら、「他になにか伝えておきたいこと はありませんか?問題なければ、おすすめの漢方薬をご提案さ せていただきます😊」という漢方提案前確認のチャットを送るべ きかどうか判定してください。 User ・userとchat-assistantとの会話の流れは以下の通りです。直近 の会話だけを抜き出します。 ーーー {会話の流れ} ーーーーーーーーーーーーーーー 漢方提案前確認のチャットを送るべきかどうか判定してください。 条件を元にJSON形式で、{"reason": {判断理由}, "判定結果": true or false }を返してください。 評価用プロンプト

Slide 29

Slide 29 text

29 (C)PharmaX Inc. 2024 All Rights Reserve 今後の展望

Slide 30

Slide 30 text

(C)PharmaX Inc. 2024 All Rights Reserve 30 ● 現状はほとんどの処理が直列でなされているので、できる限り処理を並列化するこ とによって処理時間を短縮する ○ 評価などの並列処理可能な処理を並列化する ○ (コストは高くなるが、)不要になる可能性があっても後続の処理を開始してお くことで、処理時間を短縮できる ● アウトプットをシンプルにすることで出力時間が短縮される ○ デバックはできなくなるが、処理を高速化するためにアウトプットをシンプル化 する ○ アウトプットが正しいかどうか正解ラベルを付与できる環境の整備もセットで行 う必要はあるが LLM処理の高速化 LLM処理の並列化と、アウトプットのシンプル化によって一連の LLM処理の高速化を実現する

Slide 31

Slide 31 text

(C)PharmaX Inc. 2024 All Rights Reserve 31 ● 評価や会話分類など、本来LLMでやる必要性のない教師あり学習の処理をML化 することで高速化 ○ MLにするにはデータ量が必要なので、アノテーションできる環境が必要 ○ LLMの良さは、学習データがなくとも、ルールを記述したりFew-shotすること で、人間と同じような判断ができること ■ その結果PDCAサイクルを回しやすいため初期的な検証では威力をを発 揮する ■ 一方で、教師あり学習の精度には限界がある&コストが高く&速度も遅 い 一部のLLM処理をML化することで高速化 教師あり学習で解決可能なタスクは ML化することによって高速化することも可能