使用HuggingFace官方DeepSeek代码时遭遇‘Unknown quantization type’错误的求助
使用HuggingFace官方DeepSeek代码时遭遇‘Unknown quantization type’错误的求助
看起来你遇到的问题是DeepSeek-R1模型的默认配置里用到了fp8量化,但当前你的transformers版本并不识别这个单纯的fp8标识——错误提示里已经列出了所有支持的量化类型,比如官方支持的fp8实现是fbgemm_fp8而非裸的fp8。
这里有几个可行的解决思路,你可以依次尝试:
1. 优先升级transformers到最新版本
新版本的transformers会持续更新对新量化类型的支持,很可能已经修复了这个识别问题。在终端运行升级命令:
pip install --upgrade transformers accelerate torch
升级后再尝试运行你最初的官方代码,大概率能解决问题。
2. 强制禁用量化,直接加载原生精度模型
如果升级后还是不行,你可以在加载模型时明确禁用任何量化配置,强制以bfloat16或float16精度加载。修改代码如下:
from transformers import pipeline import torch messages = [ {"role": "user", "content": "Who are you?"}, ] pipe = pipeline( "text-generation", model="deepseek-ai/DeepSeek-R1", trust_remote_code=True, torch_dtype=torch.bfloat16, # 指定用bfloat16加载,节省显存 device_map="auto", quantization_config=None # 强制关闭所有量化逻辑 ) pipe(messages)
3. 手动指定支持的fp8量化类型
如果你确实想使用fp8量化,可以用transformers支持的fbgemm_fp8类型,手动配置量化参数:
from transformers import pipeline, BitsAndBytesConfig import torch messages = [ {"role": "user", "content": "Who are you?"}, ] # 配置支持的fbgemm_fp8量化 quant_config = BitsAndBytesConfig( load_in_fp8=True, fp8_recipe=BitsAndBytesConfig.FP8Recipe(rescale=True) ) pipe = pipeline( "text-generation", model="deepseek-ai/DeepSeek-R1", trust_remote_code=True, torch_dtype=torch.bfloat16, device_map="auto", quantization_config=quant_config ) pipe(messages)
额外检查
如果尝试4bit/8bit量化的话,确保你已经安装了bitsandbytes依赖:
pip install bitsandbytes
备注:内容来源于stack exchange,提问作者Akshit Gulyan




