本文主要是介绍vllm 使用FP8运行模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
简介
vLLM 支持使用硬件加速在 GPU 上进行 FP8(8 位浮点)计算,例如 Nvidia H100 和 AMD MI300x。目前,仅支持 Hopper 和 Ada Lovelace GPU。使用 FP8 对模型进行量化可以将模型内存需求减少 2 倍,并在对准确性影响极小的情况下将吞吐量提高最多 1.6 倍。
FP8 类型有两种不同的表示形式,每种形式在不同场景中都有用:
- E4M3:由1个符号位、4个指数位和3个位的尾数组成。它可以存储的值范围是 +/-448 和 nan。
- E5M2:由1个符号位、5个指数位和2个位的尾数组成。它可以存储的值范围是 +/-57344、+/- inf 和 nan。增加动态范围的代价是存储值的精度降低。
量化模型
下载AutoFP8
git clone https://github.com/neuralmagic/AutoFP8.git
pip install -e AutoFP8
量化
from auto_fp8 import AutoFP8ForCausalLM, BaseQuantizeConfigpretrained_model_dir = "/data/modelscope/qwen/Qwen2-72B-Instruct"
quantized_model_dir = "/data/modelscope/qwen/Qwen2-72B-FP8-Instruct"# Define quantization config with static activation scales
quantize_config = BaseQuantizeConfig(quant_method="fp8", activation_scheme="dynamic")
# For dynamic activation scales, there is no need for calbration examples
examples = []# Load the model, quantize, and save checkpoint
model = AutoFP8ForCausalLM.from_pretrained(pretrained_model_dir, quantize_config)
model.quantize(examples)
model.save_quantized(quantized_model_dir)
这篇关于vllm 使用FP8运行模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!