如何在Windows系统上为SpaCy启用CUDA GPU加速
在SpaCy中启用GPU加速解决
en_core_web_trf模型CPU运行缓慢问题 SpaCy是一款实用的文本处理库,用来构建自定义模型做数据提取和处理很顺手。但我在用en_core_web_trf模型提取英文实体时,发现CPU运行速度慢到没法用,于是尝试用GPU来提升性能。
过程中踩了不少坑,毕竟GPU加速涉及NVIDIA驱动、CUDA、PyTorch和SpaCy的版本匹配问题,折腾几次后终于搞定,下面是亲测有效的配置步骤:
1. 确认GPU硬件与驱动
- 必须是支持CUDA的NVIDIA显卡(算力≥3.5),安装对应版本的NVIDIA驱动,驱动版本要和后续安装的CUDA Toolkit兼容(可查NVIDIA官方文档确认适配关系)。
2. 安装匹配的CUDA Toolkit
- 不要选最新版,要和PyTorch支持的版本对应。比如当前PyTorch稳定版支持CUDA 11.8或12.1,选好版本后安装,记得勾选“添加到系统环境变量”。
3. 安装适配的PyTorch
- 根据你的CUDA版本,用官方推荐的命令安装。例如CUDA 11.8的安装命令:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 - 安装后验证:运行以下代码,返回
True则说明PyTorch GPU配置正常:import torch print(torch.cuda.is_available())
4. 安装支持GPU的SpaCy组件
- 先升级SpaCy到最新稳定版:
pip install -U spacy - 安装
spacy-transformers插件(Transformer模型依赖这个):pip install spacy-transformers - 下载
en_core_web_trf模型:python -m spacy download en_core_web_trf
5. 代码中启用GPU加速
- 加载模型前先启用GPU,示例代码如下:
import spacy import torch # 启用GPU(如果可用) if torch.cuda.is_available(): spacy.require_gpu() print("GPU加速已开启") else: print("未检测到GPU,将使用CPU") # 加载模型并处理文本 nlp = spacy.load("en_core_web_trf") doc = nlp("Apple is looking to buy a U.K. startup for $1 billion") # 输出提取的实体 for ent in doc.ents: print(f"{ent.text}: {ent.label_}")
这样配置后,en_core_web_trf的运行速度会有明显提升。
内容的提问来源于stack exchange,提问作者Anton
相关产品推荐
相关产品推荐

