Slide 1

Slide 1 text

LLMマルチエージェントの フローエンジニアリングを支える LLM Ops 2024.09.21 #serverlessjp

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 LLMによるメッセージサジェスト機能の効果 ユーザーからの返信数・割合 返信ありの件数 返信なしの件数 返信ありの件数 返信なしの件数 LLMのサジェストをそのまま投稿 薬剤師が1から作成して投稿 ユーザーからの返信速度 LLMのサジェストをそのまま投稿したメッセージに対するユーザーの返信速度 薬剤師が1から作成して投稿したメッセージに対するユーザーの返信速度

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

(C)PharmaX Inc. 2024 All Rights Reserve 14 各フェーズで構造的には同様のフローエンジニアリングを定義している ② ③ ④ YOJOにおけるフローエンジニアリング ③ ③ ② ④ ② ④ ② ④

Slide 15

Slide 15 text

(C)PharmaX Inc. 2024 All Rights Reserve 15 各フェーズのイメージ 漢方提案前確認フェーズ 漢方提案フェーズ YOJOでは、初回購入までの流れを複数のフェーズに分けて考えることができる 共感フェーズ 購入案内フェーズ

Slide 16

Slide 16 text

(C)PharmaX Inc. 2024 All Rights Reserve 16 各フェーズで構造的には同様のフローエンジニアリングを定義している ② ③ ④ YOJOにおけるフローエンジニアリング ③ ③ ② ④ ② ④ ② ④

Slide 17

Slide 17 text

(C)PharmaX Inc. 2024 All Rights Reserve 17 各フェーズで構造的には同様のフローエンジニアリングを定義している ② ③ ④ YOJOにおけるフローエンジニアリング ③ ③ ② ④ ② ④ ② ④ フェーズごとに会話のパターンや対応マニュアルが異なる = 同様のエージェントでもプロンプトは異なる

Slide 18

Slide 18 text

(C)PharmaX Inc. 2024 All Rights Reserve 18 LangGraphを使用することでLLMのグラフ構造を簡単に構築できる LangGraphによるフローエンジニアリングの実現 https://langchain-ai.github.io/langgraph/tutorials/plan-and-execute/plan-and-execute/

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

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 フローエンジニアリングによる処理系の設計 フローエンジニアリングを活用したデザイン フローエンジニアリングでは、タスクを分割しエージェントを組合わせて最終的な目的を達成する 単一の巨大プロンプトを活用したデザイン

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

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 評価タスクも複数の評価項目に分割する 評価タスクも1つの評価項目を担うエージェントを組み合わせる方が精度が高く、改善しやすい プロンプト 質問内容が、どの程度下記のユーザーへの質問 内容の方針に従っているかで0〜100点でscore を付けてください。 ## 減点のルール 基準を100点とし、以下に該当する場合は減点方 式でスコアをつけること 1. すでに聞いている内容を再度質問をしている 場合、50点減点 2. 日本語的に質問内容が不明な質問をしている 場合、50点減点 … 6. 回答例を併記せずに、ユーザーが回答に迷い そうな抽象度の高い質問をしている場合、20点減 点 評価⑥ 評価② 評価① 評価①用 エージェント 評価⑥用 エージェント 評価②用 エージェント ・ ・ ・ 評価タスク ※ 複数項目のうち1つでも ※ 当てはまる場合はNG ※ のような評価であれば ※ 分ける必要はないだろう 評価項目に分解する 評価タスク①

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

(C)PharmaX Inc. 2024 All Rights Reserve 29 管理画面上に実験用ボタンを配置し、本番データでプロンプトを実験 改善中のプロンプト を呼び出し出力を 目視でも確認

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

(C)PharmaX Inc. 2024 All Rights Reserve 31 評価とはなにか?なぜ評価が必要なのか ● AIの評価とは、AIの出力結果の”良し悪し”を定量的・定性的に判断すること ● 分類問題や回帰問題などであれば、単純に正答率や誤差を評価すればいい ● 一方で自由度の高いLLMの出力の評価は、分類問題などとは異なり、正解が 1つに定まるわけ でないので難しい ○ 例えば、「日本で一番高い山は?」という質問に「富士山」「富士山です」「富士山に決まってんだろー が!」「富士山。標高 3776.12 m。その優美な風貌は …(略)」と答えるのはどれも正解 ● LLMの出力を定量的に評価できれば、プロンプトやパラメータの変更前後で評価の平均点を比 べるというような統計的な比較も可能になる AIの評価に関するプラクティス自体は LLMの発展の前から存在していたが、 LLM特有の論点もある

Slide 32

Slide 32 text

