问题标签 [huggingface-transformers]

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 回答
310 浏览

nlp - 从子词令牌编码中获取词级编码

我正在研究使用预训练的 BERT('bert-base-uncased')模型从一堆句子中提取上下文化的单词级编码。

Wordpiece 标记化将我输入中的一些单词分解为子单词单元。可能是一个微不足道的问题,但我想知道将子字标记的输出编码组合成字级编码的最明智的方法是什么。

平均子字编码是一种合理的方法吗?如果没有,有没有更好的选择?

0 投票
1 回答
153 浏览

huggingface-transformers - 是否实施了 SOP(句序预测)?

我正在审查拥抱脸版的阿尔伯特。

但是,我找不到任何关于 SOP 的代码或评论。

我可以从modeling_from src/transformers/modeling_bert.py找到NSP(下一句预测)实现。

SOP 是从这里继承的,带有 SOP 风格的标签吗?或者我有什么遗漏吗?

0 投票
1 回答
763 浏览

python-3.x - 在 Colab 上微调 Huggingface GPT-2 时遇到问题——断言错误

我希望根据我自己的文本数据微调 Huggingface 的 GPT-2 转换器模型。我想在 Google Colab 笔记本上执行此操作。但是,我有两个问题。首先是它似乎不起作用。

我通过 Colab 安装了各种零碎的东西:

按照示例,我将建议的 WikiText 示例数据上传到用于训练并在笔记本中运行建议的 CLI 命令。

这会持续一段时间,但后来我得到一个断言错误:

我认为这与我的训练数据有关吗?请注意,这两个文件与 lm_finetuning.py 脚本位于同一文件夹中,因此我不确定 os.path 问题可能是什么。

我的第二个问题是,即使微调确实有效,我也不知道如何用我自己的文本数据复制结果。我无法打开 WikiText 原始文件,所以我不知道它们是什么格式。是普通的纯文本吗?它们是否以某种方式被标记化了?如果有人能就此启发我,将不胜感激!

0 投票
1 回答
2770 浏览

python - 如何在 TensorFlow 中使用 Hugging Face Transformers 库对自定义数据进行文本分类?

我正在尝试使用 Hugging Face 'Transformers' 库提供的不同变压器架构对自定义数据(csv 格式)进行二进制文本分类。我使用这个TensorFlow 博客文章作为参考。

我正在使用以下代码将自定义数据集加载为“tf.data.Dataset”格式:

在此之后,当我尝试使用'glue_convert_examples_to_features'方法进行标记时,如下所示:

在以下位置引发错误“UnboundLocalError:分配前引用的局部变量'处理器'”:

在所有示例中,我看到他们正在使用诸如“mrpc”之类的任务,这些任务是预先定义的并且有一个glue_processor 来处理。源代码中的“第 85 行”出现错误。

任何人都可以使用“自定义数据”帮助解决这个问题吗?

0 投票
1 回答
4700 浏览

python - 对于语言模型微调(BERT 通过 Huggingface Transformers),输入文件应该如何精确格式化?

我想examples/run_lm_finetuning.py在预训练的 Bert 模型上使用Huggingface Transformers 存储库中的。但是,从遵循文档来看,语料库文件的结构并不明显(除了引用 Wiki-2 数据集)。我试过了

  • 每行一个文档(多个句子)
  • 每行一个句子。文档以空行分隔(我在一些较旧的 pytorch-transformers 文档中找到了这一点)

通过查看代码examples/run_lm_finetuning.py并不能直接看出下一句预测目标的序列对是如何形成的。该--line-by-line选项在这里有帮助吗?如果有人能给我一些提示文本语料库文件的外观,我将不胜感激。

非常感谢和欢呼,

头脑

0 投票
1 回答
79 浏览

deep-learning - 句子而不是标记的序列标签

我有属于一个段落的句子。每个句子都有一个标签。[s1,s2,s3,…], [l1,l2,l3,…] 我知道我必须使用编码器对每个句子进行编码,然后使用序列标记。你能指导我如何做到这一点,将它们结合起来吗?

0 投票
1 回答
268 浏览

python-3.x - 保存包裹在 Keras 中的模型

抱歉我的幼稚问题,但我正在尝试保存我的 keras 模型 (),其中我使用 TFBertModel() 函数作为隐藏层。为此,我使用了 tf.keras 包提供的 save() 函数。

但我得到了这个错误:

该错误可以从我的 colab 重现:https ://colab.research.google.com/drive/18HYwffkXCylPqeA-8raL82vfwOjb-aLP

另一个问题是我应该如何调用这个模型进行预测?

谢谢你的帮助!

0 投票
1 回答
1820 浏览

pytorch - 变形金刚 PreTrainedTokenizer add_tokens 功能

参考Huggingface 的 Transformers 库的文档,我遇到了这些函数add_tokens

我通过在默认词汇表中添加以前不存在的单词来尝试上述方法。但是,在其他所有条件保持不变的情况下,我注意到使用此更新后的微调分类器的准确性有所下降tokenizer。即使只添加了 10% 的先前缺失的单词,我也能够复制类似的行为。

我的问题

  1. 我错过了什么吗?
  2. 函数是否需要屏蔽标记,而不是整个单词,例如add_tokens:、、、、 '##ah''等?如果是,是否有生成此类掩码令牌的程序?'##red''##ik''##si

任何帮助,将不胜感激。

提前致谢。

0 投票
1 回答
1256 浏览

time-series - 为什么采用 HuggingFace 进行序列分类的第一个隐藏状态(DistilBertForSequenceClassification)

在HuggingFace进行的最后几层序列分类中,他们将 Transformer 输出的序列长度的第一个隐藏状态用于分类。

取第一个隐藏状态而不是最后一个、平均甚至使用 Flatten 层有什么好处吗?

0 投票
2 回答
15710 浏览

nlp - BERT 微调的优化器和调度器

我正在尝试使用 BERT(使用库)微调模型transformers,但我对优化器和调度器有点不确定。

首先,我知道我应该使用transformers.AdamW它而不是 Pytorch 的版本。此外,我们应该使用论文中建议的预热调度程序,因此调度程序是使用包中的get_linear_scheduler_with_warmup函数创建的transformers

我的主要问题是:

  1. get_linear_scheduler_with_warmup应该在热身时调用。可以在 10 个 epoch 中使用 2 进行热身吗?
  2. 我应该什么时候打电话scheduler.step()?如果我在之后做train,第一个时期的学习率为零。我应该为每批调用它吗?

我做错了什么吗?

我的模型和训练例程(和这个笔记本很相似)