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
930
Other Decks in Programming
See All in Programming
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
260
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
110
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
150
Agents on Rails - Rails at Scale 2026
irinanazarova
0
540
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
130
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
130
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
22
22k
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
980
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
370
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
170
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.2k
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
330
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Optimizing for Happiness
mojombo
378
71k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Designing for humans not robots
tammielis
254
26k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
It's Worth the Effort
3n
188
29k
HDC tutorial
michielstock
2
960
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
450
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
460
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
520
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
460
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
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