(C)PharmaX Inc. 2024 All Rights Reserve 32 評価方法(タイミング)のパターン ● オフライン評価 ○ プロンプトを変更した際に事前に準備したデータセットに対して出力した結果を評価する ○ LLMアプリケーションであれば、プロンプトを変更したバージョンをリリースする前に事前評 価を行うよう ● オンライン評価 ○ LLM機能が実際に稼働した後、その結果を評価する ○ 実際の実ユーザーの反応で評価できるので、リアルな評価と言える 評価方法(タイミング)には、オフライン評価とオンライン評価の 2パターンある

Slide 33

Slide 33 text

(C)PharmaX Inc. 2024 All Rights Reserve 33 評価指標のパターン LLMアプリケーションの出力結果の評価という時にも、複数の評価指標を指すことがあるので注意 ● 期待するアウトプット(Grand Truth)と実際のアウトプットを比較してスコアリングする ○ 例えば、2つの文字列間の距離をembedding distanceやlevenshtein distanceでスコ アリングする ● LLMエージェントの出力の妥当性をLLMでスコアリング(合格/不合格判定)する LLM-as-a-Judgeも有効 ○ 特に信頼性担保の観点からは下記のような観点に注意する ■ 真実性、安全性、公平性、堅牢性、プライバシー、機械倫理 ○ 上記のような一般的な観点だけではなく、下記のようなアプリケーション独自の観点でも評 価する必要がある ■ 自社の回答のライティングマニュアルに従っているか ■ (VTuberなどが)キャラクター設定に合っているか

Slide 34

Slide 34 text

(C)PharmaX Inc. 2024 All Rights Reserve 34 LLM-as-a-Judgeの必要性 LLMアプリケーションの出力結果を LLMで評価することをLLM-as-a-Judgeという ● LLMの出力を人が評価するのは、工数・コスト・速度の観点から限界があるので、 LLMにLLMの 出力を評価をさせようというアイディア ○ 人で評価する場合、異なる評価者の間で評価基準を一致させるのは難しいが、 LLMなら 可能 ○ LLMであればプロンプトを作り込めば、専門家にしかできない評価も高精度にさせることが できる

Slide 35

Slide 35 text

(C)PharmaX Inc. 2024 All Rights Reserve 35 評価用のプロンプトのイメージ LLMからのメッセージ提案を評価させるためのプロンプトを定義し、 LLMにLLMの評価をさせる System あなた(assistant)には、別のassistant(chat-assistant)のメッ セージを評価していただきます。 ## chat-assistantの前提 chat-assistantの役割は、PharmaX株式会社のYOJOという サービスのかかりつけ薬剤師です。健康や漢方の専門家とし て、常にユーザーの感情に寄り添いアドバイスをします。 ...(略) User chat-assistantの最後の返答がどの程度下記の文章作成マニュ アルに従っているかで0〜100点のスコアを付けて下さい ## 文章のライティング方針 ・丁寧に対応する ・謝罪では絵文字を使わずに、文章だけで表現する ・難しい漢字はひらがなで書く ・細かい説明は箇条書きで書く ...(略) 評価用プロンプト

Slide 36

Slide 36 text

(C)PharmaX Inc. 2024 All Rights Reserve 36 プロンプトの変更前後での 評価スコアの変化をモニタリング LLM-as-a-Judgeでの評価結果を可視化して比較 各LLM-as-a-Judgeのスコアを可視化することで、プロンプト変更による改善の可否を判断する

Slide 37

Slide 37 text

37 (C)PharmaX Inc. 2024 All Rights Reserve リリース後 フローエンジニアリングのトレース

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

(C)PharmaX Inc. 2024 All Rights Reserve 43 LangSmithによるトレーシング rule1 ① ② ③ ④ ⑤ ・・・ rule2 ④ ⑤ rule1 rule2 rule3 rule4 rule5 ①

Slide 44

Slide 44 text

(C)PharmaX Inc. 2024 All Rights Reserve 44 LangSmithによるトレーシング rule1 ① ② ③ ④ ⑤ ・・・ rule2 ④ ⑤ ② model_name xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx パラメータ 使用したprompt

Slide 45

Slide 45 text

(C)PharmaX Inc. 2024 All Rights Reserve 45 LangSmithによるトレーシング rule1 ① ② ③ ④ ⑤ ・・・ rule2 ④ ⑤ xxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx どんなoutputだったか どんなinputのときに ②

Slide 46

Slide 46 text

(C)PharmaX Inc. 2024 All Rights Reserve 46 LangSmithによるプロンプト管理 xxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx version管理 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx

Slide 47

Slide 47 text

