Slide 1

Slide 1 text

©2024 Databricks Inc. — All rights reserved を用いた LLM開発と評価 1 Databricks ML OSS Team Last updated Feb 2024

Slide 2

Slide 2 text

©2024 Databricks Inc. — All rights reserved 2 自己紹介 • 2023年10月にDatabricks ML OSSチームに参加 • 業務の9割方はMLflowの開発 • 前職ではMLチームのSDE • 趣味:テニス・イラスト Your subtitle here Yuki Watanabe Harutaka Kawamura • 2019年に MLflow にコントリビュートし始める • 2020年に Databricks に入社 • 趣味:韓国語(初心者)

Slide 3

Slide 3 text

©2024 Databricks Inc. — All rights reserved 3 Agenda

Slide 4

Slide 4 text

©2024 Databricks Inc. — All rights reserved 4 本日の内容 MLflowとは? LLMOpsとMLflow デモ: MLflowと進めるLLM開発 MLflowの最近とこれから 1 2 3 4

Slide 5

Slide 5 text

©2024 Databricks Inc. — All rights reserved 5 とは?

Slide 6

Slide 6 text

©2024 Databricks Inc. — All rights reserved 6 モデル学習やハイパラチューニン グの実験管理を行いたい 複数モデルの評価/比較を 効率的に行いたい プロジェクト間で異なるライブラリや 開発環境を整理したい (DSが訓練した)モデルを安全に 本番環境にデプロイしたい モデルのバージョン管理や ロールバックを簡単に行いたい デプロイや運用を含んだ 包括的なシステム管理をしたい チームのコラボレーションを 円滑にしたい モデルやコードなどのチームの資 産を一元管理したい 開発チームの生産性を ビジネスゴールに集中させたい データサイエンティスト ML エンジニア マネージャー ML開発プロセス全体の課題を解決するプラットフォーム

Slide 7

Slide 7 text

©2024 Databricks Inc. — All rights reserved 7 MLflowの最近 MLflow 2.10.2 「MLflowといえばTraditional MLだよね」 ● DLやLLM向けの機能がかなり増えました ● ~50%のユーザはDLやLLMに使っています ● MosaicMLも使っています

Slide 8

Slide 8 text

©2024 Databricks Inc. — All rights reserved 8 LLMOps

Slide 9

Slide 9 text

©2024 Databricks Inc. — All rights reserved 9 LLMOps 従来のML開発プロセスとの違い 学習はより手軽に、評価はより難しく ※Zero-shotやFine-tuningを含めた広義の「学習」フェーズ

Slide 10

Slide 10 text

©2024 Databricks Inc. — All rights reserved 10 LLMOps 従来のML開発プロセスとの違い 学習はより手軽に ● 訓練せずにプロンプトのみでタスクへの適用が可能 ● 基盤モデルへのアクセスはSaaSやHuggingFace経由で簡単に ● リサーチ・エンジニアリング知識なしでもPOCが行える 評価はより難しく ● 非構造で非決定的 ● タスクの多様化と複雑化によるベンチマーク評価の難しさ ● 基盤モデル+プロンプトの膨大な組み合わせ ※Zero-shotやFine-tuningを含めた広義の「学習」フェーズ

Slide 11

Slide 11 text

©2024 Databricks Inc. — All rights reserved 11 従来のモデル評価方法 データセット 評価指標 ベンチマーク (MS COCO, ImageNet, ..) 自作データセット ヒューリスティック (Accuracy, AUC, …)

Slide 12

Slide 12 text

©2024 Databricks Inc. — All rights reserved 12 LLMの評価方法 データセット 評価指標 公開ベンチマーク (GLUE, ANLI, ..) ヒューリスティック (Accuracy, AUC, …) ● 基盤モデルの様々なタスクに対する 性能を測れる ● 一方で、解決したいタスクに対する性 能とは必ずしも一致しない

Slide 13

Slide 13 text

©2024 Databricks Inc. — All rights reserved 13 LLMの評価方法 データセット 公開ベンチマーク (GLUE, ANLI, ..) 自作データセット ● 最も信頼がおける方法 ● アノテーションにも高度なドメイン知識 が必要だとスケールしづらい ● 情報の更新で繰り返し行う必要

Slide 14

Slide 14 text

©2024 Databricks Inc. — All rights reserved 14 LLMの評価方法 データセット 公開ベンチマーク (GLUE, ANLI, ..) 自作データセット 生成データセット ● 既存のドキュメントやサンプル から質問と回答を自動生成 ● Hard Sampleは生成されづらい ● 生成そのものがMLシステム

