You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在CPU运行CohereForAI/c4ai-command-r-plus-4bit模型遇ValueError报错求助

问题分析与解决方案

问题原因

你使用的CohereForAI/c4ai-command-r-plus-4bit是基于bitsandbytes库实现的4bit量化模型,而bitsandbytes的4bit量化功能目前仅支持CUDA(GPU)设备,直接指定device_map='cpu'加载会触发设备不匹配的报错。

解决方法

要在CPU上运行该模型,有两种可行方案:

方案一:加载原始非量化模型并适配CPU

替换为原始的非量化模型版本,同时配置正确的CPU加载参数:

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

PRETRAIN_MODEL = 'CohereForAI/c4ai-command-r-plus'  # 替换为非量化版本
tokenizer = AutoTokenizer.from_pretrained(PRETRAIN_MODEL)
# 加载模型到CPU,禁用量化相关参数
model = AutoModelForCausalLM.from_pretrained(
    PRETRAIN_MODEL,
    device_map='cpu',
    torch_dtype=torch.float32  # CPU运行推荐用float32,避免精度问题
)

text = "this is an example"
inputs = tokenizer(text, return_tensors="pt").to('cpu')  # 确保输入张量在CPU上
with torch.no_grad():
    outputs = model(**inputs)
    embedding = outputs.last_hidden_state.mean(dim=1).squeeze().numpy()
print(embedding.shape)

方案二:使用支持CPU的量化方案

如果希望保持量化以减少内存占用,可以选择该模型的GGUF格式量化版本(需通过llama.cpp或其Python绑定运行),这类格式原生支持CPU推理。大致流程:

  • 下载对应模型的GGUF格式权重文件
  • 使用llama.cpp的Python库加载模型并执行推理

注意事项

  • 原始模型参数量约104B,CPU运行需充足内存(建议64GB以上),否则会出现内存不足报错。
  • 若内存有限,可选择更小的模型版本(如CohereForAI/c4ai-command-r),或进一步使用CPU支持的INT8量化技术压缩模型体积。

内容的提问来源于stack exchange,提问作者Howie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 16:52:48