首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Colab上微调Huggingface GPT-2时出现问题--断言错误

在Colab上微调Huggingface GPT-2时出现问题--断言错误
EN

Stack Overflow用户
提问于 2020-01-29 16:10:59
回答 1查看 721关注 0票数 1

我希望根据我自己的文本数据对Huggingface的GPT-2转换器模型进行微调。我想在Google Colab笔记本上做这件事。然而,我有两个问题。首先,它似乎不起作用。

我通过Colab安装各种零碎的东西:

代码语言:javascript
复制
!git clone https://github.com/huggingface/transformers
%cd transformers
!pip install .
!pip install -r ./examples/requirements.txt

为了进行培训,我将建议的WikiText示例数据上载到,并在笔记本中运行建议的Following the example命令。

代码语言:javascript
复制
!export TRAIN_FILE=wiki.train.raw
!export TEST_FILE=wiki.test.raw

!python run_lm_finetuning.py \
    --output_dir=output \
    --model_type=gpt2 \
    --model_name_or_path=gpt2 \
    --do_train \
    --train_data_file=$TRAIN_FILE \
    --do_eval \
    --eval_data_file=$TEST_FILE

这个过程进行了一段时间,但随后我得到了一个断言错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "run_lm_finetuning.py", line 790, in <module>
    main()
  File "run_lm_finetuning.py", line 735, in main
    train_dataset = load_and_cache_examples(args, tokenizer, evaluate=False)
  File "run_lm_finetuning.py", line 149, in load_and_cache_examples
    return TextDataset(tokenizer, args, file_path=file_path, block_size=args.block_size)
  File "run_lm_finetuning.py", line 88, in __init__
    assert os.path.isfile(file_path)
AssertionError

我想这和我的训练数据有关?请注意,这两个文件与lm_finetuning.py脚本位于同一文件夹中,因此我不确定os.path问题可能是什么。

代码语言:javascript
复制
benchmarks.py     run_generation.py   summarization
contrib       run_glue.py         test_examples.py
distillation      run_lm_finetuning.py    tests_samples
hans          run_multiple_choice.py  utils_multiple_choice.py
mm-imdb       run_ner.py          utils_ner.py
pplm          run_squad.py        wiki.test.raw
README.md     run_tf_glue.py      wiki.test.tokens
requirements.txt  run_tf_ner.py       wiki.train.raw
run_bertology.py  run_xnli.py         wiki.train.tokens

我的第二个问题是,即使微调确实有效,我也不知道如何用我自己的文本数据复制结果。我不能打开WikiText原始文件,所以我不知道它们是什么格式。是普通的纯文本吗?它们是以某种方式标记化的吗?如果有人能在这方面给我启发,我将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2020-01-31 02:49:30

如果其他人来寻找解决方案,答案是bash中的环境变量需要使用%指定,而不是google colab中的!。所以脚本应该是:

代码语言:javascript
复制
%env TRAIN_FILE=/content/wiki.train.raw
%env TEST_FILE=/content/wiki.test.raw

!python /content/transformers/examples/run_lm_finetuning.py \
    --output_dir=output \
    --model_type=gpt2 \
    --model_name_or_path=gpt2 \
    --do_train \
    --train_data_file=/content/wiki.train.raw \
    --do_eval \
    --eval_data_file=/content/wiki.test.raw

还请注意,使用绝对文件路径比使用相对文件路径更容易。在hugginface GitHub存储库上向cronoik致敬,因为他指出了这一切。

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

https://stackoverflow.com/questions/59962851

复制
相关文章

相似问题

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