Python Huggin Face会话错误:错误:参数--模型:无效选择:';型号/';(从openai gpt和gpt2中选择)

Python Huggin Face会话错误:错误:参数--模型:无效选择:';型号/';(从openai gpt和gpt2中选择),python,nlp,gpt,Python,Nlp,Gpt,我试图复制本回购协议的结果: 为此,我遵循的基本示例并非基于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/ 我得到了这个错误:

我试图复制本回购协议的结果:

为此,我遵循的基本示例并非基于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
编辑

试过kimbo的建议:

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
因此,我没有得到任何错误,它似乎被困在这一点上:

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分钟了 标记化数据集需要花费很长时间,因为它标记化了整个数据集,这是一个200 MB的JSON文件

为了加快速度,只需加载部分数据集

打开utils.py并更改
tokenize
功能:

def标记化(obj):
如果存在(obj、str):
返回标记器。将标记转换为ID(标记器。标记化(obj))
如果存在(obj,dict):
在obj.items()中为n,o返回dict((n,标记化(o))
限制=100#新更新
标记化数据集需要花费很长时间,因为它标记化了整个数据集,这是一个200 MB的JSON文件

为了加快速度,只需加载部分数据集

打开utils.py并更改
tokenize
功能:

def标记化(obj):
如果存在(obj、str):
返回标记器。将标记转换为ID(标记器。标记化(obj))
如果存在(obj,dict):
在obj.items()中为n,o返回dict((n,标记化(o))

limit=100#这个错误是因为HuggingFace在ConvAI数据集上没有一个GPT2的微调模型,他们只对GPT进行了调整

if args.model == 'gpt2':
            raise ValueError("Interacting with GPT2 requires passing a finetuned model_checkpoint")

您可以在interact.py文件中找到这部分代码,因此如果您想在gpt2上使用它,您需要自己对其进行微调。我现在正在努力解决这个问题。

这个错误是因为HuggingFace在ConvAI数据集上没有一个GPT2的微调模型,他们只是为GPT做的

if args.model == 'gpt2':
            raise ValueError("Interacting with GPT2 requires passing a finetuned model_checkpoint")

您可以在interact.py文件中找到这部分代码,因此如果您想在gpt2上使用它,您需要自己对其进行微调。我现在正在努力解决这个问题。

我尝试了你的建议,但发现了一个新的错误。我用细节更新了问题。@LuisRamonRamirezRodriguez有帮助吗?我想模型正在等待您输入内容(尝试在终端中键入内容,然后按Enter)@LuisRamonRamirezRodriguez没关系,tignore我最后的评论。查看更新的答案。我尝试了你的建议,但发现了一个新的错误。我用细节更新了问题。@LuisRamonRamirezRodriguez有帮助吗?我想模型正在等待您输入内容(尝试在终端中键入内容,然后按Enter)@LuisRamonRamirezRodriguez没关系,tignore我最后的评论。查看更新后的答案。您是否仍然坚持这个问题或我的答案有效?@kimbo尚未测试,我完成后将接受它。您是否仍然坚持这个问题或我的答案有效?@kimbo尚未测试,我完成后将接受它
python3 interact.py --model gpt2
python3 interact.py --model openai-gpt
if args.model == 'gpt2':
            raise ValueError("Interacting with GPT2 requires passing a finetuned model_checkpoint")