Точная настройка Huggingface GPT-2 на Colab - ошибка утверждения - PullRequest
0 голосов
/ 29 января 2020

Я хочу sh, чтобы настроить модель трансформатора Huggingface GPT-2 на мои собственные текстовые данные. Я хочу сделать это на ноутбуке Google Colab. Однако у меня есть две проблемы. Во-первых, это не похоже на работу.

Я устанавливаю различные биты и кусочки через Colab:

!git clone https://github.com/huggingface/transformers
%cd transformers
!pip install .
!pip install -r ./examples/requirements.txt

Следуя примеру , я загружаю предложенные образцы данных WikiText в для обучения и запускаю предложенные команды CLI в записной книжке.

!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

Это немного пыхтит, но потом я получаю ошибку подтверждения:

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 может быть.

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, поэтому понятия не имею, в каком они формате. Обычный обычный текст? Они токенизированы каким-то образом? Если бы кто-нибудь мог просветить меня в этом, это было бы очень признательно!

1 Ответ

1 голос
/ 30 января 2020

Если кто-то еще ищет решение, ответ заключается в том, что переменные окружения в bash должны быть указаны с помощью %, а не ! в google colab. Таким образом, сценарий должен быть:

%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

Также обратите внимание, что стало проще использовать абсолютные и относительные пути к файлам. Хет-кон к cronoik в репозитории GitHub на hugginface за указание всего этого.

...