问题标签 [gpt-2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1947 浏览

python - 如何使用我自己的语料库文本创建和拟合 vocab.bpe 文件(GPT 和 GPT2 OpenAI 模型)?

这个问题是为那些熟悉 GPT 或GPT2 OpenAI 模型的人准备的。特别是与编码任务(Byte-Pair Encoding)。这是我的问题:

我想知道如何创建自己的 vocab.bpe 文件。

我有一个西班牙语语料库文本,我想用它来适应我自己的 bpe 编码器。我已经成功地使用python-bpe库创建了 encoder.json,但我不知道如何获取 vocab.bpe 文件。我已经查看了gpt-2/src/encoder.py中的代码,但是我找不到任何提示。有什么帮助或想法吗?

非常感谢你。

0 投票
2 回答
2841 浏览

python - 为会话 AI 微调 GPT-2 文本预测

我正在尝试使用 gpt-2 模型的条件文本生成来调整它以获得一个好的聊天机器人。我正在使用nsheppard 的代码在我的自定义数据集上重新训练它。

我在从 Facebook 数据中提取的自定义对话数据集上训练了我的模型。我将样本长度更改为 20,因为它们是交互式条件生成期间的对话。

数据集如下所示:

但是,经过培训后,当我尝试与它聊天时,它却是在完成我的句子而不是回复它们。

我知道 interactive_conditional_samples.py 是为了根据提示完成句子而构建的,但我认为更改数据集会起作用,并确保它不起作用。

火车.py

示例.py

interactive_conditional_samples.py

如何调整代码以使其像聊天机器人一样工作?我猜它与 sample.py 中的上下文部分有关,但我不确定这将如何工作。

0 投票
0 回答
435 浏览

python-3.x - 将 GPT-2 与您自己的词典一起使用

我正在使用自定义编码和自定义 vocab.bpe 文件训练 gpt-2。但是,当我使用 gpt-2 生成文本时,输出标记的范围超出了我的新编码范围。那我怎样才能让 gpt-2 为我工作呢?

0 投票
4 回答
2361 浏览

python - 无法导入用于微调 GPT-2 的编码器代码

我正在尝试重现本文中的示例:https ://medium.com/@ngwaifoong92/beginners-guide-to-retrain-gpt-2-117m-to-generate-custom-text-content-8bb5363d8b7f

示例代码来自以下仓库:https ://github.com/nshepperd/gpt-2

安装需求并下载模型后,下一步是训练模型,为此必须执行此代码:

这里的问题是这需要导入以下模块:

其中encoderload_dataset位于子目录中:

这会产生以下错误:

我尝试创建__init__.py文件并将它们导入为

src.encodersrc.load_dataset但它们也不起作用。

在中篇文章中,作者建议将文件encoder.py移动到 src 并从那里执行代码,问题是这样做也会破坏模型的相对路径,尽管我处理了路径问题仍在继续对于其他文件也是如此。

0 投票
1 回答
592 浏览

python - 设置迭代次数 gpt-2

我正在按照本教程微调 gpt-2 模型:

https://medium.com/@ngwaifoong92/beginners-guide-to-retrain-gpt-2-117m-to-generate-custom-text-content-8bb5363d8b7f

与其关联的 GitHub 存储库:

https://github.com/nshepperd/gpt-2

我已经能够复制这些示例,我的问题是我没有找到设置迭代次数的参数。基本上,训练脚本每 100 次迭代显示一个样本,并每 1000 次迭代保存一个模型版本。但我没有找到一个参数来训练它,比如 5000 次迭代然后关闭它。

训练脚本在这里: https ://github.com/nshepperd/gpt-2/blob/finetuning/train.py

编辑:

正如 cronoik 所建议的,我正在尝试将 while 替换为 for 循环。

我正在添加这些更改:

  1. 添加一个额外的参数:

    parser.add_argument('--training_steps', metavar='STEPS', type=int, default=1000, help='表示模型应训练多少个训练步骤的数字')

  2. 改变循环:

  3. 使用新参数:

    python3 train.py --training_steps 300

但我收到了这个错误:

0 投票
1 回答
798 浏览

python - 在本地机器上训练 GPT-2,加载数据集

我试图在我的本地机器上运行 gpt-2,因为谷歌限制了我的资源,因为我在 colab 中训练的时间太长了。

但是,我看不到如何加载数据集。在原始的 colab 笔记本https://colab.research.google.com/drive/1VLG8e7YSEwypxU-noRNhsv5dW4NfTGce中有我无法在本地计算机上使用的命令 gpt2.copy_file_from_gdrive()。

在 github存储库https://github.com/minimaxir/gpt-2-simple上,他们只是将文件 Shakespeare.txt 的名称提供给函数 gpt2.finetune 并且它以某种方式工作,但这对我不起作用。

帮助将不胜感激

0 投票
1 回答
1338 浏览

python - 从默认模型 gpt-2-simple python 上的输入生成文本

我一生都无法弄清楚如何从默认模型中生成文本,并输入前缀:

我已经下载了模型,这是我的代码:

但是,当我运行它时,我收到以下错误:

知道我做错了什么吗?

0 投票
1 回答
1043 浏览

python - 为什么运行GPT2小模型时找不到encoder.json

晚上好,

警告,我不是 python 或机器学习专家

我正在尝试运行 GPT2 的小实例,在我想检查它的炒作之后。到目前为止,我已经下载了所有先决条件。Python、正则表达式、张量流等,但是在运行脚本以从模型生成样本时,我会抛出以下错误

'''文件“C:*****\F******y\Desktop\Python\gpt-2\src\encoder.py”,第 109 行,在 get_encoder 中打开(os.path.join (models_dir, model_name, 'encoder.json'), 'r') as f: FileNotFoundError: [Errno 2] No such file or directory: 'models\124M\encoder.json'''

当我调用脚本时,我切换到保存文件的目录并从命令行运行 ''' generate_unconditional_samples.py --top_k 40 '''

脚本本身看起来像这样

'''

谁能告诉我可能做错了什么 - 我确定它真的很明显,但我已经尝试了大约 4 个小时的各种东西,但没有运气

非常感谢任何建议

0 投票
0 回答
250 浏览

nlp - HuggingFace GPT2DoubleHeadsModel 可以用于非多选下一个令牌预测吗?

根据 HuggingFace Transformer 的网站(https://huggingface.co/transformers/model_doc/gpt2.html#gpt2doubleheadsmodel),GPT2DoubleHeadsModel(不是GPT2LMHeadModel而是GPT2DoubleHeadsModel)是具有语言建模和多项选择分类的 GPT-2 转换器模型领先于例如 RocStories/SWAG 任务。

这是否意味着我们可以使用GPT2DoubleHeadsModel来处理非基于多项选择的语言建模任务(即下一个单词预测)以及多项选择问题,而无需对其头部进行任何调整?或者如果我想做非基于多项选择的下一个单词预测,我是否需要调整 GPT2DoubleHeadsModel 的头部,因为GPT2DoubleHeadsModel仅用于回答多项选择类型的问题?

我对此有点困惑,因为我从阅读您的 GPT-2 论文中得到的印象是 GPT-2 使用语言建模过程来处理每种类型的语言任务(因此 GPT-2 将只有常规语言建模负责人顶部),但名称“ GPT2DoubleHeadsModel ”似乎表明我需要针对不同类型的语言任务调整此 GPT-2 的头部。

谢谢,

0 投票
1 回答
441 浏览

python - Tensorflow 未在 GPT-2 程序中充分利用 GPU

我正在运行大型模型(774M)的 GPT-2 代码。它用于通过 interactive_conditional_samples.py 生成文本样本,链接:这里

所以我给出了一个输入文件,其中包含自动选择生成输出的提示。此输出也会自动复制到文件中。简而言之,我不是在训练它,我是在使用模型来生成文本。另外,我使用的是单个 GPU。

我面临的问题是,代码没有充分利用 GPU。

通过使用 nvidia-smi 命令,我可以看到下图

https://imgur.com/CqANNdB