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

Azure Databricks中spaCy执行require_gpu()提示GPU不可用

Azure Databricks 环境spaCy调用GPU失败(torch可识别GPU)排查方案

核心原因

spaCy的GPU加速依赖CuPy作为计算后端,和PyTorch自带的独立CUDA运行时完全隔离,PyTorch能识别GPU仅代表PyTorch自身的CUDA绑定正常,不代表系统全局CUDA环境、spaCy依赖的CuPy版本匹配可用。

排查&解决步骤

  • 第一步:确认集群CUDA版本
    在notebook中执行nvidia-smi,查看输出右上角标注的CUDA大版本(如11.3、11.8、12.1),后续安装依赖必须和该版本严格对齐。
  • 第二步:清理冲突依赖
    执行以下命令卸载可能存在冲突的旧版本包:
    pip uninstall -y spacy cupy cupy-cuda11x cupy-cuda12x thinc
    
    注意不要同时安装多个不同CUDA版本的CuPy包,会直接导致GPU初始化失败。
  • 第三步:安装版本匹配的依赖
    根据第一步查到的CUDA版本,安装对应后缀的spaCy GPU组件,不要直接执行无版本指定的pip install spacy[cuda]:
    • CUDA 11.x系列:执行pip install spacy[cuda11x]==3.7.4(3.7.x是对Python 3.9兼容性最好的稳定版本,过高版本存在Python3.9适配问题)
    • CUDA 12.x系列:执行pip install spacy[cuda12x]==3.7.4
  • 第四步:修复Databricks环境变量异常
    Azure Databricks部分GPU运行时会默认错误设置CUDA_VISIBLE_DEVICES环境变量,PyTorch初始化时会自动重置该变量因此不受影响,但CuPy会直接读取该变量枚举设备。在调用spaCy GPU接口前先执行以下代码手动指定设备:
    import os
    os.environ["CUDA_VISIBLE_DEVICES"] = "0"
    

验证方法

执行以下代码,返回True即代表GPU可被spaCy正常调用:

import spacy
print(spacy.require_gpu())

如果仍报错,可执行import cupy; print(cupy.cuda.runtime.getDeviceCount())排查CuPy层问题,若返回0则代表CuPy和CUDA版本仍不匹配,重新安装对应版本的CuPy即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 13:03:10