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

DistilBERT模型训练报错:未返回Loss的原因及解决方法

问题分析与修复方案

问题背景

尝试基于自定义CSV数据集训练文本分类模型,数据集结构如下:

DatasetDict({
    train: Dataset({
        features: ['Label', 'Title', 'Text'],
        num_rows: 350
    })
    test: Dataset({
        features: ['Label', 'Title', 'Text'],
        num_rows: 141
    })
})

执行T.train()时触发ValueError,报错:

ValueError: The model did not return a loss from the inputs, only the following keys: logits. For reference, the inputs it received are input_ids,attention_mask.

错误根源

核心原因是模型训练时未接收到标签数据。AutoModelForSequenceClassification只有在输入包含labels参数时,才会自动计算并返回损失;如果没有labels,模型只会输出logits,导致Trainer无法计算损失触发报错。

与官方示例的具体差异

  1. 标签字段名不匹配:官方示例数据集使用label(小写)作为标签列名,而你的数据集用的是Label(大写),Trainer默认只会识别labels或label字段作为模型的标签输入。
  2. Tokenize函数未传递标签:官方示例的tokenize逻辑会保留标签字段,你的代码仅处理了文本输入,未将Label字段映射为模型需要的labels参数。
  3. 计算指标函数存在拼写错误:函数参数定义为evel,但内部使用了未定义的eval变量,后续会引发新的错误。
  4. 缺失numpy依赖导入:ComputeMetrics中使用np.argmax但未导入numpy库。

修复步骤

1. 修正Tokenize函数,传递标签数据

修改TokenizeData函数,将数据集的Label字段重命名为模型期望的labels:

def TokenizeData(Data):
    # 处理Title文本
    tokenized_output = Tokenizer(Data["Title"], truncation=True)
    # 将Label字段映射为模型需要的labels参数
    tokenized_output["labels"] = Data["Label"]
    return tokenized_output

2. 修复计算指标函数的问题

添加numpy导入,并修正参数名避免冲突:

# 在代码开头新增numpy导入
import numpy as np

def ComputeMetrics(eval_pred):
    Predictions, Labels = eval_pred
    Predictions = np.argmax(Predictions, axis=1)
    return accuracy.compute(predictions=Predictions, references=Labels)

3. (可选)结合Title和Text字段训练

如果任务需要同时使用标题和文本内容,修改Tokenize函数合并两个字段:

def TokenizeData(Data):
    # 合并Title与Text作为模型输入文本
    combined_texts = [f"{title} {text}" for title, text in zip(Data["Title"], Data["Text"])]
    tokenized_output = Tokenizer(combined_texts, truncation=True)
    tokenized_output["labels"] = Data["Label"]
    return tokenized_output

4. 验证数据集字段

运行以下代码确认处理后的数据集包含labels字段:

print(TokenizedData["train"].features)

输出应包含labels字段,确保模型训练时能正确获取标签。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 15:15:08