Slide 1

Slide 1 text

LLMアプリケーションの Fine-tunningと蒸留を活用した改善 2024.12.17 #pharmax_tech

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

(C)PharmaX Inc. 2024 All Rights Reserve 9 生成AIの革新性①:生産性の向上と人件費削減 50 API費用 (円) 40 30 20 10 0 2024/1 2024/12 2024/6 年月 1メッセージあたりの API費用 LLMによる自動化率の日次平均 自動化率 (%) 100 0 20 40 60 80 薬剤師が送った場合の費用概 算 自社独自のナレッジを生成 AIに落とし込むことで、チャットの 8割以上を自動化することに成功 問い合わせ対応だけではなく、漢方変更のサジェストやパーソナライズされたレコメンドも自動化 ファインチューニングを活用することで 1メッセージあたりのコストも薬剤師と比較して 1/10以下に 60

Slide 10

Slide 10 text

(C)PharmaX Inc. 2024 All Rights Reserve 10 生成AIの革新性②:チャットの速度向上による UXの向上 返信速度の日次平均 返信速度 (分) 20 0 4 8 12 16 100 0 20 ユーザーからの 返信率の日次平均 40 60 80 返信率 (%) ユーザーへの平均返信時間が 1〜2分と非常に迅速な対応を可能に 会話のテンポが上がったことによりユーザーからの返信率も 15%程度向上 会話からの離脱率が低下したことで購入率も 1.3倍になった 患者満足度も5点満点中4.5を超える高水準を実現 100 0 5 10 15 20 購入率 (%) LINE登録後の購入率の月次平均 LLMの 本格導 入 薬剤 師 LLM 全 体 薬剤 師 LLM

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

13 (C)PharmaX Inc. 2024 All Rights Reserve 蒸留とファインチューニングの運用

Slide 14

Slide 14 text

(C)PharmaX Inc. 2024 All Rights Reserve 14 ● リアルタイムAPI ○ 音声入力と音声出力をリアルタイムで処理する API ● Vision Fine-tuning(画像のファインチューニング) ○ GPT-4oを画像とテキストの両方でファインチューニングすることを可能にする機能 ● Prompt Caching(プロンプトのキャッシュ化) ○ 一度使用したプロンプトをキャッシュすることで、 API呼び出しのコストとレイテンシを削減する 機能 ● Model Distillation(モデルの蒸留) ○ 大規模なモデルの出力を使用して、より小型で効率的なモデルをファインチューニングする 機能 2024年10月のOpenAI DevDayでの発表 OpenAI DevDayでは下記の機能が発表されて大きな話題を呼んだ

Slide 15

Slide 15 text

(C)PharmaX Inc. 2024 All Rights Reserve 15 ● 性能のいい安価なモデルに乗り換える ○ ベンチマーク上の性能がよかったとしても再度プロンプトチューニングは必要になることも 多い ● LLMの入出力結果をキャッシュして再利用する ○ OpenAIやAnthropicが提供するPrompt Cachingを利用する ● 高価なモデルの出力を使って安価なモデルをファインチューニング(蒸留)する ○ OpenAIの利用規約では、同社のサービスから得られる出力を使用して、競合するモデル を開発することを禁止されてる → 公式にOpenAIがOpenAI同士のモデルであれば蒸留を認めた(推奨した) LLMのコスト削減の主要な方法 LLM使用のコストを下げる方法はいくつか存在する

Slide 16

Slide 16 text

(C)PharmaX Inc. 2024 All Rights Reserve 16 モデルへのベンダーロックインは発生する ● PharmaXの実験では、他社も含め新しいモデルが出るたびに複数のプロンプトで実験するが、 GPTシリーズのスコアを”何故か”超えてこない ○ プロンプトは変えていないので、我々の改善しているプロンプトが GPTシリーズに最適化さ れているからだと想定している ○ 体感的には、ベンチマークで出ているスコアと自社のユースケースに当てはめたときのス コアは”あまり相関がない”ように感じる 実務的にはモデルへのロックインは想定しているよりも発生してしまうものだと感じている

Slide 17

Slide 17 text

(C)PharmaX Inc. 2024 All Rights Reserve 17 OpenAIのPrompt Cachingの紹介 共通部分がキャッシュされることで長いプロンプトではレイテンシを最大 80%、コストを50%削減 https://platform.openai.com/docs/guides/prompt-caching

Slide 18

Slide 18 text

(C)PharmaX Inc. 2024 All Rights Reserve 18 OpenAIのPrompt Cachingの特徴 ● 長いプロンプトではレイテンシを最大 80%、コストを50% ○ 1,024トークンから、128トークンずつ適用 ● OpenAIの主要モデルでは、自動的に適用 ○ Anthropicは明示的に指示が必要かつ、キャッシュ書き込みがコストが 1.25倍のかわりに キャッシュ読み込みではコストが 1/10 ● 通常5~10 分間操作が行われないとクリアされ、閑散期には最後に使用されてから 1時間以内 に削除される OpenAIのPrompt Cachingは値段の割引は少ないが、自動で適応されるなどの便利さはある

