huggingface-transformers:训练 BERT 并使用不同的注意力对其进行评估

Posted

技术标签:

【中文标题】huggingface-transformers:训练 BERT 并使用不同的注意力对其进行评估【英文标题】:huggingface-transformers: Train BERT and evaluate it using different attentions 【发布时间】:2020-08-23 07:13:52 【问题描述】:

这是一个澄清问题。我正在尝试使用标准注意力训练BERT provided by huggingface,并使用不同的注意力定义进行评估。

我考虑的操作是在下面的命令中将bert-base-uncased更改为我训练好的模型的路径(使用标准注意力),并在我自定义的注意力版本的安装下运行--do_eval

export GLUE_DIR=/path/to/glue
export TASK_NAME=MRPC

python ./examples/run_glue.py \
    --model_name_or_path bert-base-uncased \
    --task_name $TASK_NAME \
    --do_eval \
    --data_dir $GLUE_DIR/$TASK_NAME \
    --max_seq_length 128 \
    --per_gpu_eval_batch_size=8   \
    --per_gpu_train_batch_size=8   \
    --learning_rate 2e-5 \
    --num_train_epochs 3.0 \
    --output_dir /tmp/$TASK_NAME/

但是,我得到了意想不到的结果。所以我想确保我使用了正确的命令。有人可以和我确认或纠正我吗?

已编辑:版本为 2.8.0。

【问题讨论】:

请发布错误信息并添加您正在使用的转换器版本。 我没有错误信息,它正在输出结果。我编辑并添加了版本。 @cronoik “安装下我的自定义关注”是什么意思?你做了什么?您是否替换了相应的转换器方法? 是的。我改变了 BertSelfAttention 的实现。对困惑感到抱歉。 @cronoik 是的,应该可以。结果应该与原来的 BertSelfAttention 不同。不是这样吗? 【参考方案1】:

是的。经@cronoik 确认,这是正确的操作。

【讨论】:

以上是关于huggingface-transformers:训练 BERT 并使用不同的注意力对其进行评估的主要内容,如果未能解决你的问题,请参考以下文章

下载huggingface-transformers模型至本地,并使用from_pretrained方法加载

使用自定义 X 和 Y 数据训练 TFBertForSequenceClassification

如何禁用 TOKENIZERS_PARALLELISM=(true | false) 警告?

使用拥抱面变压器只保存最佳重量