问题标签 [huggingface-tokenizers]

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 投票
0 回答
100 浏览

nlp - 总结任务的 PEGASUS 预训练

我不确定如何对最近引入的用于单个文档摘要的PEGASUS 模型进行大型文档摘要的评估。

作者对大型文档数据集(如 Big Patent、PubMed 等)的展示评估,文档长度超过了转换器模型的输入大小。

引用论文中的内容,他们确实谈到了这一点,但没有真正进一步详细说明。

CNN/DailyMail、Multi-News、arXiv、PubMed、BIG-PATENT 数据集包含比L_input = 512 tokens预训练中的最大输入长度 ( ) 更长的输入文档。这将给位置嵌入带来一个问题,该问题永远不会针对更长的输入长度进行更新,但我们确认了正弦位置编码 (Vaswani et al., 2017) 在微调 PEGASUSLARGE 超出输入长度时泛化良好的假设在训练中观察到L_input = 1024 tokens. 由于 BIGPATENT、arXiv、PubMed 和 Multi-News 中的平均输入长度远远超过 1024 个标记,因此进一步扩大规模L_input或应用两阶段方法(Liu 等人,2018 年)可能会进一步提高性能,尽管这是外部的这项工作的范围。

他们确实提到输入长度最多为 1024 个标记。在 huggingface 上的 PEGASUS Large 模型中,最大输入令牌也是 1024。

我不确定他们如何设法将文档摘要扩展到超过 1024 个令牌。

我也想为自己想要尝试的长文档摘要做类似的事情。

0 投票
1 回答
290 浏览

python - tokenizer.max len 在这个类定义中做了什么?

我正在关注在这里找到的 Rostylav 的教程,但遇到了一个我不太明白的错误:

这是我认为导致错误的类,但是我无法理解 Tokenize.max_len 应该做什么,所以我可以尝试修复它:

感谢您的阅读!

0 投票
1 回答
726 浏览

deep-learning - 如何下载拥抱脸情绪分析管道以离线使用?

如何下载拥抱脸情绪分析管道以离线使用?我无法在没有互联网的情况下使用拥抱面部情绪分析管道。如何下载该管道?

使用拥抱脸进行情感分析的基本代码是

输出是

0 投票
0 回答
119 浏览

nlp - 在为 HuggingFace 编码数据集时使用所有可用 RAM 后会话崩溃

我正在尝试使用 HuggingFace 转换器来训练我的模型。我有大约 1.5 GB 大小的数据集。

当我将数据集编码为:

Colab 的内存已满。

使用所有可用 RAM 后会话崩溃

我知道不可能在 Colab 中扩展 ram,但是我可以用代码做些什么来降低 ram 的利用率吗?

0 投票
1 回答
5227 浏览

deep-learning - 令牌索引序列长度大于此模型的指定最大序列长度 (651 > 512),具有拥抱面部情感分类器

我试图在拥抱面部情绪分析预训练模型的帮助下获得评论的情绪。它返回错误,如Token indices sequence length is longer than the specified maximum sequence length for this model (651 > 512) with Hugging face sentiment classifier.

下面我附上代码请看

输出是

其次是

输出是

后面跟着代码

输出是

将总行数附加到空列表

我正在尝试获取所有行的情绪

错误是:

0 投票
0 回答
297 浏览

python - TypeError: zeros_like(): 在 MLM 上微调时参数“输入”

基本概述

我正在对Longformer在自定义数据集上预训练的蒙面语言模型(准确地说是香草)进行预训练。我正在使用 Huggingface 的transformers库,但是在监督任务上微调我的 MLM 时,出现此错误:-

现在,这似乎最有可能源于模型的输入——Huggingface 已经升级到现在处理直接datasets对象,并且已经放弃了以前的 BPE 类。

对于我的数据,我将我的两个trainvalidationNumPy 数组都转储到了两个单独的文件中:-

