You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

使用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

火山引擎 最新活动