$30 off During Our Annual Pro Sale. View Details »

LLMアプリケーションの評価の実践と課題 ~PharmaXにおける今後の展望~

LLMアプリケーションの評価の実践と課題 ~PharmaXにおける今後の展望~

PharmaXは、オンライン完結で医薬品を購入することが可能な薬局を運営するスタートアップです。
PharmaXでは、薬剤師がチャットする内容をLLMでサジェストするシステムを本番運用しています。

LLMで精度高くチャット内容をサジェストするために、チャット相手であるユーザーのステータスに合わせてLLMエージェントを切り替えていくというマルチエージェントの仕組みを取り入れています。

このマルチエージェントの精度を継続的に改善していくためには、評価を行うことが重要です。 PharmaXでは、LLM-as-a-Judgeと呼ばれる「LLMにLLMの出力を評価させる手法」を使って評価しています。

これまでもPharmaXの評価の運用については、下記のようにいくつかの記事やイベントで公開して来ました。

LLMアプリケーションの実験管理の運用をまとめてみた〜PromptLayerを使った本番運用〜
LLMアプリケーションの評価の運用についてまとめてみた
LLMの事前評価のシステムアーキテクチャを紹介します
LLMによるLLMの評価(LLM as a judge)の精度改善のための試行錯誤〜評価分割・モデル間比較
LLMによるLLMの評価(LLM as a judge)の精度改善のためのプロンプトエンジニアリング
本発表では、現時点でPharmaXでLLM as a judgeがどのように活用され、どのような課題感を感じているのか、そして、今後どのように発展させていきたいのかということを改めてまとめたいと思います。

More Decks by PharmaX(旧YOJO Technologies)開発チーム

Other Decks in Technology

