首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确细化t5模型

如何正确细化t5模型
EN

Stack Overflow用户
提问于 2022-03-24 18:00:33
回答 1查看 2.2K关注 0票数 0

我正在按照这个笔记本设计一个T5基模型。然而,验证集和训练集的损失非常缓慢。我把learning_rate改成了一个更大的数字,但没有帮助。最终,bleu在验证集上的得分很低(约13.7分),翻译质量也很低。

代码语言:javascript
复制
***** Running Evaluation *****
  Num examples = 1000
  Batch size = 32
{'eval_loss': 1.06500244140625, 'eval_bleu': 13.7229, 'eval_gen_len': 17.564, 'eval_runtime': 16.7915, 'eval_samples_per_second': 59.554, 'eval_steps_per_second': 1.906, 'epoch': 5.0}

如果我使用“赫尔辛基-NLP/opus-mt-en-ro”模型,损失会适当地减少,最后,精细模型工作得很好。

如何正确地微调T5基?我错过了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2022-03-24 22:05:17

我认为本教程中显示的度量标准是针对已经经过培训的EN>RO opus模型,该模型当时进行了微调。我没有看到它的度量的前后比较,所以很难判断微调到底有多大的差别。

您通常不应该期望微调T5的结果是相同的,因为它不是一个(纯)机器翻译模型。更重要的是微调前后的度量差异。

我能想象到你的训练出了两件事:

  1. 您是否在输入序列("translate English to Romanian: ")中添加了适当的"translate English to Romanian: "前缀,用于您的培训和评估?如果你不这样做的话,你可能会从零开始训练一个新任务,而不是使用在MT上训练到罗马尼亚的模型(还有德语或者其他的)。您可以看到这是如何影响模型行为的,例如,在这个推理演示中:培训前使用的语言培训前未使用的语言
  2. 如果您选择了一个相对较小的模型,如t5-base,但您在教程中坚持使用num_train_epochs=1,那么您的列车时代性可能太低,无法产生明显的差别。只要你从它得到显著的性能提升,就试着增加它的时代,在这个例子中,这可能是至少前5到10个时代的情况。

实际上,我做了一些与您之前为EN>DE (德语)所做的非常相似的事情。我在一个包含30.000个样本的自定义数据集上对opus-mt-en-det5-base进行了10个年代的精细调整。opus-mt-en-de BLEU从0.256增加到0.388,t5-base从0.166增加到0.340,只是想让你知道该期待什么。罗马尼亚语/您使用的数据集对模型来说可能是一个更大的挑战,但是结果会有不同的分数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71607360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档