当前位置: 首页 > news >正文

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

生成式任务输入就是标签

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

# 版本 transformers==4.41.2
# 在trainer.py 的 3842 行
# Metrics!
if (self.compute_metrics is not Noneand all_preds is not Noneand all_labels is not Noneand 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

http://www.lryc.cn/news/397700.html

相关文章:

  • 苹果提出RLAIF:轻量级语言模型编写代码
  • [leetcode] shortest-subarray-with-sum-at-least-k 和至少为 K 的最短子数组
  • 专业140+总分420+天津大学815信号与系统考研经验天大电子信息与通信工程,真题,大纲,参考书。
  • 前端如何取消接口调用
  • k8s 容器环境下的镜像如何转换为docker 使用
  • FreeRTOS 队列
  • 如何识别图片文字转化为文本?5个软件帮助你快速提取图片文字
  • Flink SQL kafka连接器
  • glm-4 联网搜索 api 测试
  • Java毕业设计 基于SSM vue图书管理系统小程序 微信小程序
  • bert训练的一些技巧(rand() < self.skipgram_prb)
  • pandas修改时间索引报错处理
  • Nginx Bla~Bla~
  • java awt和swing介绍
  • 奇怪的错误记录
  • 来啦,经典传说大变身牛郎织女后代逗趣日常
  • 【uniapp-ios】App端与webview端相互通信的方法以及注意事项
  • Qt常用基础控件总结—表格控件(QTableWidget类)
  • 笔记:Entity Framework Core 数据库迁移add-migration
  • 准备工作+1、请求和响应+2、模型和管理站点
  • js 格式化时间
  • python 缩放照片
  • 【C语言】指针(1):入门理解(课堂随笔)
  • LLMs可以进行任务规划吗?如果不行,LLMs+GNN可以吗?
  • 性价比高充电宝有哪些?充电宝十大最佳品牌大盘点!
  • hnust 1963: 邻接矩阵表示法
  • Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
  • 215.Mit6.S081-实验三-page tables
  • flask使用定时任务flask_apscheduler(APScheduler)
  • ApiFox或postman怎么用params类型传输json或集合+json的String类型