应首先检查pytorch是否识别gpu,执行torch.cuda.is_available()验证cuda支持;其次确认nvidia驱动、cuda toolkit与cudnn版本匹配;再确保安装的是gpu版pytorch而非cpu版;接着检查模型加载时device_map是否误设为"cpu";最后排查accelerate或deepspeed配置是否强制启用cpu。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您尝试运行本地部署的DeepSeek模型,但发现模型被加载到了CPU设备而非GPU,这通常不是随机行为,而是由环境配置、代码显式指定或依赖缺失共同导致的结果。以下是排查与修正该现象的具体步骤:
一、检查PyTorch是否识别到可用GPU
PyTorch必须能正确探测并初始化NVIDIA GPU设备,否则即使代码中未显式指定CPU,device_map="auto"等参数也会退化为仅使用CPU。此检查是定位问题的第一步。
1、在Python环境中执行以下代码:
import torch
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.cuda.device_count())
print(torch.cuda.get_device_name(0) if torch.cuda.is_available() else "No GPU detected")
2、若torch.cuda.is_available()返回False,说明PyTorch未启用CUDA支持,需进一步验证底层依赖。
二、验证CUDA与cuDNN环境完整性
NVIDIA驱动、CUDA Toolkit和cuDNN三者版本必须严格匹配PyTorch编译时所用的CUDA版本,任一缺失或错配都将导致GPU不可用。
1、在终端运行命令查看驱动与GPU状态:
nvidia-smi
2、若该命令报错或无输出,说明NVIDIA驱动未安装或未正常加载,需前往NVIDIA官网下载对应操作系统版本的最新驱动并重装。
3、若nvidia-smi正常显示GPU信息,再执行:
nvcc --version
4、对比PyTorch官方文档中当前安装版本所要求的CUDA版本(例如torch 2.1.0通常要求CUDA 11.8或12.1),若nvcc输出版本不匹配,则需重装对应版本的PyTorch。
三、确认安装的是GPU版PyTorch而非CPU版
常见错误是在创建环境时误装了CPU-only版本的PyTorch,尤其当使用pip install torch时未指定索引源,会默认下载CPU版本。
1、卸载当前PyTorch:
pip uninstall torch torchvision torchaudio
2、访问https://pytorch.org/get-started/locally/,选择操作系统、包管理器、语言、计算平台(CUDA版本)后,复制生成的安装命令。
3、例如,针对CUDA 12.1,应执行:
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
4、安装后再次运行torch.cuda.is_available(),必须返回True才表示GPU版已生效。
四、检查模型加载代码中的device_map设置
transformers库的from_pretrained方法若显式指定device_map="cpu"或device="cpu",将强制绕过GPU;同时,device_map="auto"在GPU不可用时会静默回退至CPU,不报错也不提示。
1、检查模型加载语句是否包含以下任一写法:
model = AutoModelForCausalLM.from_pretrained(..., device_map="cpu")
model = AutoModelForCausalLM.from_pretrained(..., device="cpu")
2、若存在,将其修改为:
model = AutoModelForCausalLM.from_pretrained(..., device_map="auto")
3、对于仅含单卡的系统,也可显式指定:
model = AutoModelForCausalLM.from_pretrained(..., device_map={"": "cuda:0"})
4、禁止在device_map中传入字符串"cpu"或整数-1,否则必然绑定至CPU。
五、排查Hugging Face Accelerate或DeepSpeed配置干扰
若项目中启用了accelerate launch或集成DeepSpeed,其配置文件(如accelerate_config.yaml或ds_config.json)可能覆盖默认设备策略,强制启用CPU offload或禁用GPU。
1、检查是否存在accelerate_config.yaml文件,打开后确认以下字段值:
mixed_precision: "no"
use_cpu: false
gpu_ids: "all"
2、若use_cpu为true,立即改为false;若不存在该文件,可运行accelerate config重新交互生成配置。
3、检查启动命令是否含--cpu参数:
accelerate launch --cpu train.py
4、若有,删除--cpu参数并确保GPU可见后再运行。










