首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用艾伯特(拥抱脸-变压器)运行SQuAD脚本

使用艾伯特(拥抱脸-变压器)运行SQuAD脚本
EN

Stack Overflow用户
提问于 2020-04-19 14:54:36
回答 2查看 697关注 0票数 0

我有一个问题,关于使用艾伯特与SQuAD 2.0拥抱脸变压器脚本。

在github页面中,没有关于如何使用ALBERT运行脚本的具体说明,因此我使用了与BERT一起运行脚本的相同规范。然而,最终得到的结果是(exact_match = 30.632527583593028,f1 = 36.36948708435092),与BERT取得的(f1 = 88.52,exact_match = 81.22)和在github页面上报告的结果相差很远。所以我想我可能做错了什么。

这是我在命令行中运行的代码:

代码语言:javascript
复制
python run_squad.py \
   --model_type albert \
   --model_name_or_path albert-base-v2 \
   --do_train   --do_eval \
   --train_file train-v2.0.json \
   --predict_file dev-v2.0.json \
   --per_gpu_train_batch_size 5 \
   --learning_rate 3e-5 \
   --num_train_epochs 2.0 \
   --max_seq_length 384 \
   --doc_stride 128 \
   --output_dir /aneves/teste2/output/

这个和变压器页面上唯一的区别是model_name,在它中他们使用'bert_base_uncased',而per_gpu_train_batch_size是12,但是由于GPU中的内存限制,我不得不使用5。

我是在运行脚本时忘记了一些选项,还是由于将per_gpu_train_batch_size设置为5而不是12而实现了这些结果?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-08 00:51:53

你设置旗子了吗?

代码语言:javascript
复制
--version_2_with_negative

敬真?因为Team-2.0包含一些没有答案的问题,所以您需要将其设置为True。

票数 0
EN

Stack Overflow用户

发布于 2020-04-20 06:39:55

您可以使用梯度累积步骤来补偿小批大小。实质上,梯度积累步骤参数如下:

假设您想要64的batch_size,但是您的GPU只能容纳32大小的批处理。

因此,您将每批32批进行两次传递,累积渐变,然后在2批之后进行反向传递。

第二,超参数在深度学习模型中起着巨大的作用。为了获得更好的精度,您必须尝试几组参数。我认为把学习率降低到e-6的顺序可能会有帮助。虽然这只是猜测。

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

https://stackoverflow.com/questions/61306391

复制
相关文章

相似问题

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