Slide 15

Slide 15 text

©2024 Databricks Inc. — All rights reserved ヒューリスティック (ROUGE, GLUE, …) 15 LLMの評価方法 公開ベンチマーク (COCO, ImageNet, ..) 自作データセット ● LLMで解決したいタスクに比べると複 雑さや難易度が低い ● ROUGEのように指標そのものにバイ アスが存在するものも 評価指標

Slide 16

Slide 16 text

©2024 Databricks Inc. — All rights reserved 人手での評価 ヒューリスティック (ROUGE, JGLUE, …) 16 LLMの評価方法 公開ベンチマーク (COCO, ImageNet, ..) 自作データセット ● 初手としてはやはり最善 ● それでも再現性/一貫性の担保やス ケーラビリティは問題 評価指標

Slide 17

Slide 17 text

©2024 Databricks Inc. — All rights reserved LLM-as-a-Judge (LLMでの評価) 人手での評価 ヒューリスティック (ROUGE, JGLUE, …) 17 LLMの評価方法 自作データセット ● 比較的低コストで良くスケール ● バイアスがあり評価の質は劣る E.g. 同じモデルや長い出力を好む 評価指標

Slide 18

Slide 18 text

©2024 Databricks Inc. — All rights reserved 18 LLMの評価方法 データセット 公開ベンチマーク (GLUE, ANLI, ..) 自作データセット 生成データセット プロダクションログ オンライン評価(A/Bテスト) 人手での評価 ヒューリスティック (ROUGE, JGLUE, …) 18 評価指標 LLM-as-a-Judge ● ユーザーのニーズを反映した 分布のデータが得られる ● フィードバックをアノテーション代 わりに ● 最低限世の中に出せるという 保証は必要

Slide 19

Slide 19 text

©2024 Databricks Inc. — All rights reserved 19 LLMの評価方法 現状の(おそらく)最善手 1. オフライン評価でなるべく効率よく候補を絞る 2. 評価の高いモデルに対して(UXの基準をパスした上で) 高速にオンライン評価のイテレーションを行う

Slide 20

Slide 20 text

©2024 Databricks Inc. — All rights reserved 20 LLMの評価方法 1. オフライン評価でなるべく効率よく候補を絞る    -> MLflow LLM Evaluation / Prompt Engineering UI 2. 評価の高いモデルに対して(UXの基準をパスした上で) 高速にオンライン評価のイテレーションを行う -> MLflow Models / MLflow Deployment Server -> Databricks Model Serving / Inference Table 現状の(おそらく)最善手

Slide 21

Slide 21 text

©2024 Databricks Inc. — All rights reserved 21 MLflow Evaluation

Slide 22

Slide 22 text

©2024 Databricks Inc. — All rights reserved 22 MLflow Evaluation オフライン評価を効率化する標準API ● 従来の評価指標 - Rouge, 有害性 ● LLM-as-a-Judge - 正確性, Faithfulness ● Retriever - コンテキストのPrecition/Recall ● 非機能要件 - Latency, トークン使用数 ● カスタム指標も実装可能

Slide 23

Slide 23 text

©2024 Databricks Inc. — All rights reserved 23 MLflow Models

Slide 24

Slide 24 text

©2024 Databricks Inc. — All rights reserved 24 MLflow Models 可搬性の要となる標準フォーマット ● モデルと推論に必要なメタデータを まとめてパッケージ ○ 依存ライブラリとバージョン ○ 入出力形式 (Model signature) ○ プロンプト ● 単一のAPIで推論 ● ローコードでデプロイ ○ コンテナ化してクラウドやk8sに ○ Databricks Model Serving

Slide 25

Slide 25 text

©2024 Databricks Inc. — All rights reserved 25 Databricks Model Serving

Slide 26

Slide 26 text

©2024 Databricks Inc. — All rights reserved 26 Databricks Model Serving ScalabilityとObservabilityを実現する 推論インフラ ● MLflow Modelをノーコードでデプロイ ● Scale-to-zero オートスケーリング ● 複数モデルのルーティング ● Inference Table ○ 推論ログを即SQL可能 ○ モデルの性能やデータドリフト が自動でダッシュボード化

Slide 27

Slide 27 text

©2024 Databricks Inc. — All rights reserved 27 MLflowによるLLM開発

Slide 28

Slide 28 text