(C)PharmaX Inc. 2024 All Rights Reserve 47 ● LangGraphとLangSmithを使うことで、グラフ構造のまま処理の過程が記録されるため、どこ でどのような出力がされて、どこで処理が終了したのかが一目瞭然 ○ ルールベース処理のようなLLMではない処理も記録することが可能 ○ どのRunにどのプロンプトが使用されていたのか?ということも分かる ● プロンプトやパラメータのバージョン管理も LangSmith上で行うことで、どのバージョンのときに どのような出力だったのかを後から確認することができる(=実験管理) ○ 開発者以外も含む複数人でプロンプト等を変更できるため、高速で PDCAを回すことが可 能になる ○ 後述するオンライン評価でもどのタイミングでプロンプトやパラメータを変更したかを確認で きることは重要 LangSmithによるトレース管理と実験管理 LangGraphとLangSmithを活用することでフローエンジニアリングの処理の可視化と実験管理を実現

Slide 48

Slide 48 text

48 (C)PharmaX Inc. 2024 All Rights Reserve リリース後 オンライン評価

Slide 49

Slide 49 text

(C)PharmaX Inc. 2024 All Rights Reserve 49 LLMアプリケーションのオンライン評価 ● LLMアプリケーションでは、実際にどの程度ユーザーに ”役立ったのか”やどの程度”ビジネス上 の数値を向上させたのか”を評価すべき ○ 例えば、 ・薬剤師の返信速度がどの程度速まったり、どの程度購入率が向上したか ・薬剤師の生産性をどの程度高め、どの程度人件費が減少したか というビジネス指標までを最終的には評価する必要がある ● 一方で、KPIとなるビジネス指標への影響は様々な要因が混ざり合う上に、評価できるまでの時 間軸も長くなるので、現実的にはその手前の評価軸でも評価する必要がある ○ 例えば、出力結果がマニュアルなどに沿っているかか、医学的に間違っていないかといっ た実際のユースケースに照らし合わせた妥当性を LLM-as-a-Judgeで評価 ○ 例えば、ユーザーの返信率などの実際の反応で評価 リリース後のオンライン評価では様々な観点で LLMアプリケーションの”有用性”を評価する必要がある

Slide 50

Slide 50 text

(C)PharmaX Inc. 2024 All Rights Reserve 50 プロンプトの変更前後での 評価スコアの変化をモニタリング LLM-as-a-Judgeでの評価結果を日次で可視化 各LLM-as-a-Judgeのスコアを可視化することで、プロンプト変更による改善の可否を判断する

Slide 51

Slide 51 text

(C)PharmaX Inc. 2024 All Rights Reserve 51 アノテーションすることで本番環境での正答率も測定 xxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 正解・不正解 /良し悪し を人手でチェック LangSmithのAnnotation Queuesに蓄積して正解・不正解をチェックすることで正答率が測定できる

Slide 52

Slide 52 text

(C)PharmaX Inc. 2024 All Rights Reserve 52 実際のユーザーの反応でも評価する ユーザーからの返信数・割合 返信ありの件数 返信なしの件数 返信ありの件数 返信なしの件数 LLMのサジェストをそのまま投稿 薬剤師が1から作成して投稿 ユーザーからの返信速度 LLMのサジェストをそのまま投稿したメッセージに対するユーザーの返信速度 薬剤師が1から作成して投稿したメッセージに対するユーザーの返信速度

Slide 53

Slide 53 text

53 (C)PharmaX Inc. 2024 All Rights Reserve リリース後 データセットの運用と継続的改善

Slide 54

Slide 54 text

(C)PharmaX Inc. 2024 All Rights Reserve 54 本番でのLLMの出力をアノテーションしてデータセットに蓄積 xxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx LangSmithのAnnotation Queuesに蓄積してアノテーションしたデータをデータセットとして蓄積 修正する必要があれば修 正してデータセットに追加

Slide 55

Slide 55 text

(C)PharmaX Inc. 2024 All Rights Reserve 55 データセットに蓄積 LangSmith上で蓄積したデータセットは下記のように見ることができる inputと(あるべき )outputのセット

Slide 56

Slide 56 text

(C)PharmaX Inc. 2024 All Rights Reserve 56 データセットに対して新プロンプトやモデルで評価を実施 データセットに対して新プロンプトやモデルで評価を実施して改善が見られたらリリースする experiment13 experiment12 experiment11 experiment10 experiment9 experiment7 experiment6 LLM-as-a-Judge1 LLM-as-a-Judge2 LLM-as-a-Judge1 LLM-as-a-Judge Grand Truthとの距離

Slide 57

Slide 57 text

(C)PharmaX Inc. 2024 All Rights Reserve 57 主要エージェントをファインチューニングし精度向上&コスト削減 蓄積したデータセットを用いて GPT-4o-miniなどの安価なモデルをファインチューニング データセットを upload Base modelはgpt-4o-mini

Slide 58

