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

W&B webinar LLM leaderboard Neo

W&B webinar LLM leaderboard Neo

Keisuke Kamata

January 24, 2024
Tweet

More Decks by Keisuke Kamata

Other Decks in Technology

Transcript

  1. 16:00 ~ 16:20 Announcement & Nejumi LLMリーダーボードNeoの ご紹介とそこからのインサイト W&B Keisuke

    Kamata 16:20 ~ 16:40 Jasterデータセットを使ったLLMモデルの 評価 LLM-JP, 東京大学 Namgi Han 16:40 ~ 17:00 Q&A および 休憩 17:00 ~ 17:20 MT-Bench-Jpデータセットを使った LLMモデルの評価 Stability AI, Meng Lee 17:20 ~ 17:40 Nejumiリーダーボード評価の走らせ方 W&B Yuya Yamamoto 17:40 ~ 18:00 Q&A / アンケート
  2. 16:00 ~ 16:20 Announcement & Nejumi LLMリーダーボードNeoの ご紹介とそこからのインサイト W&B Keisuke

    Kamata 16:20 ~ 16:40 Jasterデータセットを使ったLLMモデルの 評価 LLM-JP, 東京大学 Namgi Han 16:40 ~ 17:00 Q&A および 休憩 17:00 ~ 17:20 MT-Bench-Jpデータセットを使った LLMモデルの評価 Stability AI, Meng Lee 17:20 ~ 17:40 Nejumiリーダーボード評価の走らせ方 W&B Yuya Yamamoto 17:40 ~ 18:00 Q&A / アンケート
  3. Keisuke Kamata @olachinkei • Applied Predictive Technologies, Engagement Manager ビジネス実験・効果検証

    • DataRobot, Lead Data Scientist 機械学習・ヘルスケア・コロナ対策 • Weights & Biases, Success ML Engineer ディープラーニング・ LLM・ヘルスケア • 京都大学・大学院 動物実験・生体信号処理
  4. Weights & Biasesとは AIの専門家が創業 W&Bの創業者は 2つのMLカテゴリーを創出 業界を代表するVCが出資 (総額$250M以上) MLコミュニティーの中核 世界で70万人以上のML実践者が信頼

    グローバル企業のための製品 ~1000 を超えるエンタープライズ企業が利用 2万を超えるフレームワーク・リポジトリと統合 業界を代表するパートナー企業
  5. 私たちのお客様は機械学習で あらゆるインダストリーを変革しています TRIではコンピュータビジョンを使って 完全自動運転車の開発を進めてい ます 「W&Bは早いペースで最先端の開発 を大規模に行うチームにはなくては ならないインフラです。」 Adrien Gaidon

    Toyota Research Institute OpenAIは深層学習と自然言語処理を 使って、超高性能なチャットボットを開 発しています 「W&Bは、一人の研究者のインサイトを チームに波及させ、一台のマシンに閉 じ込めず、何千台にスケールさせること ができます。」 WOJCIECH ZAREMBA Co-founder of OpenAI Genentechは深層学習を使って感染 病に有効な新しい抗生物質を 探しています 「W&Bのおかげで、私たちは意味の ある科学研究により多くの時間を費 やすことができます。」 Stephen Ra Machine Learning Lead
  6. W&Bをご活用されている日本のお客様・ユーザー様 生成AIを開発する上でWeights & Biasesプラットフォームは必要不可 欠なサービスとなっています。性 能のモニタリング/チーム内での共 有のような実験管理から、 LLMア プリケーションのための検証まで、 様々な役立つ機能が提供されて

    おり、生成AI開発における羅針盤 のような役割を果たしています。 WandBは、生成AI開発において効 率化と高速化を実現する優れたプ ラットフォームであり、その採用に より、富士通のAI開発のさらなる 加速を目指します。特に、スー パーコンピュータ「富岳」を活用し た大規模言語モデルの分散並列 学習手法の開発においては、 WandBが大規模言語モデルの開 発・運用・管理を効率化すること で、イノベーションの創出に大きく 貢献すると期待しています。 ... 機械学習エンジニア 石上亮介氏 執行役員EVP 富士通研究所長 岡本青史氏 Woven by Toyotaでは、W&Bの テーブルをリーダーボードのように 使うことで、クロスファンクション で、誰が何をしていて、どの方法 がうまく機能しているかをみること ができ、どのチームがどの成果を 出しているかがみれる仕組みを 作っています。 Woven By Toyota Evan Cushing氏 毎朝、起床してWandBを開くのが 楽しみで仕方ありません。 ... WandBを用いると、複数の学習の 過程を比較したり、チーム内で議 論したりといった分析が容易にな るため、より優れた実験の計画を 立て、効果的に試行することがで きます。このように、 Stability AIに おける生成基盤モデルの構築に あたって、WandBはなくてはならな い存在です。 Senior Research Scientist 秋葉拓哉氏 国内実績43社から主要企業を抜粋
  7. マンスリーミートアップ 外部コミュニティーへの貢献 エグゼクティブコミュニティー 国内開発者・事業者コミュニティーへの貢献 年次ユーザーカンファレンス ML/LLM開発者や、MLOps実務 者が登壇・参加する月次イベン ト。国内コミュニティー登録者は 1300人(2023年11月時点) 国内は東京京橋での開催、

    ヨーロッパ、アメリカなどの各拠 点でも開催。 ML/LLM業界を代表するスピー カーが登壇する年次イベント。 国内初開催は 2023年10月(登 録者数550) 2023年のサンフランシスコでの イベントでは、 OpenAI、 LangChainなどからもスピー カーが登壇し、 2000人以上の 集客。 世界各地で随時開催のエ グゼクティブコミュニティー イベント。2023年国内イベ ントではNEC、ELYZA、など 先端的LLM開発企業のエ グゼクティブが参加。 with LLM-jp 勉強会 NIIが主催する国産基盤モデル 開発プロジェクト LLM-jpのモデ ル開発に貢献(弊社 MLエンジ ニア鎌田が開発コントリビュー ターリストに掲載) JDLA正会員、経産省「新 AI事業 者ガイドライン」「基盤モデル開 発加速支援」検討委員(シバタ アキラ)
  8. import wandb wandb.init() … wandb.log({“my_metric”: 0.5”}) … wandb.finish() 企業向けの安全なデプロイメント W&Bクライアント

    フロントエンド W&Bサーバー お客様セキュリティー領域 W&Bセキュリティー領域 学習用インフラ (GPUなど) W&Bサーバーとは別環境 W&Bの基本的な使い方
  9. import wandb wandb.init() … wandb.log({“my_metric”: 0.5”}) … wandb.finish() 企業向けの安全なデプロイメント W&Bクライアント

    フロントエンド W&Bサーバー お客様セキュリティー領域 W&Bセキュリティー領域 学習用インフラ (GPUなど) W&Bサーバーとは別環境 W&Bの基本的な使い方
  10. Weights & Biases: AI開発・MLOpsプラットフォーム すべてのML実験を 管理 & 可視化 最適化 &

    ハイパーパラ メータチューニング モデルの登録 & 管理 重要なワークフローの自 動トリガー MLワークロードをパッ ケージ化して実行 W&B Models モデルの構築 & ファインチューニング MLパイプラインのバー ジョン管理 データとメトリクスの可視 化 & 探索 ライブレポートでの インサイト共有 拡張可能な アプリケーションフレームワーク W&B Core Platform 企業向けの安全なデプロイメント 柔軟なマルチクラウドサポート LLMチェイン & プロンプトの探索とデ バッグ LLMの管理監視 W&B Prompts LLMベースの アプリケーション開発 & モニタリング
  11. W&Bが提供する充実したアセット ドキュメント クイックスタートから詳細な APIの使い方の説明 が記載されています コース W&Bだけではなく、ML・DLのベストプラクティス を学べるいくつかのコースを無料で提供していま す。 Wand

    community / WandBot Wandbはcommunity チャネルを運用していま す wandb.me/jp-slack そこではLLMを用いたWandBotも使用すること ができます Github wandbのgithubではコード例なども共有されて います Fully Connected 様々な公開レポートや業界のリーダーと対談し たPodcastが集約されています
  12. llm-jp-eval (Jaster)とは? https://github.com/llm-jp/llm-jp-eval Llm-jp-evalは、llm-jp勉強会で構築された日本語の 大規模言語モデルを自動評価するツール • JSICK • JSQuAD •

    JSTS • NIILC • chABSA • Wikipedia Annotated Corpus (複数) • Jamp • JaNLI • JCommonsenseQA • JEMHopQA • JNLI • JSeM JCommonsenseQAの例 instruction: 質問と回答の選択肢を入力として受け取り、 選択肢から回答を選択してください。なお、 回答は選択肢の番号(例:0)でするものとし ます。 回答となる数値をint型で返し、他には 何も含めないことを厳守してください。 input: 質問:電子機器で使用される最も主要な電 子回路基板の事をなんと言う? 選択肢:0.掲示板,1.パソコン,2.マザーボー ド,3.ハードディスク,4.まな板 • 既存の日本語評価データを利用し、テキスト生成タスクの評価データセッ トに変換 • 複数データセットを横断して大規模言語モデルの評価を実行 • 評価データのプロンプトと同形式のインストラクションデータ (jaster) を生 成
  13. MT-benchとは? llm-sysによって開発されたマルチターンの質問を含む、 LLMの ベンチマーク • LLMがマルチターンダイアログのモデルの会話の流れと指示に従う 能力の評価を目的としており、「一般的なユースケース」と「挑戦的 な指示」の両方が含まれている • 2つのモデルの対決

    or 単体モデルの絶対評価の2通りができる • デフォルトはgpt-4で評価する • Stability AIが日本語タスクを作成し、公開している • 質問の数は80問であり、8つのカテゴリに分類をされる https://github.com/lm-sys/FastChat https://github.com/Stability-AI/FastChat • Math • Coding • Knowledge I (STEM) • Knowledge II (humanities/social science) • Writing • Roleplay • Extraction • Reasoning Writingの例 1st turn 新入社員へのビジネスメールのエチケットに ついての指導書を作成してください。敬語の 正しい使い方や、日本のビジネス文化での 注意点を取り入れてください。 2nd turn 自分の作成した指導書を客観的に評価し、 改善点があれば指摘してください。
  14. 結果の深掘り例 Swallow vs Llama2 Swallowのjasterの能力向上 • Llama2からの継続学習により、日本語 能力を獲得 • 日本語のデータセットを用いた

    instruction tuningが効いている可能性 あり Swallowは生成タスクで減点 • 継続学習のデータセットに codeデータ セットが入っていないため、一部忘却し た可能性あり? 新しいリーダーボードでは、 確認したいモデルを選択して インタラクティブに深掘りが可能 llm-jp-eval MT-bench
  15. 令和こそこそ話 • 商用APIや実装に様々な癖をもつ LLMを llm-jp-evalとMT-benchという2つの評価体系で完全に回る 評価体系の構築 ◦ 大量の分岐... ◦ モデルごとの適切なプロンプトや

    End of Tokenなど の細かいTokenizerの設定が大変 ◦ 特にlm-sysのFastChatに対応していないモデルへ の対応が大変 • 評価体系の少しの修正でモデルの回し直しが伴うが、数 十Bのモデルをいくつも含む全てのモデルを一気に回し 直すのは骨折り作業 • LLM領域の進展が激しいので、それを取り入れながら随 時更新をしていかなければならない
  16. 16:00 ~ 16:20 Announcement & Nejumi LLMリーダーボードNeoの ご紹介とそこからのインサイト W&B Keisuke

    Kamata 16:20 ~ 16:40 Jasterデータセットを使ったLLMモデルの 評価 LLM-JP, 東京大学 Namgi Han 16:40 ~ 17:00 Q&A および 休憩 17:00 ~ 17:20 MT-Bench-Jpデータセットを使った LLMモデルの評価 Stability AI, Meng Lee 17:20 ~ 17:40 Nejumiリーダーボード評価の走らせ方 W&B Yuya Yamamoto 17:40 ~ 18:00 Q&A / アンケート
  17. 16:00 ~ 16:20 Announcement & Nejumi LLMリーダーボードNeoの ご紹介とそこからのインサイト W&B Keisuke

    Kamata 16:20 ~ 16:40 Jasterデータセットを使ったLLMモデルの 評価 LLM-JP, 東京大学 Namgi Han 16:40 ~ 17:00 Q&A および 休憩 17:00 ~ 17:20 MT-Bench-Jpデータセットを使った LLMモデルの評価 Stability AI, Meng Lee 17:20 ~ 17:40 Nejumiリーダーボード評価の走らせ方 W&B Yuya Yamamoto 17:40 ~ 18:00 Q&A / アンケート
  18. 16:00 ~ 16:20 Announcement & Nejumi LLMリーダーボードNeoの ご紹介とそこからのインサイト W&B Keisuke

    Kamata 16:20 ~ 16:40 Jasterデータセットを使ったLLMモデルの 評価 LLM-JP, 東京大学 Namgi Han 16:40 ~ 17:00 Q&A および 休憩 17:00 ~ 17:20 MT-Bench-Jpデータセットを使った LLMモデルの評価 Stability AI, Meng Lee 17:20 ~ 17:40 Nejumiリーダーボード評価の走らせ方 W&B Yuya Yamamoto 17:40 ~ 18:00 Q&A / アンケート
  19. 16:00 ~ 16:20 Announcement & Nejumi LLMリーダーボードNeoの ご紹介とそこからのインサイト W&B Keisuke

    Kamata 16:20 ~ 16:40 Jasterデータセットを使ったLLMモデルの 評価 LLM-JP, 東京大学 Namgi Han 16:40 ~ 17:00 Q&A および 休憩 17:00 ~ 17:20 MT-Bench-Jpデータセットを使った LLMモデルの評価 Stability AI, Meng Lee 17:20 ~ 17:40 Nejumiリーダーボード評価の走らせ方 W&B Yuya Yamamoto 17:40 ~ 18:00 Q&A / アンケート
  20. WandB LLMリーダーボードのワークフロー モデルの準備 Configの設定 評価実行 評価実行 ダッシュボードで 結果を確認 リーダーボードに追加 wandb.Artifact

    または、Hugging Face $ python3 run_eval.py or 評価はW&B Launchで実行 あるいは、直接スクリプトから実行 Launch Config あるいは、config.yaml
  21. 各種環境変数の設定を行う # 環境変数の設定 export WANDB_API_KEY=<your WANDB_API_KEY> export OPENAI_API_KEY=<your OPENAI_API_KEY> #

    必要に応じて、以下の APIキーも設定してください export ANTHROPIC_API_KEY=<your ANTHROPIC_API_KEY> export GOOGLE_API_KEY=<your GOOGLE_API_KEY> export COHERE_API_KEY=<your COHERE_API_KEY> export MISTRAL_API_KEY=<your MISTRAL_API_KEY> # Bedrock用のAWS認証情報が必要な場合は設定してください export AWS_ACCESS_KEY_ID=<your AWS_ACCESS_KEY_ID> export AWS_SECRET_ACCESS_KEY=<your AWS_SECRET_ACCESS_KEY> export AWS_DEFAULT_REGION=<your AWS_DEFAULT_REGION> # 必要に応じて、 huggingfaceにログインしてください huggingface-cli login # 必要に応じて export LANG=ja_JP.UTF-8 OPENAI_API_KEYとWANDB_API_KEY 以外は使うもののみで OK
  22. # LLMリーダーボードリポジトリのクローンとサブモジュールの初期化 git clone https://github.com/wandb/llm-leaderboard.git cd llm-leaderboard git submodule init

    git submodule update --remote # config/config.yamlを用意しておく # Python仮想環境のセットアップと依存関係のインストール python3 -m venv llmjp source llmjp/bin/activate pip install -r requirements.txt # LLM評価の実行 python3 scripts/run_eval.py llm-leaderboardのセットアップと評価実行
  23. wandb: log: True entity: "wandb-japan" project: "llm-leaderboard" run_name: 'mistralai/Mistral-7B-Instruct-v0.2' #

    use run_name defined above github_version: v2.0.0 #for recording testmode: true # if you don't use api, please set "api" as "false" # if you use api, please select from "openai", "anthoropic", "google", "cohere" api: false model: use_wandb_artifacts: false artifacts_path: "" pretrained_model_name_or_path: 'mistralai/Mistral-7B-Instruct-v0.2' #if you use openai api, put the name of model trust_remote_code: true device_map: "auto" load_in_8bit: false load_in_4bit: false generator: top_p: 1.0 top_k: 0 temperature: 0.1 repetition_penalty: 1.0 tokenizer: use_wandb_artifacts: false artifacts_path: "" pretrained_model_name_or_path: "mistralai/Mistral-7B-Instruct-v0.2" use_fast: true config.yamlの設定 (概要、モデルとトークナイザ)
  24. # for llm-jp-eval max_seq_length: 2048 dataset_artifact: "wandb-japan/llm-leaderboard/jaster:v3" #if you use

    artifacts, please fill here (if not, fill null) dataset_dir: "/jaster/1.1.0/evaluation/test" target_dataset: "all" # {all, jamp, janli, jcommonsenseqa, jemhopqa, jnli, jsem, jsick, jsquad, jsts, niilc, chabsa} log_dir: "./logs" torch_dtype: "bf16" # {fp16, bf16, fp32} custom_prompt_template: "<s> [INST] {instruction}\n{input}[/INST]" custom_fewshots_template: null # Please include {input} and {output} as variables # example of fewshots template # "\n### 入力:\n{input}\n### 回答:\n{output}" metainfo: basemodel_name: "mistralai/Mistral-7B-Instruct-v0.2" model_type: "open llm" # {open llm, commercial api} instruction_tuning_method: "None" # {"None", "Full", "LoRA", ...} instruction_tuning_data: ["None"] # {"None", "jaster", "dolly_ja", "oasst_ja", ...} num_few_shots: 0 llm-jp-eval-version: "1.1.0" config.yamlの設定 (llm-jp-eval)
  25. # for mtbench mtbench: question_artifacts_path: 'wandb-japan/llm-leaderboard/mtbench_ja_question:v0' # if testmode is

    true, small dataset will be used referenceanswer_artifacts_path: 'wandb-japan/llm-leaderboard/mtbench_ja_referenceanswer:v0' # if testmode is true, small dataset will be used judge_prompt_artifacts_path: 'wandb-japan/llm-leaderboard/mtbench_ja_prompt:v1' bench_name: 'japanese_mt_bench' model_id: null # cannot use '<', '>', ':', '"', '/', '\\', '|', '?', '*', '.' question_begin: null question_end: null max_new_token: 1024 num_choices: 1 num_gpus_per_model: 1 num_gpus_total: 1 max_gpu_memory: null dtype: bfloat16 # None or float32 or float16 or bfloat16 # for gen_judgment judge_model: 'gpt-4' mode: 'single' baseline_model: null parallel: 1 first_n: null # for conv template # added custom_conv_template: true # the following variables will be used when custom_conv_template is set as true conv_name: "custom" conv_system_message: "" conv_roles: "('[INST]', '[/INST]')" conv_sep: "</s> " conv_stop_token_ids: "[2]" conv_stop_str: "</s> " conv_role_message_separator: " " conv_role_only_separator: " " config.yamlの設定 (Japanese MT-Bench)
  26. wandb: log: True entity: "yuya-team" project: "private-llm-leaderboard" run_name: 'mistralai/Mistral-7B-Instruct-v0.2' #

    use run_name defined above github_version: v2.0.0 #for recording testmode: true # if you don't use api, please set "api" as "false" # if you use api, please select from "openai", "anthoropic", "google", "cohere" api: false model: use_wandb_artifacts: false artifacts_path: "" pretrained_model_name_or_path: 'mistralai/Mistral-7B-Instruct-v0.2' #if you use openai api, put the name of model trust_remote_code: true device_map: "auto" load_in_8bit: false load_in_4bit: false generator: top_p: 1.0 top_k: 0 temperature: 0.1 repetition_penalty: 1.0 tokenizer: use_wandb_artifacts: false artifacts_path: "" pretrained_model_name_or_path: "mistralai/Mistral-7B-Instruct-v0.2" use_fast: true config.yamlのwandb.entityとprojectを対応して変更する 実際にはレポートには任意のプ ロジェクトから結果を挿入できる が、対応させた方が管理するの に良いだろう
  27. 16:00 ~ 16:20 Announcement & Nejumi LLMリーダーボードNeoの ご紹介とそこからのインサイト W&B Keisuke

    Kamata 16:20 ~ 16:40 Jasterデータセットを使ったLLMモデルの 評価 LLM-JP, 東京大学 Namgi Han 16:40 ~ 17:00 Q&A および 休憩 17:00 ~ 17:20 MT-Bench-Jpデータセットを使った LLMモデルの評価 Stability AI, Meng Lee 17:20 ~ 17:40 Nejumiリーダーボード評価の走らせ方 W&B Yuya Yamamoto 17:40 ~ 18:00 Q&A / アンケート
  28. Configの設定 評価実行 リーダーボード に追加 WandB LLMリーダーボードのワークフロー 環境構築 <計算環境> • GPUの確保

    • Wandb llm-jp のgithub repositoryをclone • 必要なlibraryをimport と環境変数の設定 <計算環境> • 評価するモデルを設定 - Hugging Face - wandb.Artifacts - 商用API • プロンプトの設定 <計算環境> • scripts/run_eval.pyを 実行 <W&B> • [初回Only] リーダー ボードのテンプレートを Reportsで作成 • リーダーボードに掲載 をしたい場合は、Run のtagに”leaderboard” を追加 $python3 scripts/run_eval.py
  29. Config / GPUの設定 ・評価実行 リーダーボード に追加 WandB LLMリーダーボードのワークフロー with Launch

    環境構築 <計算環境 & W&B> • GPUの設定 • 評価のジョブ化(一度 評価をwandbで行うと ジョブ化される) <W&B> • 評価するモデルを設定 - Hugging Face - wandb.Artifacts - 商用API • プロンプトの設定 • GPUの選択 • Launchボタンの実行 <W&B> • リーダーボードに掲載 をしたい場合は、Run (実行)のtag に”leaderboard”を追 加 … 評価者はここからスタート Launchの画面 MLエンジニアが設定