news 2026/6/11 10:28:01

第37章:Trainer、Callback 与训练循环源码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第37章:Trainer、Callback 与训练循环源码

1 项目背景

业务场景

算法团队在客服工单分类任务的训练过程中遇到了一个奇怪的问题:训练 loss 一直在正常下降,但验证集 F1 在第 2 个 epoch 后突然从 0.89 跌到 0.62,之后一直震荡不恢复。更奇怪的是,Trainer 的EarlyStoppingCallback没有触发——因为它是基于eval_loss判断的,而eval_loss仍在缓慢下降。

小陈需要在训练过程中同时监控 F1——当 F1 连续 3 个 epoch 没有提升时提前停止训练。此外,还需要在指标异常时发送钉钉告警。这要求他深入理解 Trainer 的 Callback 机制。

另一个需求是自定义 loss:由于投诉类工单的标签极度稀疏(仅占 5%),标准的 CrossEntropyLoss 会让模型忽略投诉类。小陈需要在训练时给类别加权。

痛点

Trainer 虽然封装良好,但一旦需要自定义行为,就必须理解其内部机制:

Trainer.train() ├── _inner_training_loop() │ ├── for epoch in epochs: │ │ ├── for step, batch in dataloader: │ │ │ ├── training_step(batch) ← 可重写 │ │ │ │ ├── model(**batch) ← forward │
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 10:18:10

HS2-HF补丁:如何用5分钟解锁Honey Select 2的完整游戏体验

HS2-HF补丁:如何用5分钟解锁Honey Select 2的完整游戏体验 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾经因为语言障碍而无法完全享受Ho…

作者头像 李华
网站建设 2026/6/11 10:14:07

企业知识库上RAG:200+格式文档怎么拆、怎么索引、怎么不踩坑

企业知识库上RAG:200格式文档怎么拆、怎么索引、怎么不踩坑 搞企业知识库的人,十个里有九个被"格式太多"这件事折磨过。CAD图纸、PSD源文件、PDF合同、Word方案、Excel报表、视频会议录像、邮件附件……我2024年帮某设计院搭RAG知识库的时候&a…

作者头像 李华