问题标签 [bert-language-model]

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 投票
2 回答
6587 浏览

nlp - 如何使用 BERT 找到最接近向量的单词

我正在尝试使用 BERT 获取给定词嵌入的文本表示(或最接近的词)。基本上我正在尝试获得与 gensim 中类似的功能:

到目前为止,我已经能够使用bert-as-service生成上下文词嵌入,但无法弄清楚如何获得最接近此嵌入的词。我使用了预训练的 bert 模型(uncased_L-12_H-768_A-12)并且没有进行任何微调。

0 投票
1 回答
2500 浏览

nlp - 句子编码和语境化词嵌入有什么区别?

我在阅读有关 BERT 和 ELMo 的论文时看到了这两个术语,所以我想知道它们之间是否有区别。

0 投票
0 回答
109 浏览

python - Bert 嵌入元素 #308

我一直在练习 Bert Embedding。具体来说,我将 BERT-Base Uncased 模型与 PyTorch 库一起使用

我注意到,对于我查看过的几乎每个单词,bert 嵌入 768 长向量中的元素 #308 都是负异常值,其值低于 -2,可能有一半时间低于 -4。

这真的很奇怪。我试图用谷歌搜索有关“bert embedding 308”的信息,但找不到任何东西。

我想知道这种“现象”是否有任何解释。

这是我提取嵌入的例程:

0 投票
0 回答
1167 浏览

python - Bert 模型在 google colab 上给出 CUDA 内存不足错误

我在这里使用下面的教程训练和测试一个 Bertsequenceclassifier 模型,在 google 协作平台上使用显卡。我已经能够在 140,000 个条目上使用最大序列长度 380 成功训练和测试小型数据集。当我尝试在最大序列长度上训练中等数据集时,仅 1 个 epoch 为 512,并且仅在 10000 个条目上,我得到一个 CUDA 内存不足错误。当我将最大序列长度更改为 400 时,它可以训练模型。

我想显然是文件的长度导致了这种情况,但任何人都可以准确解释为什么会发生这种情况以及是否有任何方法可以解决这个问题。谢谢

运行时错误:CUDA 内存不足。尝试分配 20.00 MiB(GPU 0;15.90 GiB 总容量;15.15 GiB 已分配;7.88 MiB 空闲;44.38 MiB 缓存)

0 投票
1 回答
310 浏览

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

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

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

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

0 投票
1 回答
1392 浏览

python - tensorflow.python.framework.errors_impl.InvalidArgumentError: Expected size[0] in [0, 512], but got 891 [Op:Slice]

我正在阅读存储在我的数据库中的文本文件,它们都有不同的大小。当我运行我的代码时,它突然停止并给出这个错误。在任何地方都找不到任何相关的答案。我尝试更改 max_seq_embeddings 但仍然无法正常工作。一旦我遇到长度为 3619 的文件,它就会引发错误。

这是所有使用的文件的链接。 https://github.com/kamalkraj/BERT-NER-TF

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

tensorflow - 获取BERT最后4层的输出(Tensorflow)

我正在阅读 Andreas Poyiatzis 发表在向数据科学网站上的文章。下面是文章的链接。

https://towardsdatascience.com/nlp-extract-contextualized-word-embeddings-from-bert-keras-tf-67ef29f60a7b#--responses

生成的嵌入是通过使用 TPU。但我想在不支持 TPU 的本地机器上运行它。有人可以让我知道如何在 CPU 上运行相同的代码吗?您的帮助将不胜感激。谢谢!

0 投票
2 回答
983 浏览

pytorch - 从 BertForSequenceClassification 获取特征向量

我已经成功地构建了一个情绪分析工具,BertForSequenceClassificationhuggingface/transformers将 $tsla 推文分类为正面或负面。

但是,我不知道如何[CLS]从我的微调模型中获取每条推文的特征向量(更具体地说是 的嵌入)。

使用模型的更多信息:

但是,当我运行下面的代码时,output变量只包含 logits。

0 投票
1 回答
1820 浏览

pytorch - 变形金刚 PreTrainedTokenizer add_tokens 功能

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

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

我的问题

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

任何帮助,将不胜感激。

提前致谢。