关于transformers库验证时不进入compute_metrics方法的一些坑

生成式任务输入就是标签

transformers在进入compute_metrics前会有一个判断,源码如下:

# 版本 transformers==4.41.2
# 在trainer.py 的 3842 行
# Metrics!
if (
    self.compute_metrics is not None
    and all_preds is not None
    and all_labels is not None
    and not self.args.batch_eval_metrics
):
    if args.include_inputs_for_metrics:
        metrics = self.compute_metrics(
            EvalPrediction(predictions=all_preds, label_ids=all_labels, inputs=all_inputs)
        )
    else:
        metrics = self.compute_metrics(EvalPrediction(predictions=all_preds, label_ids=all_labels))
elif metrics is None:
    metrics = {}

生成式任务如果没有标签字段,即labels那么这里的all_labels is not None就会是false,从而无法进入compute_metrics方法。
此时可以在TrainingArguments中加入一个变量label_names把输入文本作为标签,如下:

training_args = TrainingArguments(
...
label_names=['input_ids'], # 这里假设我的文本输入叫 ‘input_ids’
...
)

这样就可以进入compute_metrics函数了。
此外,若需要将输入的变量传入compute_metrics,可以在TrainingArguments中设置include_inputs_for_metrics=True

相关推荐

  1. 关于LLaMA Tokenizer一些...

    2024-07-11 23:14:04       48 阅读
  2. 关于在Ubuntu上配置mysql踩一些

    2024-07-11 23:14:04       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 23:14:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 23:14:04       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 23:14:04       58 阅读
  4. Python语言-面向对象

    2024-07-11 23:14:04       69 阅读

热门阅读

  1. kubernetes授予用户指定命名空间的使用权限

    2024-07-11 23:14:04       25 阅读
  2. 开发中缓存的使用场景、注意事项及优缺点分析

    2024-07-11 23:14:04       21 阅读
  3. C# 如何单纯的优化循环

    2024-07-11 23:14:04       23 阅读
  4. .Net Core 微服务之Consul(一)

    2024-07-11 23:14:04       19 阅读
  5. YOLO 在OPENCV QT上如何使用?

    2024-07-11 23:14:04       23 阅读
  6. 技术成神之路:设计模式(一)单例模式

    2024-07-11 23:14:04       21 阅读
  7. perl语言入门学习

    2024-07-11 23:14:04       23 阅读
  8. Postman中的数据堡垒:API测试数据隔离的精粹

    2024-07-11 23:14:04       21 阅读
  9. JlmPack在医疗行业的使用

    2024-07-11 23:14:04       18 阅读
  10. Git-Updates were rejected 解决

    2024-07-11 23:14:04       22 阅读