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

huggingface-transformers - Huggingface 节省标记器

我正在尝试将 tokenizer 保存在 huggingface 中,以便以后可以从不需要访问 Internet 的容器中加载它。

但是,最后一行给出了错误:

变形金刚版本:3.1.0

不幸的是,如何从 Pytorch 中的预训练模型加载保存的标记器并没有帮助。

编辑 1

感谢@ashwin在下面的回答,我save_pretrained改为尝试,但出现以下错误:

tokenizer 文件夹的内容如下: 在此处输入图像描述

我尝试重命名tokenizer_config.jsonconfig.json,然后出现错误:

0 投票
1 回答
566 浏览

python - BERT 标记 URL

我想对一堆推文进行分类,因此我正在使用 BERT 的拥抱脸实现。但是我注意到默认的 BertTokenizer 不使用特殊的 url 标记。

这对我来说似乎效率很低。对 URL 进行编码的最佳方法是什么?

0 投票
1 回答
279 浏览

pytorch - RobertaTokenizer() 和 from_pretrained() 初始化 RobertaTokenizer 的方式有什么区别?

我是抱脸变形金刚RobertaForMaskedLM的新手,在从头开始训练 LM 时面临以下问题:

首先,我训练并保存了一个ByteLevelBPETokenizer如下:

RobertaForMaskedLM然后,通过创建一个使用这个标记器进行训练RobertaTokenizer,如下所示:

但是现在,当我尝试使用填充掩码管道测试经过训练的 LM 时,

我收到以下错误:

PipelineException:在输入上找不到 mask_token ()

所以,我意识到,我加载的<mask>标记器也在标记标记。但我不明白为什么会这样。请帮助我理解这一点。

在尝试了几件事之后,我以不同的方式加载了标记器,

而且,现在fill_mask_pipeline运行没有错误。RobertaTokenizer()那么,使用该方法加载分词器和使用该方法有什么区别.from_pretrained()

0 投票
1 回答
4458 浏览

bert-language-model - Huggingface BERT Tokenizer 添加新令牌

我正在将 Huggingface BERT 用于 NLP 任务。我的文本包含被分成子词的公司名称。

现在我想将这些名称添加到标记器 ID 中,这样它们就不会被拆分。

这将标记器的长度从 30522 扩展到 30523。

因此,所需的输出将是新 ID:

但是输出和以前一样:

所以我的问题是;将新标记添加到标记器的正确方法是什么,以便我可以将它们与 tokenizer.encode_plus() 和 tokenizer.batch_encode_plus() 一起使用?

0 投票
0 回答
239 浏览

tensorflow2.0 - 微调 TFBertForMaskedLM model.fit() ValueError

问题

我一直在尝试用 tensorflow 训练 TFBertForMaskedLM 模型。但是当我使用 model.fit() 时总是会遇到一些问题。希望有人可以提供帮助并提出一些解决方案。

参考论文和样本输出

论文题目是“Conditional Bert for Contextual Augmentation”。简而言之,只需将 type_token_ids 更改为 label_ids 即可。如果句子的标签为5,长度为10,max_sequence_length = 16。它将处理输出如下:

环境

  • 张量流 == 2.2.0
  • 拥抱脸 == 3.5.0
  • 数据集 == 1.1.2
  • 数据集总标签为 5。(1~5)
  • 显卡:GCP P100 * 1

数据集输出(max_sequence_length=128,batch_size=1)

型号代码

使用 TFBertForMaskedLM 时的警告消息

错误信息

有谁能帮忙。我会非常感谢。

其他测试

我用英语句子来测试。示例如下:

token_info 输出数据集

得到同样的错误......

我不确定将 fit() 集成到模型中是否存在问题?

0 投票
0 回答
879 浏览

pytorch - Pytorch + BERT+ batch_encode_plus() 代码在 Colab 中运行良好,但在输入形状不匹配时会产生 Kaggle 问题

我尝试使用 Google Colab 为 Kaggle 初始化的 Notebook 并发现了一个奇怪的行为,因为它给了我类似的东西:

错误来自以下代码:

我再次在COLAB上运行了这段代码,它运行得很顺利。可能是因为版本之类的吗?有人可以取悦这个吗?

Kaggle 配置

Colab 配置

编辑:我train_text是一个 numpy 文本数组,train_labels是一维数值数组,有 4 个类别,范围为 0-3。

另外:我将我的标记器初始化为:

0 投票
0 回答
627 浏览

pytorch - 提高 Huggingface 标记器输出的速度

我需要使用 HuggingFace 从 BERT 模型中获取最后一层嵌入。以下代码有效,但是速度极慢,如何提高速度

这是一个玩具示例,我的真实数据由数千个带有长文本的示例组成。

0 投票
0 回答
91 浏览

pytorch - 如何从带/不带 DataLoader 的 CustomisedBERT 分类 + PyTorch NLP 模型中获得单文本预测

我已经使用了BERTwithHuggingFace和,PyTorch用于培训和评估。下面是代码:DataLoaderSerializer

结果它给了我一个numpy array结果,并且由于在这个中使用了batch_size=1和否Serializer,我得到的结果是作为类预测的单个数组编号。

我有两个问题:

结果是否严格按照 的指标df['text']

**我怎样才能得到一个句子的预测,比如你好做我的预测。我是单句

有人可以帮我做一个预测吗?

0 投票
1 回答
1083 浏览

python - ValueError:logits 和标签必须具有相同的形状 ((1, 21) vs (21, 1))

我正在尝试使用 huggingface重现TFBertModel示例来执行分类任务。

我的模型与示例几乎相同,但我正在执行多标签分类。出于这个原因,我使用 sklearn 对我的标签进行了二值化MultiLabelBinarizer

然后,我调整了我的模型以做出相应的预测。

另外,我正在使用 tensorflowDataset来生成模型的输入:

最后,当我尝试拟合我的模型时,我对 logits 和标签的形状有不一致的地方:

我真的不知道Dataset转换是否弄乱了我输入的形状,或者我是否遗漏了一些其他细节。有任何想法吗?

完整的堆栈跟踪:

ValueError Traceback(最近一次调用最后一次)

0 投票
2 回答
3805 浏览

bert-language-model - BertModel 转换器输出字符串而不是张量

我正在关注本教程,该教程使用带有拥抱脸库的 BERT 编写情绪分析分类器,但我的行为非常奇怪。当使用示例文本尝试 BERT 模型时,我得到一个字符串而不是隐藏状态。这是我正在使用的代码:

输出: