运行 使用 ALBERT 的 SQuAD 脚本(huggingface-transformers)
Running SQuAD script using ALBERT (huggingface-transformers)
我有一个关于将 ALBERT 与 SQuAD 2.0 huggingface-t运行sformers 脚本一起使用的问题。
在github页面中,没有关于如何运行脚本使用ALBERT的具体说明,所以我使用了与运行脚本与BERT相同的规范。
然而,最终实现的结果是(exact_match = 30.632527583593028,f1 = 36.36948708435092),与BERT实现的以及在github 页。所以我认为我可能做错了什么。
这是我在命令行中运行的代码:
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/
这个和来自 t运行sformers 页面的唯一区别是 model_name,他们使用 'bert_base_uncased',而 per_gpu_train_batch_size是 12,但由于我的 GPU 中的内存限制,我不得不使用 5。
我是在 运行 脚本时忘记了某些选项,还是因为 per_gpu_train_batch_size 被设置为 5 而不是 12 而获得了结果?
谢谢!
您可以使用梯度累积步骤来补偿小批量。
本质上,梯度累加步长参数是这样的:
假设您想要 batch_size 64,但您的 GPU 只能容纳大小为 32 的批次。
所以你进行了两遍,每遍 32 批次,累积你的梯度,然后在 2 批次后进行反向传递。
其次,超参数在深度学习模型中发挥着巨大的作用。您将不得不尝试几组参数以获得更好的准确性。我认为将学习率降低到 e-6 的数量级可能会有所帮助。虽然这只是猜测。
你设置标志了吗
--version_2_with_negative
对吗?由于SQUAD-2.0包含一些没有答案的问题,您需要将其设置为True。
我有一个关于将 ALBERT 与 SQuAD 2.0 huggingface-t运行sformers 脚本一起使用的问题。
在github页面中,没有关于如何运行脚本使用ALBERT的具体说明,所以我使用了与运行脚本与BERT相同的规范。 然而,最终实现的结果是(exact_match = 30.632527583593028,f1 = 36.36948708435092),与BERT实现的以及在github 页。所以我认为我可能做错了什么。
这是我在命令行中运行的代码:
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/
这个和来自 t运行sformers 页面的唯一区别是 model_name,他们使用 'bert_base_uncased',而 per_gpu_train_batch_size是 12,但由于我的 GPU 中的内存限制,我不得不使用 5。
我是在 运行 脚本时忘记了某些选项,还是因为 per_gpu_train_batch_size 被设置为 5 而不是 12 而获得了结果?
谢谢!
您可以使用梯度累积步骤来补偿小批量。 本质上,梯度累加步长参数是这样的:
假设您想要 batch_size 64,但您的 GPU 只能容纳大小为 32 的批次。
所以你进行了两遍,每遍 32 批次,累积你的梯度,然后在 2 批次后进行反向传递。
其次,超参数在深度学习模型中发挥着巨大的作用。您将不得不尝试几组参数以获得更好的准确性。我认为将学习率降低到 e-6 的数量级可能会有所帮助。虽然这只是猜测。
你设置标志了吗
--version_2_with_negative
对吗?由于SQUAD-2.0包含一些没有答案的问题,您需要将其设置为True。