Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で ...
Search
Kohecchi
November 08, 2024
Programming
3k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
Kohecchi
November 08, 2024
More Decks by Kohecchi
See All by Kohecchi
20260716_Kaggle_tutorial_v7_lt.pdf
kohecchi
1
1.4k
Polars を Kaggle コンペで使ってみた(LMSYS Chatbot Arena)
kohecchi
1
920
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
380
速習iPhone Duo対応
yuukiw00w
2
930
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
1
430
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.3k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
460
Workers Cache を知る
syumai
0
320
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
290
カツオ、ご期待ください
suneo3476
0
140
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
310
Security issues being discussed on Web Platforms
petamoriken
0
1.4k
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
170
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
750
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
410
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Producing Creativity
orderedlist
PRO
348
41k
Tell your own story through comics
letsgokoyo
1
1.1k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
690
Docker and Python
trallard
47
4.2k
How to build a perfect <img>
jonoalderson
1
6.1k
Test your architecture with Archunit
thirion
2
2.4k
HDC tutorial
michielstock
2
940
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Transcript
Kaggle Kernel で vLLM × Gemma 2 を動かす。 関西Kaggler会 in
Osaka 2024 #3 Kohecchi
None
自己紹介 ❖ 金融企業 IT企画部(海外系のお仕事) ❖ 関西 Kaggler 会で知り合ったチームで 金メダル&銀メダル Kohecchi
(こへっち) X: @kohecchi
モチベーション Q1. なんで Gemma 2? → LMSYS や atmaCup #17 で
Gemma 2 が大活躍 Q2. なんで vLLM? → 推論がめっちゃ速いらしい
Gemma2-9b-it を vLLM で推論高速化して たくさんアンサンブルすれば 勝てるんじゃないか・・・? モチベーション
Gemma2-9b-it を vLLM で推論高速化して たくさんアンサンブルすれば 勝てるんじゃないか・・・? モチベーション ・・・と考える人が無駄にする時間を削減したい
アジェンダ 1章 Gemma2 を vLLM で動かしたくなる話 2章 Gemma 2 を
vLLM で動かしたくなくなる話
LMSYS https://www.kaggle.com/competitions/lmsys-chatbot-arena ❖ 開催期間: 2024/5/3 ~ 8/3 ❖ 主催: LMSYS
Chatbot Arena ❖ タスク:2つのLLMに与えた Prompt と モデルの回答 から 勝敗を予測する
LMSYS Chatbot Arena とは https://chat.lmsys.org/
LMSYS上位解法 - LLM&推論高速化 LLM max_len 量子化 その他 高速化 1st Gemma2-9b-it
x2 (TTA) 2000 GPTQ 8 bit Data Parallelism 2nd Gemma2-9b-it RLHFlow/ArmoRM-Llama3-8B-v0.1 4096 4096 ? Data Parallelism 高速化ライブラリのOperator移 植 3rd sfairXC/FsfairX-Gemma2-RM-v0.1 Gemma2-9b-it 4096 3072 bnb 4bit vllm(学習データ生成時) 4th Gemma2-9b-it 3072 情報なし 情報なし 5th Gemma2-9b-it 4096 ※8kも可 bnb 8bit Data Parallelism 長さでソート&バッチ化 Gemma2-9b-it が強かった。T4 x2 だと 2 models アンサンブルで9時間がギリギリ。 高速化手法なしだと、1 model の推論も終わらない。
マルチGPUでの並列処理手法 https://www.kaggle.com/competitions/lmsys-chatbot- arena/discussion/527596
model_0 = Gemma2ForSequenceClassification.from_pretrained( cfg.gemma_dir, device_map = torch.device('cuda:0'), use_cache = False,
) model_1 = Gemma2ForSequenceClassification.from_pretrained( cfg.gemma_dir, device_map = torch.device('cuda:1'), use_cache = False, ) … data = data.sort_values("length", ascending = False) sub_1 = data.iloc[0::2].copy() sub_2 = data.iloc[1::2].copy() with ThreadPoolExecutor(max_workers=2) as executor: results = executor.map(inference, (sub_1, sub_2), (model_0, model_1), (device_0, device_1)) Data Parallelism - 各GPUにモデルをロードして並列処理 GPU 0 にモデルをロード GPU 1 にモデルをロード データを2つに分割して 各GPUで並列処理
とにかくはやい https://blog.vllm.ai/2023/06/20/vllm.html
サポートもしっかりしてる • 量子化モデル(bitsandbytes)をサポート • LoRA アダプタをサポート • Gemma2, Llama3.1 など主要モデルをサポート
https://docs.vllm.ai/en/latest/models/supported_models.html
llm = vllm.LLM( model = model_name, tensor_parallel_size = 2, gpu_memory_utilization
= 0.95, dtype = "half", enforce_eager = True, max_model_len = MAX_LENGTH, ) tokenizer = llm.get_tokenizer() sampling_params = vllm.SamplingParams( top_p = 0.9, temperature = 0, seed = 777, skip_special_tokens = True, max_tokens = 1, ) responses = model.generate( prompts, sampling_params = sampling_params, ) コードもシンプル モデルのロード tokenizer の取得 推論 パラメータ設定
そろそろこう思ってきませんか? Gemma2-9b-it を vLLM で推論高速化して たくさんアンサンブルすれば 勝てるんじゃないか・・・?
アジェンダ 1章 Gemma2 を vLLM で動かしたくなる話 2章 Gemma 2 を
vLLM で動かしたくなくなる話
調べてみると、意外と情報がない
vllm==0.6.3.post1 で検証 (11/8時点 最新版) Kaggle Kernel で vLLM × Gemma
2 を動かす。
基本的にエラーになります
vLLM x Gemma2 x Kaggle GPU の相性が良くない Kaggle で使える GPU(T4,
P100)が古すぎて、Flash Attention 2 がサポートして いない(= Kaggle環境の vLLM で Gemma 2 が動かせない) [Bug]: Gemma-2-2b-it load model hangs by vLLM==0.5.1 on Tesla T4 GPU #7464 「もっと新しいGPUを使え」とし か言えない。もしくは、flash attention が T4 をサポートする のを祈るんだな。
config をいじれば動かせる config.json を書き換えれば、T4 x2 で動かせる! • "attn_logit_softcapping": 50.0 →
null • "final_logit_softcapping": 30.0 → null
つまづきポイント • import vllm でエラー → pip install 順の修正、 --force-reinstall
オプション追加 • モデルロードでエラー → config.json 修正 • 推論でエラー → Parameter 修正 : : 数多のエラーを 乗り越えて ようやく動いた
検証結果 LMSYS の Test データ(約25,000件)で推論時間を検証。vLLMめっちゃ速い! # LLM vllm 量子化 max_len
その他 結果 1 Gemma2-9b-it なし なし 1000 ー T4 16GB に載らない 2 Gemma2-9b-it なし bnb 4 bit (Unthlos) 2048 ソート Data Parallelism 4時間40分 3 Gemma2-9b-it なし bnb 4 bit (Unthlos) 3072 ソート Data Parallelism 6時間00分 4 Gemma2-9b-it あり なし 1000 なし 1時間36分 5 Gemma2-9b-it あり なし 2048 なし 2時間14分 6 Gemma2-9b-it あり なし 3072 なし 2時間20分
Unsloth × vLLM × Gemma-2-9b-it (エラー解消できず) Unsloth は vLLM をサポートしているが、エラー解消できず断念。
https://docs.vllm.ai/en/v0.6.2/quantization/bnb.html
Classification Model は使えない・・?(未検証) どうやらすんなりは使えない模様。ただ使えるかもしれない
まとめ # LLM 種類 LoRA vllm Unsloth 結果 1 Gemma2-9b-it
Causal なし あり なし 〇 動く。めっちゃ速い 2 Gemma2-9b-it Causal あり あり なし 〇 動く。めっちゃ速い 3 Gemma2-9b-it Causal なし あり あり × 動かず 4 Gemma2-9b-it Classifier なし あり なし △ひと手間必要そう(未検証) • vLLM × Gemma2 × T4 の相性が悪いが、Causal モデルであれば使える • 推論はめっちゃ速い • しばらくは LMSYS の公開ノートブックを使う方が安全かも
atmaCup #17 データで Gemma 2 + LoRA × vllm ×
T4 を動かす推論コードを公開 https://www.kaggle.com/code/kohecchi/atmacup17-gemma2-lora-x-vllm-causal-infer
Thank you