Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

PharmaXは、健康を一生涯サポートするかかりつけオンライン薬局『YOJO』を運営しています。
YOJOでは、LLMのマルチエージェント・アプリケーションを構築し、メッセージの薬剤師への提案や一部自動送信を行っています。LLMを用いることで、柔軟でパーソナライズされた対応が迅速に可能になり、ユーザーのメッセージ返信率や初回購入率・継続率が劇的に向上しました。また、安全性担保のため、LLMの出力のリアルタイム評価と、基準値を下回った場合の再生成機能なども導入しています。

PharmaXでは、本番の入出力を修正して、ファインチューニングを活用することで、LLMアプリケーションのコスト削減と精度向上を達成しています。
また、蒸留を活用することで、コスト削減を実現しています。
その成果を下記のような記事にまとめて公開したところ大きな反響をいただきました。

- [GPT-4o-miniのファインチューニングのすゝめ](https://zenn.dev/pharmax/articles/40c0e385a8956b)
- [OpenAIの蒸留機能(Model Distillation)を使って運用中のLLMのコストを削減する取り組み](https://zenn.dev/pharmax/articles/f4ae12a91cca45)

ただし、LLMアプリケーションの精度向上には、ファインチューニングの前にプロンプトエンジニアリングで対応すべきだと考えています。
ここでは、ファインチューニング・蒸留の使い所、気をつけるべきことをまとめてお伝えします。

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

Transcript

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

    好きな料理はオムライスと白湯とコーラ マイブームはLLMとRust X:@ueeeeniki
  2. (C)PharmaX Inc. 2024 All Rights Reserve 5 医療アドバイザーに体調 のことをいつでも気軽に相 談できる

    相談型医療体験 30種類以上の漢方薬からあ なたに合ったものを月毎に 提案 パーソナライズ漢方薬 定期的に漢方をお届けし、 一人ひとりに寄り添うかか りつけ医療を提供 継続的なかかりつけ 一生涯にわたって寄り添うかかりつけ漢方薬局「 YOJO」
  3. (C)PharmaX Inc. 2024 All Rights Reserve 7 今回対象とするアプリケーション • ユーザーからのメッセージを受信したタイミングで

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

    ④ • ①ルールベースでLLM処理可能かを 判定 • ②LLMで会話を分類しLLM処理可能 かを判定 • ③LLMで次のフェーズに移るべきかど うかを判定 • ④LLMでメッセージを作成 • ⑤LLMで作成されたメッセージを評価 (LLM-as-a-Judge)し、一定の水準を 下回ったら再生成して、クリアしたもの のみをサジェストする 現時点では精度高く メッセージ提案できない ため薬剤師が対応 ③ ⑤ ※②〜⑤: GPT-4o
  5. (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
  6. (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
  7. (C)PharmaX Inc. 2024 All Rights Reserve 11 LangGraphで実際に構築したグラフ ルール1 ルール2

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

    ② ③ ④ ⑤ ・・・ rule2 ④ ⑤ ① ② ④ ③ ⑤ ※②〜⑤: GPT-4o
  9. (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では下記の機能が発表されて大きな話題を呼んだ
  10. (C)PharmaX Inc. 2024 All Rights Reserve 15 • 性能のいい安価なモデルに乗り換える ◦

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

    GPTシリーズのスコアを”何故か”超えてこない ◦ プロンプトは変えていないので、我々の改善しているプロンプトが GPTシリーズに最適化さ れているからだと想定している ◦ 体感的には、ベンチマークで出ているスコアと自社のユースケースに当てはめたときのス コアは”あまり相関がない”ように感じる 実務的にはモデルへのロックインは想定しているよりも発生してしまうものだと感じている
  12. (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は値段の割引は少ないが、自動で適応されるなどの便利さはある
  13. (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より は高い
  14. (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は 修正できない
  15. (C)PharmaX Inc. 2024 All Rights Reserve 24 • OpenAIのダッシュボード上に簡単にデータを溜めて、そのデータを使って安価なモデルをファイ ンチューニング=蒸留することができる

    ◦ 現時点では、データを貯めることそのものには値段がかからない (※ 最新の公式ドキュメントをご確認ください) • 一方で、蓄積したデータのoutputを修正する機能は付いていないので、精度は元データを生成 した上位のモデルを超えることはない ◦ 上位モデルよりも精度も向上させたければ、 LangSmithのようにアノテーション機能を備 えたツールを使って出力を修正する必要がある ◦ データ数さえ確保できれば元データを生成した上位のモデル弱の精度にはなるので、すで に運用中のアプリケーションがあり、精度がミッションクリティカルでなければ、蒸留して安 価なモデルに置き換えて損はないのではないか 蒸留の運用まとめ OpenAIのネイティブの蒸留機能では、現時点では outputの修正は出来ないことに注意
  16. (C)PharmaX Inc. 2024 All Rights Reserve 25 蒸留についての考察・今後の予想 • 各社高価なモデルと安価なモデルが(多少タイミングがズレても)セットで発表されるところを見て

    も蒸留を公式でサポートする流れは各社追従しそう ◦ OpenAIのように蒸留は自社内のモデル間であれば OKというルールになるのではないか ◦ Amazon Bedrock Model Distillationがプレビュー版で発表されました • 例えば、o1の出力を使ってGPT-4o miniを蒸留するように系統(?)の違うモデルの出力を使っ て蒸留した時にどうなるのかは正直分かっていません (やったことがある方がいれば教えて下さい) 蒸留はより一般的な技術になるのではないかと予想している
  17. (C)PharmaX Inc. 2024 All Rights Reserve 26 本番でのLLMの出力をアノテーションしてデータセットに蓄積 xxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx

    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx LangSmithのAnnotation Queuesに蓄積してアノテーションしたデータをデータセットとして蓄積 修正する必要があれば修 正してデータセットに追加
  18. (C)PharmaX Inc. 2024 All Rights Reserve 30 蒸留とアノテーション後のファインチューニングの運用について • アノテーションしてGPT-4oの出力を修正したデータセットで

    GPT-4o-miniをファインチューニング することができれば、GPT-4oよりも性能が高くかつコストも安いfine-tuned GPT-4o-miniを作 成することができる • 一方で、アノテーションも楽ではないので、性能向上のためにファインチューニングをするのは、 プロンプトエンジニアリングで性能向上が見込めなくなってからの最終手段と捉えた方がいい ◦ プロンプトエンジニアリングの方が PDCAサイクルは短いので、性能向上のための第一選 択はあくまでプロンプトエンジニアリング 性能も高めたいのならアノテーションしてファインチューニングする必要がある
  19. (C)PharmaX Inc. 2024 All Rights Reserve 32 AX(AI Transformation)事業を立ち上げます •

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