Transcript

  1. (C)PharmaX Inc. 2023 All Rights Reserve 2 自己紹介 上野彰大 PharmaX共同創業者・エンジニアリング責任者

    好きな料理はオムライスと白湯とコーラ マイブームはLLMとRust X:@ueeeeniki
  2. (C)PharmaX Inc. 2023 All Rights Reserve 5 本発表のスコープや注意事項について LLMアプリケーションの実験管理と評価について取り組んで来たことや今後の展望をお話します •

    個人的に参考になった記事やPharmaXで取り組んできたこと、今後のどのようなことをやってい きたいのかについて中心にお話します ◦ 個人的な感想や考えを多分に含みます • LLMアプリケーションの実験管理や評価はまだベストプラクティスが出揃っておらず、今回お話 する内容が各社にどの程度取り入れ可能かは不明です ◦ 皆さまでご判断いただければと幸いです • できる限りPharmaXでのリアルな事例や実験結果をお伝えしますが、より詳しく聞きたい方やお 困りごとについて議論したい方は是非 DM等いただければ幸いです
  3. (C)PharmaX Inc. 2023 All Rights Reserve 6 前提とする知識 • LLMの基礎知識は説明しません

    ◦ AIのモデルについての基礎知識もあることが望ましい • 少しでもLLMを使ってアプリケーション開発した経験があることがあることが望ましい • できればLLMアプリケーションを本番運用した経験があるとより話の内容が想像つくと思います LLMのアプリケーション開発の多少の事前知識を仮定します
  4. (C)PharmaX Inc. 2023 All Rights Reserve 7 今回持ち帰っていただきたいこと • 実験管理と評価の基本を理解できる

    • LLMアプリケーションの”評価”と呼ばれるものにいろんなパターンがあることを理解できる • 評価の限界について理解できる 今回は下記のようなゴール設定でお話いたします
  5. (C)PharmaX Inc. 2023 All Rights Reserve 9 医療アドバイザーに体調 のことをいつでも気軽に相 談できる

    相談型医療体験 30種類以上の漢方薬からあ なたに合ったものを月毎に 提案 パーソナライズ漢方薬 定期的に漢方をお届けし、 一人ひとりに寄り添うかか りつけ医療を提供 継続的なかかりつけ 一生涯にわたって寄り添うかかりつけ漢方薬局「 YOJO」
  6. (C)PharmaX Inc. 2023 All Rights Reserve 10 ソフトウェアに閉じないプロダクト開発 独自の薬局オペレーションシステムを構築し、最適化されたオンライン薬局を実現 ×

    自社薬局をプロトタイプラボ化 ソフトウェア オペレーション リモート 薬剤師組織 薬局業務を効率化す るオペレーションシス テム(薬局OS) 質の高い患者さま対 応のためのオンライン 特化組織 対人業務の質を高め るための対物業務効 率化 「ソフトウェア×オペレーション×薬剤師組織」 をプロダクトとして開発
  7. (C)PharmaX Inc. 2023 All Rights Reserve 12 今回対象とするアプリケーション • ユーザーからのメッセージを受信したタイミングで

    LLMによる返信のサジェストが作られ、薬剤師 は必要があれば修正して送る ◦ サジェストされたメッセージをそのまま送ることができれば、返信速度が速くなる&生産性が 高くなるので理想 • 管理画面上でボタンを押す(ショートカットキーをタイプする)ことでもチャットがサジェストされる 薬剤師にチャットの返答をサジェッションするために LLMを活用している
  8. (C)PharmaX Inc. 2023 All Rights Reserve 15 User メッセージ作成プロンプトのイメージ プロンプトには薬剤師と同じようなメッセージ作成マニュアルが与えられている

    メッセージ作成 System 以下の条件に従って返信してください。 前提: ・あなたの役割は、PharmaX株式会社のYOJOというサービス のかかりつけ薬剤師です。健康や漢方の専門家として、常に ユーザーの感情に寄り添いアドバイスをします。 ...(略) 以下の指示に従って返信してください。 ## 制約条件 ・チャットをする時のルールを遵守する ・質問は1回につき1つとする(?を使うのは1回のチャットで1つの み) …(略)… 上記に気をつけながら、共感しつつ深掘り質問を行ってください。
  9. (C)PharmaX Inc. 2023 All Rights Reserve 17 評価用のプロンプトのイメージ LLMからのメッセージ提案を評価させるためのプロンプトを定義し、 LLMにLLMの評価をさせる

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

    • LLMの出力結果の”良し悪し”を定量的・定性的に判断することを評価という • 実験管理と評価をセットで行うことで、プロンプトやパラメータを変更したことで出力が良くなった のか悪くなったのかを判断することができる ◦ 評価と実験管理はセットで運用されることが望ましいが、実験管理すらないとパラメーターの変更履 歴が分からなくなるので、最低限実験管理から導入してみることはオススメ LLMアプリケーションの改善に必要なこと LLMアプリケーションを改善していくためには、特に実験管理と評価が必要
  11. (C)PharmaX Inc. 2023 All Rights Reserve 20 実験管理とはなにか?なぜ実験管理が必要なのか? • LLMに与えるプロンプトやパラメータの変更履歴と、プロンプトやパラメータの変更前後で出力が

    どのように変化したのかを管理することを実験管理という ◦ 事前に準備したデータセットと評価項目を使って評価することもできるが、ビジネス指標への影響の評 価はしばらく運用しないとわからないので、履歴管理(いつどのようにプロンプトを修正したのか)が必 要 ◦ もちろんやり方次第では ABテストのようなことも可能 • 実際のLLMアプリケーションの現場では、開発者以外もプロンプト等を変更できるようなアーキテ クチャを取ることができれば、複数人で高速で PDCAを回すことが可能になる ◦ 複数人でプロンプト等を変更するには、誰がいつどのような変更したのかを管理することの重要性が 増す 実験管理をすることで、パラメータを変更したことでどのような影響があったのかを振り返る事ができる
  12. (C)PharmaX Inc. 2023 All Rights Reserve 24 評価とはなにか?なぜ評価が必要なのか • AIの評価とは、AIの出力結果の”良し悪し”を定量的・定性的に判断すること

    • 分類問題や回帰問題などであれば、単純に正答率や誤差を評価すればいい • 一方でLLMの評価は、例えば、画像認識などの分類問題とは異なり、正解が 1つに定まるわけ でないので難しい ◦ 例えば、「日本で一番高い山は?」という質問に「富士山」「富士山です」「富士山に決まってんだろー が!」「富士山。標高 3776.12 m。その優美な風貌は …(略)」と答えるのはどれも正解 • LLMの出力を定量的に評価できれば、プロンプトやパラメータの変更前後で評価の平均点を比 べるというような統計的な比較も可能になる AIの評価に関するプラクティス自体は LLMの発展の前から存在していたが、 LLM特有の論点もある
  13. (C)PharmaX Inc. 2023 All Rights Reserve 25 • LLMの評価というときには、①事前学習した LLMのモデルそのものや②fine-tuningしたモデ

    ルの評価を指すこともあれば、③ LLMを使ったアプリケーションでの評価(プロンプトや RAGに フォーカス)を指すこともあるので注意が必要 ◦ ①では、そもそも様々な分野で日本語の質問に正しく答えられるか?と言ったことを評価する ▪ 例えば、医学的な問いに正しく答えれるか?というように特定のドメインを扱うことはある一方 で、特定のアプリケーションの評価ではない ◦ ②、③では、特定のユースケースで正しく答えられているか?と言ったことが問われている ▪ ②は特定のドメインに特化させてはいるが比較的一般的な知識を問うもの、特定のアプリケー ションのユースケースに特化させたもののどちらも言うことがある ▪ 特に③はプロンプトを工夫した場合や RAGでデータを与えた場合の出力が、特定のアプリケー ションの特定のユースケースで良い出力であるかが問われている • ③では、アプリケーション開発者がモデル内部のパラメータを変化させられるわけではないの で、プロンプトやtemperatureなどが評価するパラメータにあたる 評価とはなにか?なぜ評価が必要なのか LLMアプリケーションの評価というときには、①ではなく、②または③を指す
  14. (C)PharmaX Inc. 2023 All Rights Reserve 28 LLMアプリケーションの評価 • 特定のLLMアプリケーションでは、実際にどの程度ユーザーに

    ”役立ったのか”やどの程度”ビジ ネス上の数値を向上させたのか ”を評価すべき ◦ 例えば、 ・薬剤師の返信速度がどの程度速まったか、その結果、どの程度購入率が向上したか ・薬剤師の生産性をどの程度高めたか、その結果、どの程度人件費が減少したか というビジネス指標までを最終的には評価する必要がある • 一方で、KPIとなるビジネス指標への影響は様々な要因が混ざり合う上に、評価できるまでの時 間軸も長くなるので、現実的にはその手前の評価軸でも評価する必要がある ◦ 例えば、出力結果がマニュアルなどに沿っているかか、医学的に間違っていないかといった実際の ユースケースに照らし合わせた妥当性の観点で評価 ◦ 例えば、受入率(どの程度修正せずに受け入れられたか)などの観点で評価 ここではモデルそのものの評価ではなく、 LLMを使ったアプリケーションの評価について扱う
  15. (C)PharmaX Inc. 2023 All Rights Reserve 29 評価指標のパターン • LLMアプリケーションの出力結果の評価は、主に下記の

    2つのパターンがある ◦ 期待するアウトプット(Grand Truth)と実際のアウトプットを比較してスコアリングする ▪ 例えば、2つの文字列間の距離をembedding distanceやlevenshtein distance でスコアリングする ◦ 定義した評価基準に基づいて、システムの出力の妥当性をスコアリング(合格 /不合格を判 定)する • リリース後は、下記のような指標をモニタリングして分析することを評価ということもあるので注意 が必要 ◦ ユーザーによる直接的なフィードバック( Good / Badボタンの設置など) ◦ ユーザーの利用状況(クリック率や受入れ率など) ◦ レイテンシーなどの非機能要件的な指標 LLMアプリケーションの出力結果の評価という時にも、複数のものを指すことがあるので注意
  16. (C)PharmaX Inc. 2023 All Rights Reserve 30 評価指標のパターン • LLMアプリケーションの出力結果の評価は、主に下記の

    2つのパターンがある ◦ 期待するアウトプット(Grand Truth)と実際のアウトプットを比較してスコアリングする ▪ 例えば、2つの文字列間の距離をembedding distanceやlevenshtein distance でスコアリングする ◦ 定義した評価基準に基づいて、システムの出力の妥当性をスコアリング(合格 /不合格を判 定)する • リリース後は、下記のような指標をモニタリングして分析することを評価ということもあるので注意 が必要 ◦ ユーザーによる直接的なフィードバック( Good / Badボタンの設置など) ◦ ユーザーの利用状況(クリック率や受入れ率など) ◦ レイテンシーなどの非機能要件的な指標 ここではこれを評価と呼ぶ LLMアプリケーションの出力結果の評価という時にも、複数のものを指すことがあるので注意
  17. (C)PharmaX Inc. 2023 All Rights Reserve 31 評価指標のパターン • LLMアプリケーションの出力結果の評価は、主に下記の

    2つのパターンがある ◦ 期待するアウトプット(Grand Truth)と実際のアウトプットを比較してスコアリングする ▪ 例えば、2つの文字列間の距離をembedding distanceやlevenshtein distance でスコアリングする ◦ 定義した評価基準に基づいて、システムの出力の妥当性をスコアリング(合格 /不合格を判 定)する • リリース後は、下記のような指標をモニタリングして分析することを評価ということもあるので注意 が必要 ◦ ユーザーによる直接的なフィードバック( Good / Badボタンの設置など) ◦ ユーザーの利用状況(クリック率や受入れ率など) ◦ レイテンシーなどの非機能要件的な指標 LLM as a Judgeで扱う ここではこれを評価と呼ぶ LLMアプリケーションの出力結果の評価という時にも、複数のものを指すことがあるので注意
  18. (C)PharmaX Inc. 2023 All Rights Reserve 32 LLM as a

    Judgeの必要性 LLMアプリケーションの出力結果を LLMで評価することをLLM as a Judgeという • LLMの出力を人が評価するのは、工数・コスト・速度の観点から限界があるので、 LLMにLLMの 出力を評価をさせようというアイディア ◦ 人で評価する場合、異なる評価者の間で評価基準を一致させるのは難しいが、 LLMなら 可能 ◦ LLMであればプロンプトを作り込めば、専門家と同じような評価も高精度にさせることがで きる ◦ YOJOのように出力後にリアルタイムで評価している場合は特に、人が評価するのは難し いが、LLMなら可能
  19. (C)PharmaX Inc. 2023 All Rights Reserve 33 評価結果と KPIの理想の関係 ①評価結果と②KPIの先行指標となるユーザー指標と③

    KPIが相関していることが望ましい 評価 KPIの先行指標 KPI • ユーザーからの FB • ユーザーの利用状況 ◦ クリック率 ◦ 利用率  etc… • Grand Truthとの 比較評価 • 出力の妥当性の評価 ◦ 有害性 ◦ ユーザーへの共感度  etc… • 購入率 • 継続率 • 生産性向上率 etc…. 相関があることが望ましい
  20. (C)PharmaX Inc. 2023 All Rights Reserve 34 評価方法(タイミング)のパターン • 事前評価=オフライン評価

    ◦ プロンプトを変更した際に事前に準備したデータセットに対して出力した結果を評価する ◦ LLMアプリケーションであれば、プロンプトを変更したバージョンをリリースする前に事前評 価を行うよう • 事後評価=オンライン評価 ◦ LLM機能が実際に稼働した後、その結果を評価する ◦ 実際のデータを使うことができるので、事前評価のデータセットよりもリアルな評価を行うこ とができる 評価方法(タイミング)には、事前評価と事後評価の 2パターンある
  21. (C)PharmaX Inc. 2023 All Rights Reserve 36 LLM as a

    Judgeの評価内容・基準の作り方① • ライブラリが提供する”一般的な”評価を使用することもできる ◦ QAに正しく答えられているかといった正しさや、個人情報が含まれていないか、卑猥語が 含まれていないかといった危険性・有害性を評価することができる Langsmithや各種ライブラリが提供する評価関数を使えばよくある評価は簡単に実行できる https://docs.smith.langchain.com/old/evaluation/faq/evaluator-implementations
  22. (C)PharmaX Inc. 2023 All Rights Reserve 37 LLM as a

    Judgeの評価内容・基準の作り方② LLMの出力を評価させるための独自のプロンプトを定義し、評価させることもできる … …
  23. (C)PharmaX Inc. 2023 All Rights Reserve 38 評価のプロンプトの改善 LLM as

    a judgeの出力結果も妥当なのかを判断し、評価用のプロンプトを改善する必要がある この評価の違いは妥当なのか?
  24. (C)PharmaX Inc. 2023 All Rights Reserve 39 プロンプト変更のタイミングで事前評価 PharmaXでは、プロンプトを大きく変更したタイミングで事前評価を行い、結果を Slackに通知している

    • プロンプトを大きく変更したタイミングで、自社で準備したデータセットに対して事前評価を行い、 大幅なデグレが起こっていないかを確認している 評価基準 前verと今verの比較
  25. (C)PharmaX Inc. 2023 All Rights Reserve 40 様々な観点での事後評価を記録 薬剤師が実際に文章を送ったタイミングで サジェストした文章と

    薬剤師が送った文章との類似度を評価 サジェストが生成されたタイミング、薬剤師が実際に文章を送ったタイミングでそれぞれ事後評価し記録 サジェストされた タイミングで 様々な観点で評価
  26. (C)PharmaX Inc. 2023 All Rights Reserve 42 評価内容のパターン • LLMアプリケーションの出力結果の評価は、主に下記の

    2つのパターンがある ◦ 期待するアウトプット(Grand Truth)と実際のアウトプットを比較してスコアリングする ▪ 例えば、2つの文字列間の距離をembedding distanceやlevenshtein distance でスコアリングする ◦ 定義した評価基準に基づいて、システムの出力の妥当性をスコアリング(合格 /不合格 を判定)する • リリース後は、下記のような指標をモニタリングして分析することを評価ということもあるので注意 が必要 ◦ ユーザーによる直接的なフィードバック( Good / Badボタンの設置など) ◦ ユーザーの利用状況(クリック率や受入れ率など) ◦ レイテンシーなどの非機能要件的な指標 事前評価と事後評価でも評価できる内容に違いがあるので注意が必要
  27. (C)PharmaX Inc. 2023 All Rights Reserve 43 LLM as a

    Judge以外のユーザーの利用状況等も可視化 LLMのサジェストがそのまま投稿された件数 共感フェーズ 漢方提案前確認フェーズ 薬剤師が作成した投稿の件数 LLMの受入件数・割合 (※件数は削除) ユーザーからの返信数・割合 (※件数は削除) 返信なしの件数 返信ありの件数 返信なしの件数 返信ありの件数 LLMのサジェストをそのまま投稿 薬剤師が作成して投稿
  28. (C)PharmaX Inc. 2023 All Rights Reserve 44 評価の限界 • YOJOの場合、評価の平均点数が80→90点になったから患者の購入率が上がるという関係性に

    はなく、おそらくレスポンス速度が向上することで返信率が向上し、購入率も向上するのだろうと 推察している ◦ 多くのメッセージが一定水準を上回るまでは、薬剤師が作り直す必要があるため、一定水 準まではscoreを高めることには意味があるが、一定水準以上は意味がない ◦ レスポンス速度を高めるには、LLMによるカバー率とLLMによるメッセージ作成速度が上 昇すればいい • つまり、YOJOの場合、LLMによるscore評価はガードレールとしての役割は果たすものの、ビジ ネス上のKPIとは完全な相関関係にはないことに注意 ◦ 事前評価や事後評価でscore評価の結果が向上したからと言って、喜ぶことには意味がな い ◦ 一方で、大幅にデグレっていないことを確かめることはできる 評価のスコアが上がればビジネス上の KPIが上がるという単純な関係にはないことがほとんど
  29. (C)PharmaX Inc. 2023 All Rights Reserve 45 そもそも評価を LLMで行う必要があるのか •

    こういう文章が作成されれば、この観点からはこれぐらいの評価であるというデータセットを自社 で多量に用意できれば、回帰問題に帰着されるので、 LLMによる評価ではなく、MLによる回帰 モデルを作ることもできる ◦ MLによる評価の方が処理が速く、安く、(上手く行けば)精度も高い ◦ 特にYOJOのように多段でLLMの処理が行われる場合、どこか処理をを ML化しなければ1 秒以下の低レイテンシーを実現するのは難しいだろう • それでいて、初期的にLLMで評価をするプラクティスが優れているのは、プロンプトを調整するこ とで速くPDCAを回すことができ、それでいてある程度の精度を担保することができるから ◦ MLで評価を行うためのモデルを構築しようとすると、データセットの準備やモデルのチュー ニングなどに時間がかかる データセットさえ大量にあれば、独自評価も LLMで行う必要はないだろう
  30. (C)PharmaX Inc. 2023 All Rights Reserve 47 今回持ち帰っていただきたいこと • 実験管理と評価の基本を理解できる

    ◦ 実験管理と評価はセットで行う ◦ LLMの出力の評価は自由度が高いので難しい • LLMアプリケーションの”評価”と呼ばれるものにいろんなパターンがあることを理解できる ◦ モデルそのものの評価とLLMアプリケーションの評価は分けて考える ◦ LLMアプリケーションの評価にはタイミングによって事前評価・事後評価がある ◦ LLMの出力の妥当性などをLLMに評価させることをLLM as a Judgeと呼ぶ • 評価の限界について理解できる ◦ KPIと相関する評価指標を作るのは ”非常に”難しい ◦ 評価指標だけではなく、KPIの先行指標にLLMが与えた影響を可視化するべし 今回は下記のようなゴール設定でお話いたします
  31. (C)PharmaX Inc. 2023 All Rights Reserve 49 • 機械学習では、1)学習用に使われるtrainデータと、2)精度テスト用のvalidationデータと、3)評 価用のtestデータを分けるて学習と評価を行うことが一般的

    ◦ 学習用に使ったデータで精度を測定しても過学習が起こっている可能性があるため、 validation データで精度を確認しながらモデルのチューニングを行う ◦ 一方で、trainデータで学習して、validationデータで精度を確認して、何度もチューニングを繰り返 すとvalidationデータにも過学習が起こり得るため、最終的な評価は testデータで行う必要がある • そのため、本来的には、testデータは1度しか使わず、最後に作成したモデル間の比較などを行 う際に使用する ◦ 何度も同じtestデータを使ってしまうと、 testデータにも過学習してしまう ◦ 現実的にはtestデータも使い回すことが多いようだが 機械学習の評価についての基本的な枠組み