python - Huggingface Transformer - GPT2 从保存的检查点恢复训练

标签 python pytorch huggingface-transformers language-model gpt-2

恢复 GPT2 微调,从 run_clm.py 实现

GPT2 huggingface有一个参数可以从保存的检查点恢复训练,而不是从头开始重新训练?假设 python 笔记本在训练时崩溃了,检查点将被保存,但是当我再次训练模型时它仍然从头开始训练。

来源:here

微调代码:

!python3 run_clm.py \
    --train_file source.txt \
    --do_train \
    --output_dir gpt-finetuned \
    --overwrite_output_dir \
    --per_device_train_batch_size 2 \
    --model_name_or_path=gpt2 \
    --save_steps 100 \
    --num_train_epochs=1 \
    --block_size=200 \
    --tokenizer_name=gpt2

从上面的代码来看,run_clm.pyhuggingface提供的脚本微调 gpt2 以使用自定义数据集进行训练

最佳答案

要从检查点恢复训练,您可以使用 --model_name_or_path 参数。因此,不要提供默认的 gpt2,而是将其定向到最新的检查点文件夹。

所以你的命令变成:

!python3 run_clm.py \
    --train_file source.txt \
    --do_train \
    --output_dir gpt-finetuned \
    --overwrite_output_dir \
    --per_device_train_batch_size 2 \
    --model_name_or_path=/content/models/checkpoint-5000 \
    --save_steps 100 \
    --num_train_epochs=1 \
    --block_size=200 \
    --tokenizer_name=gpt2

关于python - Huggingface Transformer - GPT2 从保存的检查点恢复训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65529156/

相关文章:

python - 如何通过 python 和 dbus 创建 systemd transient 计时器和服务(类似于 systemd-run)?

python - 导入pytorch microsoft visual C++ Redistributable 时未安装

python - 如何解决google colab中的 "No module named '工具''?

transformer - 如何使用 GPT2 模型获得直接下一个词的概率?

python - 为什么 ffmpeg-python 会在这里抛出编解码器错误?

python - 无法导入模块 'lambda_function' : No module named xlrd

python - 安装 NVIDIA Apex for Python 3.8.5 并兼容 PyTorch 1.9

python - 在微调 GPT-2 模型时如何处理堆栈期望每个张量具有相同大小的误差?

huggingface-transformers - 如何使用拥抱面部转换器为翻译任务训练编码器-解码器模型?

python - 读取 Azure 存储帐户上的文件,然后使用 Python 将其写入另一个存储帐户