作为一名深度学习初学者,最近在基于 Hugging Face Transformers 微调 BERT 模型做 QNLI 任务时,被Checkpoint 保存和TrainingArguments 配置这两个知识点卡了整整两天。从磁盘爆满、权重文件加载报错,到不知道如何控制 Checkpoint 数量,每一个问题都让我一度想放弃。好在最终逐一解决,特此整理成博客,希望能帮到同样踩坑的朋友。
一、核心背景:我在做什么?
本次任务是基于 GLUE 数据集的 QNLI(Question Natural Language Inference,问题自然语言推理)任务,用 Hugging Face 的run_glue.py脚本微调bert-base-cased模型。核心需求很简单:
- 顺利完成模型微调,避免中途中断;
- 控制 Checkpoint(模型快照)的保存数量,防止磁盘爆满;
- 后续能正常加载 Checkpoint,用于后续的 TRAK 贡献度分析。
但实际操作中,光是 “Checkpoint 保存” 这一个环节,就暴露出我对TrainingArguments(训练参数配置类)的认知盲区。
二、先搞懂:TrainingArguments 是什么?为什么它很重要?
在解决问题前,必须先理清TrainingArguments的核心作用 —— 它是 Hugging Face Transformers 库中控制训练全流程的 “总开关”,几乎所有与训练相关的配置(如批次大小、学习率、Checkpoint 保存策略)都通过它定义。
1. TrainingArguments 的本质
TrainingArguments是一个数据类(dataclass) ,它将训练过程中需要的所有参数(从优化器设置到日志保存)封装成结构化对象,再传递给Trainer(训练器)实例。无需手动编写训练循环,只需配置好TrainingArguments,Trainer就能自动完成训练、验证、Checkpoint 保存等操作。
2. 常用核心参数(按功能分类)
我整理了本次任务中最常用的参数,按 “训练基础配置”“Checkpoint 控制”“日志与验证” 三类划分,新手直接套用即可:
| 类别 | 参数名 | 作用说明 | 常用值示例 |
|---|---|---|---|
| 训练基础配置 | output_dir |
训练结果(Checkpoint、日志、指标)的保存根路径 | /root/autodl-tmp/bert_qnli |
per_device_train_batch_size |
单设备训练批次大小(GPU 内存不足就调小) | 8/16/32 | |

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



