common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


autoQAOA
Desktop RAG

Overview
Terms of service

Privacy policy

Contact
Research

Sign in
Sign up
common.title

ada世代のGPUでLLMをFP8実行

Yuichiro Minato

2024/06/02 10:35

実は量子化は詳しくないのですが、VRAMがきついのでFP8を使ってみました。ada世代のGPUもFP8に対応しているというので測定してみました。日本語をやってみましたがそんなに精度は気にならなかったので、限られたリソースで秒ごとのトークン生成数を増やしたいというモチベーションです。

そんなに難しい手法は使いたくなかったので、こちらを参考にしました。

【インターンレポート】量子化による大規模言語モデル軽量化の効果測定

https://engineering.linecorp.com/ja/blog/quantization-lightweighting-llms

量子化する際にはおそらくスムーズには行かなくて、ライブラリのインストールで多少突っかかりましたが、最終的には実行ができました。

Mistral instruct v0.2 の7Bモデルを使いました。例えば、adaのRTX4060tiでは16GBモデルのGPUではVRAMが足りなくて、FP16はVRAM不足で動きません。そこで、FP8にしたらギリギリ足りました。

各種設定は下記の通りです。

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
import time

device="cuda"
model_name="mistralai/Mistral-7B-Instruct-v0.2"

model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", torch_dtype=torch.float16)
tokenizer = AutoTokenizer.from_pretrained(model_name)

#accelerator = Accelerator(mixed_precision="fp8")
#model = accelerator.prepare_model(model)

messages = [
  {"role": "user", "content": "What is your favourite condiment?"},
  {"role": "assistant", "content": "Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!"},
  {"role": "user", "content": "Do you have mayonnaise recipes?"}
]

model_inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)
model.to(device)

#のコメントアウトをとって混合精度で実行していけました。

電気は165W中110W利用し、

VRAMは15533MiB / 16380MiB

となりました。かなりギリギリなので、RAGなどでベクトル検索などでGPUを利用するプロセスを両方使おうとするとVRAM容量オーバーでエラーが出ます。

4060tiのような低価格?のGPUでもLLMが高精度のFP8で動くのでリーズナブルと感じましたが、トークン生成速度は遅いと感じました。

以上です。

© 2025, blueqat Inc. All rights reserved