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

如何使用HuggingFace Trainer继续训练模型?

用HuggingFace Trainer继续训练模型的规范方法

问题场景

使用Seq2SeqTrainer完成16步训练后,希望继续训练至160步,尝试在Seq2SeqTrainer初始化时添加resume_from_checkpoint=True参数,触发报错:

TypeError: Seq2SeqTrainer.__init__() got an unexpected keyword argument 'resume_from_checkpoint'

同时不确定修改max_steps后重新创建Trainer实例是否为规范操作。

核心错误原因

resume_from_checkpoint并非Seq2SeqTrainer(或Trainer基类)初始化方法的参数,而是**train()方法的参数**,因此放在初始化时会触发参数不匹配错误。

规范的继续训练步骤

方法1:复用现有Trainer实例

  1. 更新训练参数中的目标步数:
    # 修改现有trainer的训练参数,将目标步数设为160
    trainer.args.max_steps = 160
    
  2. 调用train()方法并传入恢复参数:
    # 自动从output_dir中加载最新的checkpoint继续训练
    trainer.train(resume_from_checkpoint=True)
    # 也可以指定具体的checkpoint路径(比如训练生成的./checkpoint-16)
    # trainer.train(resume_from_checkpoint="./checkpoint-16")
    

方法2:重新创建Trainer实例

如果需要重新初始化Trainer,按以下步骤操作:

  1. 创建更新后的训练参数,将max_steps设为160:
    training_args = Seq2SeqTrainingArguments(
        output_dir="./",
        evaluation_strategy="steps",
        per_device_train_batch_size=2,
        per_device_eval_batch_size=2,
        predict_with_generate=True,
        logging_steps=2,
        save_steps=16,
        eval_steps=4,
        warmup_steps=1,
        max_steps=160,  # 修改为目标步数
        save_total_limit=1,
    )
    
  2. 重新初始化Trainer:
    trainer = Seq2SeqTrainer(
        model=multibert,
        tokenizer=tokenizer,
        args=training_args,
        train_dataset=train_data,
        eval_dataset=val_data,
    )
    
  3. 调用train()方法恢复训练:
    trainer.train(resume_from_checkpoint=True)
    

关键注意事项

  • resume_from_checkpoint=True会自动在output_dir目录下查找最新的checkpoint文件(如checkpoint-16),无需手动指定路径。
  • 确保save_total_limit参数设置合理,避免之前的checkpoint被自动删除(示例中设为1,会保留最新的1个checkpoint,足够继续训练)。
  • 继续训练时,全局步数会从之前的16步开始累加,直到达到新的max_steps=160。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 13:03:31