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

PyTorch可检测GPU但spaCy 3 NER训练时提示未检测到GPU求助

问题描述

设备搭载Tesla T4 GPU,GPU规格如下:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.86.01    Driver Version: 515.86.01    CUDA Version: 11.7     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4            Off  | 00000000:00:04.0 Off |                    0 |
| N/A   68C    P0    29W /  70W |    567MiB / 15360MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                           
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1352      C   python                            563MiB |
+-----------------------------------------------------------------------------+

通过PyTorch命令验证,GPU可正常使用:

>>> import torch
>>> torch.backends.cudnn.is_available()    
True
>>> torch.backends.cudnn.version()
8500
>>> torch.cuda.is_available()
True
>>> torch.zeros(1).cuda()
tensor([0.], device='cuda:0')
>>> torch.cuda.get_device_name()
'Tesla T4'

执行spaCy3 NER模型训练命令:

python3 -m spacy train configs/config.cfg --output training/ --path.train corpus/train.spacy --path.dev corpus/train.spacy --gpu-id 0

出现错误:

ValueError: No GPU devices detected

当前环境:Python 3.10.6,PyTorch 1.13.1+cu117,已确认版本兼容且GPU可执行其他常规任务,未找到有效解决方案。

可行的解决步骤
  • 安装/修复spaCy的GPU支持:执行pip install spacy[cuda117](匹配你的CUDA 11.7版本),确保spaCy关联上CUDA依赖;若已安装,可尝试重新安装修复组件。
  • 验证spaCy的GPU检测能力:在Python交互环境运行以下代码,确认spaCy能否识别GPU:
    import spacy
    from thinc.api import has_gpu, require_gpu
    print(has_gpu())
    print(require_gpu(0))  # 尝试调用GPU 0
    
    若返回False,说明Thinc库(spaCy底层依赖)未正确适配CUDA,需检查Thinc版本与PyTorch、CUDA的兼容性。
  • 生成GPU适配的配置文件:用spaCy自动生成支持GPU的NER训练配置,替换原配置后重试:
    python3 -m spacy init config configs/gpu_config.cfg --lang zh --pipeline ner --optimize efficiency --gpu
    
  • 检查环境变量:确保设置CUDA_VISIBLE_DEVICES=0,让spaCy能识别到GPU设备。
  • 排查权限问题:若在容器/虚拟环境中运行,确认当前用户拥有GPU设备访问权限,可临时用sudo执行训练命令测试(仅用于排查,不推荐长期使用)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:40:18