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

设置load_best_model_at_end=True后,如何确认HF Hub推送的是最优模型?

确认Hugging Face Hub推送模型的方法及指标显示问题解决

一、验证推送的是最优模型还是最后一轮模型

1. 本地直接评估验证

因为你设置了load_best_model_at_end=True,训练结束后trainer.model已经加载了最优轮次的模型。直接用它重新评估测试集,看结果是否和第7轮的最优F1匹配:

eval_results = trainer.evaluate(tokenized_datasets["test"])
print(eval_results["eval_f1"])

如果输出的F1和第7轮的最优值一致,说明推送的就是最优模型,模型卡显示的最后一轮指标只是自动生成时的日志读取问题,不代表模型本身。

2. 对比本地与Hub的权重文件哈希

  • 本地找到训练输出目录下的checkpoint-best文件夹(或对应第7轮的checkpoint文件夹),查看pytorch_model.bin的哈希值:
    Linux/macOS用命令:
    md5sum bert-finetuned-ner/checkpoint-best/pytorch_model.bin
    
    Windows用命令:
    certutil -hashfile bert-finetuned-ner/checkpoint-best/pytorch_model.bin MD5
    
  • 登录Hugging Face Hub进入你的模型仓库,找到pytorch_model.bin,查看文件详情里的哈希值,和本地的对比。如果一致,说明推送的是最优模型。

3. 查看训练日志

翻本地训练日志(或Hub仓库里的training_args.bin对应的日志),找Loading best model from的条目,比如:

Loading best model from ./bert-finetuned-ner/checkpoint-xxxx (score: 0.95)
这个路径对应的就是被加载的最优模型,而trainer.push_to_hub()会推送当前trainer.model的权重,也就是这个最优模型。

二、修正模型卡的指标显示

如果确认推送的是最优模型,但模型卡显示最后一轮的指标,可以手动更新:

  • 直接在Hub仓库编辑README.md,把指标部分替换成第7轮的最优F1值;
  • 或者训练结束后手动生成包含最优指标的模型卡再推送:
# 替换成你的实际最优F1值
trainer.create_model_card(metrics={"eval_f1": 0.95})
trainer.push_to_hub()

内容的提问来源于stack exchange,提问作者Giusè Reichardt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 07:25:18