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

如何将FinBert/BERT代码从CPU迁移至NVIDIA GPU运行?

解决FinBert代码迁移至GPU运行的问题

核心问题原因

你使用的是基于PyTorch的Hugging Face Transformers库实现FinBert,但尝试用TensorFlow的tf.device上下文指定GPU,这两个框架的设备管理体系完全独立,因此该方法无法生效。

正确的GPU迁移步骤

1. 将模型与Pipeline绑定到GPU

修改模型加载和Pipeline创建代码,明确指定使用GPU:

# 导入必要包
import pandas as pd
from transformers import BertTokenizer, BertForSequenceClassification
from transformers import pipeline 
import nltk

# 加载预训练FinBert模型并移至GPU
finbert = BertForSequenceClassification.from_pretrained('yiyanghkust/finbert-tone', num_labels=3).to('cuda')
tokenizer = BertTokenizer.from_pretrained('yiyanghkust/finbert-tone')
# 创建Pipeline时指定device=0(对应你的GPU设备索引)
nlp = pipeline("sentiment-analysis", model=finbert, tokenizer=tokenizer, device=0)

2. 验证GPU运行状态

添加以下代码确认模型是否成功迁移到GPU:

print(f"模型是否在GPU上运行: {next(finbert.parameters()).is_cuda}")

若输出True,则说明模型已正确部署到GPU。

额外提速优化

你的循环为逐条处理数据,效率较低,可尝试批量处理优化:

  • 将所有文本拆分出的句子合并为一个大列表,一次性传入nlp进行批量预测
  • 根据原文本的句子数量拆分结果,再计算单条文本的情感占比

这种方式能减少GPU设备的来回切换开销,进一步提升运行速度。

注意事项

你的NVIDIA GeForce MX130为入门级GPU,显存4GB,处理大批次数据时需控制批量大小避免显存溢出:

  • 通过Pipeline的batch_size参数调整(例如batch_size=8或batch_size=16)
  • 若出现显存不足错误,继续减小batch_size即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:10:28