Huggin Face Ошибка разговора: ошибка: аргумент --model: неверный выбор: 'models /' (выберите из 'openai-gpt', 'gpt2') - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь повторить результаты этого репо:

https://github.com/huggingface/transfer-learning-conv-ai

Для этого я следую основному примеру c, который не основанный на docker:

git clone https://github.com/huggingface/transfer-learning-conv-ai
cd transfer-learning-conv-ai
pip install -r requirements.txt
python -m spacy download en

Затем я пытаюсь:

python3 interact.py --model models/

И там я получаю эту ошибку:

  np_resource = np.dtype([("resource", np.ubyte, 1)])
usage: interact.py [-h] [--dataset_path DATASET_PATH]
                   [--dataset_cache DATASET_CACHE] [--model {openai-gpt,gpt2}]
                   [--model_checkpoint MODEL_CHECKPOINT]
                   [--max_history MAX_HISTORY] [--device DEVICE] [--no_sample]
                   [--max_length MAX_LENGTH] [--min_length MIN_LENGTH]
                   [--seed SEED] [--temperature TEMPERATURE] [--top_k TOP_K]
                   [--top_p TOP_P]
interact.py: error: argument --model: invalid choice: 'models/' (choose from 'openai-gpt', 'gpt2')

Первое, что я замечаю, это что не было никакого каталога "models", поэтому я создал его и попытался снова, получил ту же ошибку.

Второе, что я пытался загрузить, это загрузить модель, как указано в репо:

We make a pretrained and fine-tuned model available on our S3 here

По этой ссылке я попробовал:

wget https://s3.amazonaws.com/models.huggingface.co/transfer-learning-chatbot/finetuned_chatbot_gpt.tar.gz

и распаковать файлы и в главном каталоге, и в каталоге моделей, и попробовал еще раз.

В третий раз я попробовал и получил ту же ошибку.

Это текущая структура моего рабочего каталога:

Dockerfile   config.json                   interact.py              pytorch_model.bin       train.py
LICENCE      convai_evaluation.py          merges.txt               requirements.txt        utils.py
README.md    example_entry.py              model_training_args.bin  special_tokens.txt      vocab.json
__pycache__  finetuned_chatbot_gpt.tar.gz  models                   test_special_tokens.py

РЕДАКТИРОВАТЬ

Предсказание пробного Кимбо:

python3 interact.py --model gpt2

Я получаю эту ошибку сейчас:

 File "interact.py", line 154, in <module>
    run()
  File "interact.py", line 114, in run
    raise ValueError("Interacting with GPT2 requires passing a finetuned model_checkpoint")
ValueError: Interacting with GPT2 requires passing a finetuned model_checkpoint

Также попробовал просто запустить:

python3 interact.py

Для этого я не получаю никакой ошибки, кажется, застрял в этой точке:

INFO:/home/lramirez/transfer-learning-conv-ai/utils.py:Download dataset from https://s3.amazonaws.com/datasets.huggingface.co/personachat/personachat_self_original.json
INFO:/home/lramirez/transfer-learning-conv-ai/utils.py:Tokenize and encode the dataset

Я был там около 30 минут

1 Ответ

0 голосов
/ 01 марта 2020

Новое обновление

Токенизация набора данных занимает целую вечность, потому что он токенизирует весь набор данных, который представляет собой файл размером 200 МБ JSON.

Чтобы сделать его НАМНОГО быстрее, просто загрузите часть набора данных.

Откройте utils.py и измените функцию tokenize:

def tokenize(obj):
    if isinstance(obj, str):
        return tokenizer.convert_tokens_to_ids(tokenizer.tokenize(obj))
    if isinstance(obj, dict):
        return dict((n, tokenize(o)) for n, o in obj.items())
    limit = 100  # <- this is the number of items in the dataset to load
    return list(tokenize(o) for o in obj[:limit])  # <- change it here

, которая будет загружать только первые 100 элементов в наборе данных.


Старый ответ

Когда я не уверен, как использовать сценарий python (или что-то, что вы запускаете из командной строки, на самом деле), я обычно пытаюсь сделать пару вещей, чтобы понять это.

  • python script.py -h или python script.py --help. Часто это выводит объяснение аргументов, которые ожидает скрипт и как его запустить.
  • Если вы установили исполняемую команду, я всегда пробую man <executable>. Вероятно, не будет работать в этом случае, так как вы просто клонировали репозиторий из GitHub и ничего не установили.
  • Если я все еще не понимаю, как использовать сценарий, потому что выше не работает, я go онлайн и поиск документации (Github README, вики, readthedocs и т. Д. c)
  • Если документация плохо документирована, я просто смотрю на исходный код. Иногда я пропускаю прямо к этой части, потому что для небольших вещей это часто быстрее.

В этом случае, я читал README на Github, и это не очень-то мне говорило, поэтому я посмотрел на сайте connect.py. Если вы посмотрите, начиная со строки 139 (https://github.com/huggingface/transfer-learning-conv-ai/blob/master/interact.py#L139), кажется, что они через некоторое время l oop, ожидая, пока вы введете что-то для подачи в модель.

/ конец обновления

Эта часть:

(choose from 'openai-gpt', 'gpt2')

должна рассказать вам все, что вам нужно знать.

Попробуйте запустить

python3 interact.py --model gpt2

или

python3 interact.py --model openai-gpt
...