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

如何解决Google Colab运行Hugging Face BERT NER示例的CUDA运行时错误

问题修复方案

CUDA 710错误本质是交叉熵损失计算时标签值超出模型输出维度范围,触发CUDA侧断言报错,修复方法如下:

核心错误点

你代码中存在两处导致报错的硬伤:

  • 重复初始化模型时参数错误:前面已经用distilbert-base-cased初始化了匹配你数据集标签数量的模型,训练前又重新加载了一次distilbert-base-uncased且没有传入num_labels参数,模型默认分类头仅支持2分类,而WNUT数据集实体标签数远大于2,计算损失时标签越界触发CUDA报错。
  • 评估指标配置错误:多分类任务使用了仅适用于二分类的average='binary'配置,且未导入accuracy_score依赖。

修复步骤

  1. 删除重复的模型初始化代码
    找到训练前的这行错误代码直接删除即可:
# 删掉此行
model = DistilBertForTokenClassification.from_pretrained("distilbert-base-uncased")
  1. 修复评估指标函数
    替换原有compute_metrics函数为如下版本,同时补充缺失的依赖导入:
from sklearn.metrics import accuracy_score, precision_recall_fscore_support

def compute_metrics(pred):
    labels = pred.label_ids
    preds = pred.predictions.argmax(-1)
    # 过滤掉损失计算时忽略的-100标签
    filter_mask = labels != -100
    true_labels = labels[filter_mask]
    true_preds = preds[filter_mask]
    precision, recall, f1, _ = precision_recall_fscore_support(true_labels, true_preds, average='macro')
    acc = accuracy_score(true_labels, true_preds)
    return {
        'accuracy': acc,
        'f1': f1,
        'precision': precision,
        'recall': recall
    }
  1. 可选:优化标签编码逻辑(避免分词截断导致的赋值错误)
    替换原有encode_tags函数为如下版本,增加长度校验:
import numpy as np

def encode_tags(tags, encodings):
    labels = [[tag2id[tag] for tag in doc] for doc in tags]
    encoded_labels = []
    for doc_labels, doc_offset in zip(labels, encodings.offset_mapping):
        doc_enc_labels = np.ones(len(doc_offset),dtype=int) * -100
        arr_offset = np.array(doc_offset)
        valid_pos = np.where((arr_offset[:,0] == 0) & (arr_offset[:,1] != 0))[0]
        # 对齐有效位置和原始标签长度,避免截断导致的赋值越界
        valid_len = min(len(valid_pos), len(doc_labels))
        doc_enc_labels[valid_pos[:valid_len]] = doc_labels[:valid_len]
        encoded_labels.append(doc_enc_labels.tolist())
    return encoded_labels

生效操作

修改完成后重置Colab运行时,重新执行所有代码即可在GPU环境下正常训练。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 04:39:01