©2024 Databricks Inc. — All rights reserved 28 MLflowによるLLM開発 仮想シナリオ:SaaS API・Public Modelを用いた日本食QAボット開発 ステップ 1. 評価用データセットを用意 2. OpenAIやMixtral8x7bとプロンプトの組み合わせでMLflow Models作成 3. 各モデルをMLflow Evaluationで評価 4. 最も良いモデルをDatabricks Model Servingにデプロイ

Slide 29

Slide 29 text

©2024 Databricks Inc. — All rights reserved 29 Step 1. 評価用データセットの用意 Wikipediaの日本食ページ(例)を元にGPT3.5で生成した100ペアのQAセット ● MLflow RAG Tutorialsに大凡同じデータセットの作り方が載っています. Context から質問と回答のペアを生成

Slide 30

Slide 30 text

©2024 Databricks Inc. — All rights reserved 30 Step 2. モデル準備 (1) Direct (2) Verbose (3) Conciseの3種類のシステムプロンプトを用意

Slide 31

Slide 31 text

©2024 Databricks Inc. — All rights reserved 31 Step 2. モデル準備 MLflow OpenAI Flavorを用いて3種類のモデルを作成

Slide 32

Slide 32 text

©2024 Databricks Inc. — All rights reserved 32 Step 2. モデル準備 同様にMixtral8x7B (Foundation Model APIs)についても3種類のモデルを作成

Slide 33

Slide 33 text

©2024 Databricks Inc. — All rights reserved 33 Step 3. モデルの評価 MLflow Evaluation (mlflow.evaluate) を用いて6種類のモデルを一括評価

Slide 34

Slide 34 text

©2024 Databricks Inc. — All rights reserved 34 Step 3. モデルの評価 記録された評価結果を確認 ☝☝☝ 評価結果

Slide 35

Slide 35 text

©2024 Databricks Inc. — All rights reserved 35 Step 3. モデルの評価 Answer Correctnessはいずれのプロンプト でもOpenAIモデルが高得点.その中でも 特に簡潔な回答を求めた場合が最も良い結果. Latencyも全体的にOpenAI が優位、Mixtralも簡潔な回答 を求めれば十分早い

Slide 36

Slide 36 text

©2024 Databricks Inc. — All rights reserved 36 Step 3. モデルの評価 Evaluationビューで詳細な生成結果やLLM-as-a-Judgeの理由も確認可能 Mixtralはそもそも日本語が あまり得意でない Correctness: 3 Correctness: 5 Correctness: 5 Correctness: 2 Correctness: 4 Correctness: 3 Correctness: 2 Correctness: 2 Correctness: 1 情報を足そうとして間違った回答を生 み出してしまうパターン (味噌カツは鶏ではない ) LLMによると2点をつけた理由は 「Natto-kinを入れている」ことだ が、正直微妙なライン

Slide 37

Slide 37 text

©2024 Databricks Inc. — All rights reserved 37 Step 4. デプロイメント ① Model Registryにモデルを登録 ② “Serve Model”を実行 複数モデルにTrafficを 振り分けることも可能 カタログ名とモデルを指定して mlflow.register_model() 自動でバージョンが作成される. コメントやエイリアスも任意で設定. Inference Tableを有効化

Slide 38

Slide 38 text

©2024 Databricks Inc. — All rights reserved 38 Step 4. デプロイメント 通常数分でエンドポイントが立ち上がってリクエスト可能になります エンドポイントが立ち上がってから程なくして Inference Tableも利用可能になります.

Slide 39

Slide 39 text

©2024 Databricks Inc. — All rights reserved 39 MLflowのこれから

Slide 40

Slide 40 text

©2024 Databricks Inc. — All rights reserved 40 MLflowのこれから 開発メンバーも増え(󰐵 2 󰏦 2 󰎩 1 󰑔 1)、非常にアクティブに開発しています ● LLM・Deep Learningへのサポートをさらに強化 ● より分かりやすいドキュメントやチュートリアルの拡充 ● 新しいML開発パラダイムに向けた大規模な機能追加・刷新 • Prompt Engineering - 学習を行わずにモデルをコントロール • RAG - モデル開発だけでなく、システムの一部としてモデルを運用する

Slide 41

Slide 41 text

©2024 Databricks Inc. — All rights reserved 41 MLflowのはじめ方 MLflow、始めやすくなっています • まずは新しい公式サイトに • ドキュメントも刷新されました • すぐに動かせるNotebookが大量に増えました(LLM全般の学習にも) • Databricks Community Edition で環境やストレージの設定なしで無料で試せ ます • Contributionも大歓迎です!!(good-first-issueも沢山あります)

Slide 42

Slide 42 text

©2024 Databricks Inc. — All rights reserved 42 ご清聴ありがとうございました!