Slide 58 text

(C)PharmaX Inc. 2024 All Rights Reserve 58 ファインチューニングしたモデルでもデータセットに対して評価を実施 ファインチューニング用に使ったデータと評価用のデータを分けて評価を実施 experiment6 experiment13 experiment12 experiment11 experiment10 experiment9 experiment7 LLM-as-a-Judge1 LLM-as-a-Judge2 LLM-as-a-Judge1 fine-tuned model 評価指標が向上

Slide 59

Slide 59 text

(C)PharmaX Inc. 2024 All Rights Reserve 59 ファインチューニングしたモデルのコスト削減効果 gpt-4o-2024-08-06 
 $2.50 / 1M input tokens 
 $10.00 / 1M output tokens 
 gpt-4o-2024-05-13 
 $5.00 / 1M input tokens 
 $15.00 / 1M output tokens 
 gpt-4o-mini 
 $0.150 / 1M input tokens 
 $0.600 / 1M output tokens 
 fine-tuned gpt-4o-mini 
 $0.30 / 1M input tokens 
 $1.20 / 1M output token 
 ファインチューニングすることで劇的にコストを下げることができる 約1/10

Slide 60

Slide 60 text

(C)PharmaX Inc. 2024 All Rights Reserve 60 主要エージェントをファインチューニングし精度向上&コスト削減 ① ② ④ ● ①ルールベースでLLM処理可能かを 判定 ● ②LLMで会話を分類しLLM処理可能 かを判定 ● ③LLMで次のフェーズに移るべきかど うかを判定 ● ④LLMでメッセージを作成 ● ⑤LLMで作成されたメッセージを評価 (LLM-as-a-Judge)し、一定の水準を 下回ったら再生成して、クリアしたもの のみをサジェストする ③ ⑤ 精度向上 コスト削減 精度向上 コスト削減 ②, ④:fine-tuned GPT-4o-mini ③, ⑤:GPT-4o

Slide 61

Slide 61 text

61 (C)PharmaX Inc. 2024 All Rights Reserve まとめ

Slide 62

Slide 62 text

(C)PharmaX Inc. 2024 All Rights Reserve 62 LLMによる成果まとめ LLMマルチエージェントによるチャットのサジェスト &自動送信で劇的なビジネス上の成果を上げた ● ユーザーからの返信率が15%向上し、返信速度は1/8になった ○ こちらからの返信速度が向上したことにより、テンポよく会話できるようになったのではない か ● 会話の離脱率が減少したことで、初回の購入率が 1.3倍になった ● ファインチューニングによる(精度向上 &)コスト削減で1メッセージ数円を実現 ○ 時給1,000円の人がメッセージ作成に2分かければ約33円 ○ フローエンジニアリングはコスト高ではあるが、 1メッセージあたりのコストは 2024年1月50円(GMT-4 Turbo) → 2024年6月10円(GPT-4o) → 2024年9月5円(GPT-4o-miniのfine-tuning導入) のように推移

Slide 63

Slide 63 text

(C)PharmaX Inc. 2024 All Rights Reserve 63 LLM Opsまとめ ● LLMアプリケーションのリリース前には本番データで実験することでプロンプトエンジニアリング とフローエンジニアリングの設計を行っている ○ オフライン評価としてLLM-as-a-Judgeを導入している ● LangSmithによる実験管理とトレースの可視化を行っている ● オンライン評価として、LLM-as-a-Judgeによる評価、ユーザーの返信率や返信速度、最終的な ビジネス指標として購入率や継続率まで日次・モニタリングしている ● 本番での出力結果をLangSmithでアノテーションすることで、本番での出力の正答率を評価す るだけではなく、データセットを蓄積することでオフライン評価、ファインチューニングに活用して いる LLMアプリケーションのライフサイクルを管理し、継続的な改善ループを回し続けている

Slide 64

Slide 64 text

64 (C)PharmaX Inc. 2024 All Rights Reserve Appendix

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

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

Slide 69

Slide 69 text

(C)PharmaX Inc. 2024 All Rights Reserve 69 まとめ マルチエージェントLLMチャットボットの精度 &レスポンス速度向上戦略についてお話した ● LLMチャットボットでも精度と速度を高次元で両立させることは重要 ○ YOJOの例では、ユーザーからの返信率・返信速度、購入率が明確に向上した ● フローエンジニアリングを実践することで、精度は向上するが、処理系全体のレスポンス速度は 遅くなってしまう可能性がある ● 投機的な並列処理を行うことで処理時間を短縮することができる ○ 投機的な処理を行うことで、コストは割高になるので、リリース後にデータセットを収集し、 一部の処理のML化、あるいは安価のモデルのfine-tuningを行うことでコストダウンも狙 う