gpt4 book ai didi

deep-learning - 使用拥抱面变压器仅保存最佳重量

转载 作者:行者123 更新时间:2023-12-04 12:19:28 25 4
gpt4 key购买 nike

目前,我正在构建一个新的基于变压器的模型,其中包含拥抱面变压器,其中注意力层与原始模型不同。我用过 run_glue.py在 GLUE 基准测试中检查我的模型的性能。但是,我发现Huggingface-transformers的Trainer类保存了我设置的所有检查点,在那里我可以设置要保存的最大检查点数。但是,我只想用 保存重量(或其他类似优化器的东西)最好的验证数据集上的性能,而当前的 Trainer 类似乎没有提供这样的东西。 (如果我们设置检查点的最大数量,那么它会删除旧的检查点,而不是性能较差的检查点)。 Someone already asked about same question on Github ,但我无法弄清楚如何修改脚本并做我想做的事。目前,我正在考虑制作一个自定义 Trainer 类,该类继承原始类并更改 train()方法,如果有一种简单而简单的方法可以做到这一点,那就太好了。提前致谢。

最佳答案

您可以在拥抱脸中尝试训练师的以下参数

training_args = TrainingArguments(
output_dir='/content/drive/results', # output directory
do_predict= True,
num_train_epochs=3, # total number of training epochs
**per_device_train_batch_size=4, # batch size per device during training
per_device_eval_batch_size=2**, # batch size for evaluation
warmup_steps=1000, # number of warmup steps for learning rate
save_steps=1000,
save_total_limit=10,
load_best_model_at_end= True,
weight_decay=0.01, # strength of weight decay
logging_dir='./logs', # directory for storing logs
logging_steps=0, evaluate_during_training=True)
可能有更好的方法来避免过多的检查点并选择最佳模型。
到目前为止,您不能只保存最好的模型,而是检查评估何时产生比前一个更好的结果。

关于deep-learning - 使用拥抱面变压器仅保存最佳重量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62525680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com