Slide 19

Slide 19 text

(C)PharmaX Inc. 2024 All Rights Reserve 19 OpenAIのPrompt Cachingの効果 PharmaXの例ではトークンの30〜40%がキャッシュにヒットしている Cached Input Input

Slide 20

Slide 20 text

(C)PharmaX Inc. 2024 All Rights Reserve 20 ファインチューニングしたモデルのコスト削減効果 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 普通の mimiより は高い

Slide 21

Slide 21 text

(C)PharmaX Inc. 2024 All Rights Reserve 21 OpenAIの蒸留機能 DevDayで発表された蒸留機能を使えば、上位モデル出力で GPT-4miniなどの安価なモデルを蒸留できる xxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx outputは 修正できない

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

(C)PharmaX Inc. 2024 All Rights Reserve 23 蒸留したモデルでもデータセットに対して評価を実施 OpenAIのダッシュボード上で蒸留用に使ったデータと評価用のデータを分けて評価を実施可能 98%の精度で 上位モデルを再現 どこを間違えた のかを確認可能

Slide 24

Slide 24 text

(C)PharmaX Inc. 2024 All Rights Reserve 24 ● OpenAIのダッシュボード上に簡単にデータを溜めて、そのデータを使って安価なモデルをファイ ンチューニング=蒸留することができる ○ 現時点では、データを貯めることそのものには値段がかからない (※ 最新の公式ドキュメントをご確認ください) ● 一方で、蓄積したデータのoutputを修正する機能は付いていないので、精度は元データを生成 した上位のモデルを超えることはない ○ 上位モデルよりも精度も向上させたければ、 LangSmithのようにアノテーション機能を備 えたツールを使って出力を修正する必要がある ○ データ数さえ確保できれば元データを生成した上位のモデル弱の精度にはなるので、すで に運用中のアプリケーションがあり、精度がミッションクリティカルでなければ、蒸留して安 価なモデルに置き換えて損はないのではないか 蒸留の運用まとめ OpenAIのネイティブの蒸留機能では、現時点では outputの修正は出来ないことに注意

Slide 25

Slide 25 text

(C)PharmaX Inc. 2024 All Rights Reserve 25 蒸留についての考察・今後の予想 ● 各社高価なモデルと安価なモデルが(多少タイミングがズレても)セットで発表されるところを見て も蒸留を公式でサポートする流れは各社追従しそう ○ OpenAIのように蒸留は自社内のモデル間であれば OKというルールになるのではないか ○ Amazon Bedrock Model Distillationがプレビュー版で発表されました ● 例えば、o1の出力を使ってGPT-4o miniを蒸留するように系統(?)の違うモデルの出力を使っ て蒸留した時にどうなるのかは正直分かっていません (やったことがある方がいれば教えて下さい) 蒸留はより一般的な技術になるのではないかと予想している

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

(C)PharmaX Inc. 2024 All Rights Reserve 30 蒸留とアノテーション後のファインチューニングの運用について ● アノテーションしてGPT-4oの出力を修正したデータセットで GPT-4o-miniをファインチューニング することができれば、GPT-4oよりも性能が高くかつコストも安いfine-tuned GPT-4o-miniを作 成することができる ● 一方で、アノテーションも楽ではないので、性能向上のためにファインチューニングをするのは、 プロンプトエンジニアリングで性能向上が見込めなくなってからの最終手段と捉えた方がいい ○ プロンプトエンジニアリングの方が PDCAサイクルは短いので、性能向上のための第一選 択はあくまでプロンプトエンジニアリング 性能も高めたいのならアノテーションしてファインチューニングする必要がある

Slide 31

Slide 31 text

(C)PharmaX Inc. 2024 All Rights Reserve 31

Slide 32

Slide 32 text

(C)PharmaX Inc. 2024 All Rights Reserve 32 AX(AI Transformation)事業を立ち上げます ● PharmaXが35万人のユーザ数を誇る自社サービス「 YOJO」で培った生成AIノウハウを医療業 界中心に広めていきたい ● 特に企業と顧客間のコミュニケーションを円滑化・自動化するノウハウと技術を活用し、他社向 けに生産性向上ソリューションを提供 ● カジュアル面談は弊社の採用に興味がなくとも、無料の壁打ち程度に捉えていただき、ご支援で きそうなことがあればご連絡ください ○ これまでも数社・数名の方にアドバイスしております ○ 他社の事例を知ることができれば私としても十分です PharmaX としてAX(AI Transformation)事業を立ち上げ、他社も支援していく予定です