其中{---> 分隔符和srctgt是列。此结构适用于 train 和 val 文件。重要的是,我的src= 字符串;tgt= 数字(数字标签)。这是一个序列分类任务。

接下来,我datasets使用 CSV 脚本从文件中构造对象:-

此步骤完成后,我tokenizer = AutoTokenizer.from_pretrained('......')从我的预训练语言模型中导入标记器 -->truncation & padding = True

代码的可疑部分

现在,是时候进行标记化了。我使用该.map()方法将标记化功能应用于我的整个数据集。这就是我的标记化函数的样子:-

我只应用它的原因src是因为我的标签是数字的——那里没有标记,只有“X”值是一个长字符串。

这就是我使用该函数应用于我的数据集的方式(使用.map()):-

很可能,这是我搞砸的部分,因为我不知道如何使用该datasets对象。

这就是我的 datasets 对象的样子,希望你能比我更了解它的结构:-

现在,我探索所谓的标记化数据集(train_encoded_dataset):-

在此之后,我将此数据集传递到Trainer:-

这导致上面发布的错误。

现在我不确定问题出在哪里(除了标记化)。谁能指出来?

Update1:​​使用该from_dict方法构造数据集(用于将 numpy 数组本地转换为datasets对象)会产生相同的错误。

Update2:显然,经过一些更改,我收到了一个新错误:- 这是新tok功能:

再次添加填充和截断。经过适当的训练参数(通过标记化而不是未标记化)

产生这个: -

这是出乎意料的。将对此进行更多研究。

0 投票
1 回答
397 浏览

huggingface-tokenizers - 有没有办法使用带有 wordpiece 前缀的 Huggingface 预训练标记器?

我正在和 Bert 一起做一个序列标记任务。为了将单词片段与标签对齐,我需要一些标记来识别它们,这样我就可以通过求和或平均得到每个单词的单个嵌入。

例如,我希望将单词New~york标记为New ##~ ##york,并查看互联网上的一些旧示例,这就是您之前使用 BertTokenizer 得到的,但显然不再是(他们的文档说)

所以当我运行时:

我得到:

但是编码清楚地表明,最后的废话确实被分解成碎片......

我还尝试使用BertTokenizerFast,与 不同的是BertTokenizer,它允许您指定单词前缀:

然而解码器给了我完全相同的...

那么,有没有办法使用带有前缀的预训练 Huggingface 标记器,或者我必须自己训练自定义标记器?

0 投票
0 回答
81 浏览

tokenize - 原始 bert 与标记器:哪个标记器具有正确的输出?

我尝试使用原始 BERT 库中的分词器和分词器库中的分词器,但没有看到一致的结果,尤其是在使用 huggingface 时。我查看了原始 google bert 的代码,似乎基本的分词器由于标点符号括号将其拆分,因此 [UNK] 等被拆分为“[”、“UNK”、“]”。我希望 tokenizers 库也是如此,但会看到不同的结果。哪一个是对的?同样困惑的拥抱脸以小写字母返回“MASK”。我使用了“BERT-Base, Multilingual Cased (New, Recommended)”中的 cased vocab.txt

输出:

0 投票
1 回答
414 浏览

nlp - BERT - 是否需要添加新令牌以在特定领域的环境中进行训练?

我的问题不是如何添加新令牌,或者如何使用特定领域的语料库进行训练,我已经在这样做了。

问题是,我应该在 MLM 培训之前添加特定领域的标记,还是让 Bert 弄清楚上下文?如果我选择不包含令牌,我会得到像 NER 这样的糟糕的特定任务模型吗?

为了让您了解我的情况的更多背景,我正在使用葡萄牙语训练一个关于医学文本的 Bert 模型,因此,我的语料库中存在死者姓名、药物名称和其他内容,但我不确定我是否必须添加训练前的那些令牌。

我看到了这个:Using Pretrained BERT model to add additional words of the model 无法识别

但正如其他消息来源所说的那样,疑虑依然存在。

提前致谢。

0 投票
1 回答
2098 浏览

tokenize - AttributeError:“GPT2TokenizerFast”对象没有属性“max_len”

我只是在使用 huggingface 转换器库并在运行 run_lm_finetuning.py 时收到以下消息: AttributeError: 'GPT2TokenizerFast' object has no attribute 'max_len'。其他人有这个问题或想法如何解决它?谢谢!

我的完整实验运行:mkdir Experiments

对于 5 中的 epoch,python run_lm_finetuning.py
--model_name_or_path distilgpt2
--model_type gpt2 --train_data_file small_dataset_train_preprocessed.txt --output_dir
Experiments
/epochs_$epoch
--do_train
--overwrite_output_dir
--per_device_train_batch_size 4
--num_train_epochs $epoch done