问题标签 [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 投票
1 回答
448 浏览

pytorch - 为什么我的微调 DistilGPT2 模型没有生成新行?

我目前正在尝试微调 DistilGPT-2(使用 Pytorch 和 HuggingFace 转换器库)以完成代码完成任务。我的语料库排列如下示例:

我的第一次尝试是从转换器库中运行以下脚本:

在进行了一些生成测试之后,我意识到该模型无法预测\ n任何给定的上下文。我想缺少一些预处理阶段或类似的东西。但是无论如何,我应该怎么做\ n才能按预期进行预测?

高频论坛问题

谢谢!!

0 投票
1 回答
884 浏览

huggingface-transformers - 使用数据集、标记器和火炬数据集和数据加载器进行动态标记化

我有一个关于“即时”标记化的问题。这个问题是通过阅读此处的“如何使用 Transformers 和 Tokenizers 从头开始​​训练新的语言模型”引发的。最后有这句话:“如果您的数据集非常大,您可以选择动态加载和标记示例,而不是作为预处理步骤”。datasets我尝试提出一个将和结合起来的解决方案tokenizers,但没有找到一个好的模式。

我想解决方案需要将数据集包装到 Pytorch 数据集中。

作为文档中的一个具体示例

如何利用标记器的矢量化功能通过“即时”标记化来实现这一点?

0 投票
1 回答
626 浏览

python - Transformer Decoder Only 使用什么内存?

我已经阅读了很多关于转换器和自我关注的内容,并且看到 BERT 和 GPT-2 都是仅使用编码器转换器 (BERT) 和解码器转换器 (GPT-2) 的较新版本。我一直在尝试为自己构建一个仅用于下一个序列预测的解码器模型,但我被一件事弄糊涂了。我正在使用 PyTorch 并查看了Seq2Seq 教程,然后查看了由Transformer Decoder Layers组成的Transformer Decoder Block. 我的困惑来自这些也需要传递的记忆。在文档中,他们说内存是编码器块的最后一层,这对于 Seq2Seq 模型是有意义的,但我只想制作一个解码器模型。所以我的问题是,如果你没有编码器,你会通过像 GPT-2 这样的仅限解码器的模型来获取内存吗?

0 投票
1 回答
1580 浏览

python - Huggingface Transformer - GPT2 从保存的检查点恢复训练

恢复GPT2微调,从run_clm.py

GPT2 huggingface是否 有一个参数可以从保存的检查点恢复训练,而不是从头开始训练?假设 python 笔记本在训练时崩溃,检查点将被保存,但是当我再次训练模型时,它仍然从头开始训练。

来源:这里

微调代码:

从上面的代码来看,run_clm.py是huggingface提供的一个脚本,用于微调gpt2以使用自定义数据集进行训练

0 投票
0 回答
282 浏览

tensorflow - 无法从微调的 GPT-2 模型转换为 Tensorflow Lite 模型

我已经使用我自己的文本对 distilgpt2 模型进行了run_language_modeling.py微调,并且在训练和run_generation.py脚本产生预期结果后它的工作正常。

现在我想将其转换为 Tensorflow Lite 模型并使用以下方法进行

但我不认为我在转换后这样做是正确的,当我写

我明白了

但我仍然使用以下方式进行 TFLite 转换:

但是不起作用,并且在使用生成的tflite模型时出现错误:

tensorflow/lite/kernels/kernel_util.cc:249 d1 == d2 || d1 == 1 || d2 == 1 不正确。

我确信这与我的模型没有正确转换并获取None输入/输出有关。

有谁知道如何解决这个问题?

谢谢

0 投票
1 回答
406 浏览

python - RuntimeError:索引 3 处的输入张量具有无效的形状 [2, 2, 16, 128, 64] 但预期为 [2, 4, 16, 128, 64]

使用SageMaker - ml.p3.8xlarge实例中的Huggingface库对预训练的GPT2 中型模型进行微调时出现运行时错误。

finetuning_gpt2_script.py包含以下内容,

图书馆:

预训练模型:

训练和测试数据构建:

train_path&test_path是大小为 145 万和 20 万行数据的非结构化文本数据文件

训练论据:

training_args是为训练模型而构建的训练参数。

教练:

训练:

在这里,使用ml.p3.8xlarge实例仅在 4 个 GPUS 中进行了 1 个 epoch 的训练。

训练是通过火炬分布完成的,如下所示,

在 epoch 结束时进行训练时,观察到以下错误,

RuntimeError: Input tensor at index 3 has invalid shape [2, 2, 16, 128, 64] but expected [2, 4, 16, 128, 64]

  1. RuntimeError因为train_datasettest_dataset构造使用的方式TextData吗?
  2. 我做错了torch-distribution吗?
0 投票
0 回答
73 浏览

pytorch - 为什么使用 GPT2Tokenizer 将阿拉伯字符转换为符号?

我正在尝试将GPT2用于阿拉伯语文本分类任务,如下所示:

但是,当我使用标记器时,它会将阿拉伯字符转换为像这样的符号 'ĠÙĥتÙĬر'

0 投票
0 回答
130 浏览

python - 增量训练 || 暂停和恢复训练,GPT2 语言建模

我目前正在尝试学习 python——同时学习使用 GPT-2 语言建模的机器学习——我遇到了一些问题,我克服了大部分问题,最后得到了一些不错的运行。

但是......正如你们大多数人可能知道的那样,训练你的模型需要大量的 CPU/GPU 能力和时间——我可以节省时间,但问题是我不能让它在我的家用电脑上不间断地运行(是的,我知道我可以租用 GPU @ google)——因为我希望在训练我的模型时能够做任何其他事情。

所以我有以下问题:

  • 我可以以某种方式停止并重新开始我的模型训练吗?我读了一些关于检查点的东西,但是关于这个主题的信息已经过时了——所以我无法弄清楚。
  • 我可以逐步喂养我的模型 fx。我的数据集的 10%,让它完成 - 然后下周再喂它 10% 等等?如果是这样怎么办?
  • 额外的问题......以较低数据集的许多时期为目标会更好吗?还是更大的数据集和更多的时代?什么是好的时期?

套餐:

  • 蟒蛇,3.7.9
  • TensorFlow-GPU 2.3.0
  • 张量流估计器 2.3.0
  • 变形金刚 4.2.2
  • 标记器 0.9.4
  • 库达工具包 10.1

代码 - 分词器

代码——模型培训师

0 投票
2 回答
453 浏览

deep-learning - 在深度学习模型训练中修改学习率

下面是配置从HuggingFace 转换器库中使用的TrainingArguments以微调 GPT2语言模型的代码。

epoch数100learning_rate0.00004early_stopping的耐心值为3

该模型运行了5/100个 epoch,并注意到 loss_value 的差异可以忽略不计。最新的检查点保存为checkpoint-latest.

现在我可以修改learning_rate可能是0.010.00004最新保存的检查点恢复训练checkpoint-latest吗?这样做会有效率吗?

还是要以新learning_rate值进行训练,我应该从头开始训练

0 投票
1 回答
153 浏览

python - Huggingface 变压器启动

我正在尝试复制此演示的结果,其作者使用以下文本对GPT-3 进行了初始化:

我只能通过 Huggingface Transformer 访问 GPT-2。如何在 Huggingface 上启动 GPT-2 以复制上述示例?问题是,有了这个,人们就无法分别使用输入和相应的输出进行初始化(正如上面 GPT-3 演示的作者所做的那样)。

同样,本教程描述了如何使用 Huggingface,但没有示例清楚地显示如何使用输入与输出示例来启动它。

有谁知道如何做到这一点?


期望的输出:使用 GPT-2 返回类似的东西,输入“potato”,输出“peel, slice, cook, mash, bake”(如 GPT-3 演示:https ://www.buildgpt3.com/post /41/ )。显然,输出动词的确切列表不会相同,因为 GPT-2 和 GPT-3 不是相同的模型。