问题标签 [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.
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 个令牌。
我也想为自己想要尝试的长文档摘要做类似的事情。
python - tokenizer.max len 在这个类定义中做了什么?
我正在关注在这里找到的 Rostylav 的教程,但遇到了一个我不太明白的错误:
这是我认为导致错误的类,但是我无法理解 Tokenize.max_len 应该做什么,所以我可以尝试修复它:
感谢您的阅读!
deep-learning - 如何下载拥抱脸情绪分析管道以离线使用?
如何下载拥抱脸情绪分析管道以离线使用?我无法在没有互联网的情况下使用拥抱面部情绪分析管道。如何下载该管道?
使用拥抱脸进行情感分析的基本代码是
输出是
nlp - 在为 HuggingFace 编码数据集时使用所有可用 RAM 后会话崩溃
我正在尝试使用 HuggingFace 转换器来训练我的模型。我有大约 1.5 GB 大小的数据集。
当我将数据集编码为:
Colab 的内存已满。
使用所有可用 RAM 后会话崩溃
我知道不可能在 Colab 中扩展 ram,但是我可以用代码做些什么来降低 ram 的利用率吗?
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
.
下面我附上代码请看
输出是
其次是
输出是
后面跟着代码
输出是
将总行数附加到空列表
我正在尝试获取所有行的情绪
错误是:
python - TypeError: zeros_like(): 在 MLM 上微调时参数“输入”
基本概述
我正在对Longformer
在自定义数据集上预训练的蒙面语言模型(准确地说是香草)进行预训练。我正在使用 Huggingface 的transformers
库,但是在监督任务上微调我的 MLM 时,出现此错误:-
现在,这似乎最有可能源于模型的输入——Huggingface 已经升级到现在处理直接datasets
对象,并且已经放弃了以前的 BPE 类。
对于我的数据,我将我的两个train
和validation
NumPy 数组都转储到了两个单独的文件中:-
其中{
---> 分隔符和src
和tgt
是列。此结构适用于 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
功能:
再次添加填充和截断。经过适当的训练参数(通过标记化而不是未标记化)
产生这个: -
这是出乎意料的。将对此进行更多研究。
huggingface-tokenizers - 有没有办法使用带有 wordpiece 前缀的 Huggingface 预训练标记器?
我正在和 Bert 一起做一个序列标记任务。为了将单词片段与标签对齐,我需要一些标记来识别它们,这样我就可以通过求和或平均得到每个单词的单个嵌入。
例如,我希望将单词New~york
标记为New ##~ ##york
,并查看互联网上的一些旧示例,这就是您之前使用 BertTokenizer 得到的,但显然不再是(他们的文档说)
所以当我运行时:
我得到:
但是编码清楚地表明,最后的废话确实被分解成碎片......
我还尝试使用BertTokenizerFast
,与 不同的是BertTokenizer
,它允许您指定单词前缀:
然而解码器给了我完全相同的...
那么,有没有办法使用带有前缀的预训练 Huggingface 标记器,或者我必须自己训练自定义标记器?
tokenize - 原始 bert 与标记器:哪个标记器具有正确的输出?
我尝试使用原始 BERT 库中的分词器和分词器库中的分词器,但没有看到一致的结果,尤其是在使用 huggingface 时。我查看了原始 google bert 的代码,似乎基本的分词器由于标点符号括号将其拆分,因此 [UNK] 等被拆分为“[”、“UNK”、“]”。我希望 tokenizers 库也是如此,但会看到不同的结果。哪一个是对的?同样困惑的拥抱脸以小写字母返回“MASK”。我使用了“BERT-Base, Multilingual Cased (New, Recommended)”中的 cased vocab.txt
输出:
nlp - BERT - 是否需要添加新令牌以在特定领域的环境中进行训练?
我的问题不是如何添加新令牌,或者如何使用特定领域的语料库进行训练,我已经在这样做了。
问题是,我应该在 MLM 培训之前添加特定领域的标记,还是让 Bert 弄清楚上下文?如果我选择不包含令牌,我会得到像 NER 这样的糟糕的特定任务模型吗?
为了让您了解我的情况的更多背景,我正在使用葡萄牙语训练一个关于医学文本的 Bert 模型,因此,我的语料库中存在死者姓名、药物名称和其他内容,但我不确定我是否必须添加训练前的那些令牌。
我看到了这个:Using Pretrained BERT model to add additional words of the model 无法识别
但正如其他消息来源所说的那样,疑虑依然存在。
提前致谢。
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