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

nlp - 单向变压器 VS 双向 BERT

我刚读完Transformer论文和BERT论文。但无法弄清楚为什么 Transformer 是单向的,而 BERT 是双向的,正如 BERT 论文中提到的那样。由于他们不使用循环网络,因此解释方向并不是那么简单。任何人都可以提供一些线索吗?谢谢。

0 投票
1 回答
1250 浏览

python - 如何在 TF Hub Module 中访问 BERT 中间层输出?

有人知道从 BERT 在 Tensorflow Hub 上托管的模型访问中间层输出的方法吗?

该模型托管在这里。我探索了元图,发现唯一可用的签名是“tokens”、“tokenization_info”和“mlm”。前两个在 github 上的示例中进行了说明,而掩码语言模型签名没有多大帮助。一些模型像 inception 一样,允许您访问所有中间层,但不能访问这一层。

现在,我能想到的只有:

  1. 运行[i.values() for i in tf.get_default_graph().get_operations()]以获取张量的名称,然后找到我想要的(从数千个中)
  2. tf.get_default_graph().get_tensor_by_name(name_of_the_tensor)访问这些值并将它们拼接在一起并将它们连接到我的下游层。

有人知道使用 Tensorflow 的更清洁的解决方案吗?

0 投票
5 回答
21160 浏览

python - 如何使用 BERT 对相似的句子进行聚类

对于 ElMo、FastText 和 Word2Vec,我对句子中的词嵌入进行平均,并使用 HDBSCAN/KMeans 聚类对相似的句子进行分组。

在这篇短文中可以看到一个很好的实现示例:http: //ai.intelligentonlinetools.com/ml/text-clustering-word-embedding-machine-learning/

我想使用 BERT 做同样的事情(使用来自拥抱脸的 BERT python 包),但是我不太熟悉如何提取原始单词/句子向量以便将它们输入到聚类算法中。我知道 BERT 可以输出句子表示 - 那么我将如何从句子中实际提取原始向量呢?

任何信息都有帮助。

0 投票
1 回答
5846 浏览

keras - 如何将 Bert 嵌入提供给 LSTM

我正在研究用于文本分类问题的 Bert + MLP 模型。本质上,我试图用基本的 LSTM 模型替换 MLP 模型。

是否可以创建带有嵌入的 LSTM?或者,最好创建一个带有嵌入层的 LSTM?

更具体地说,我很难尝试创建嵌入式矩阵,因此我可以使用 Bert 嵌入创建嵌入层。

0 投票
0 回答
171 浏览

python - 如何使用 Bert 生成嵌入

我开始使用以下 Kaggle 内核:

之后,我使用了以下即将接近的代码:

执行此操作后,我的features变量得到以下输出:

我的困惑是如何将其转换为可用于其他任务的嵌入数组。我可能会错过伯特的工作方式。

0 投票
1 回答
750 浏览

machine-learning - BERT 的表现比 word2vec 差

我正在尝试将 BERT 用于文档排名问题。我的任务很简单。我必须对输入文档进行相似度排名。这里唯一的问题是我没有标签 - 所以它更多的是定性分析。

我正在尝试一系列文档表示技术——主要是 word2vec、para2vec 和 BERT。

对于 BERT,我遇到了Hugging face - Pytorch库。我微调了 bert-base-uncased 模型,大约有 150,000 个文档。我运行了 5 个 epoch,批量大小为 16,最大 seq 长度为 128。但是,如果我比较 Bert 表示与 word2vec 表示的性能,出于某种原因,word2vec 现在对我来说表现更好。对于 BERT,我使用最后四层来获取表示。

我不太清楚为什么微调模型不起作用。我阅读了这篇论文,这个其他链接也表明 BERT 在针对分类任务进行微调时表现良好。然而,由于我没有标签,我对它进行了微调,就像它在论文中所做的那样——以一种无人监督的方式。

此外,我的文件的长度差异很大。所以我现在要明智地向他们发送句子。最后,无论如何我都必须对单词嵌入进行平均才能获得句子嵌入。关于更好方法的任何想法?我也在这里读到——有不同的方法可以汇集词嵌入以获得固定的嵌入。想知道是否可以比较哪种池化技术效果更好?

任何有关更好地训练 BERT 或更好的池化方法的帮助将不胜感激!

0 投票
1 回答
529 浏览

tensorflow - 如何在bert中设置特定的gpu?

ResourceExhaustedError(参见上面的回溯):

分配形状 [768] 的张量和类型 float [[node bert/encoder/layer_0/attention/output/LayerNorm/beta/adam_m/Initializer/zeros(定义在 /home/zyl/souhu/bert/optimization.py: 122) = Const_class=["loc:@bert/encoder/layer_0/attention/output/LayerNorm/beta/adam_m/Assign"], dtype=DT_FLOAT, value=Tensor, _device="/job:localhost/replica:0/任务:0/设备:GPU:0“]]

如何设置gpu 1 或另一个来运行bert

0 投票
1 回答
89 浏览

machine-learning - 为什么 Bert 格式需要一次性列?

我最近遇到了 Bert(变形金刚的双向编码器表示)。我看到 Bert 要求训练数据有严格的格式。所需的第三列描述如下:

第 3列:所有相同字母的列——这是一个需要包含的一次性列,因为 BERT 模型需要它。

什么是一次性列,为什么在数据集中需要此列,因为它声明它包含相同的字母?

谢谢你。

0 投票
1 回答
358 浏览

nlp - 为什么损失继续减少而性能保持不变?

我正在使用 bert-lstm-crf 模型,来自https://github.com/huggingface/pytorch-pretrained-BERT/的 bert 模型和 lstm crf 模型是我自己编写的。

在训练 bert-lstm-crf 模型 25 个 epoch 后,训练集、开发集和测试集的性能保持不变,但损失继续下降。我应该在哪里进行更改?

这是性能:

第 25 个时代:

第26期:

第 27 期:

更多时期:相同性能的更低损失:

这真是一个奇怪的问题,我不知道如何处理。任何建议都会有很大帮助。

以下是相关代码:

性能应该随着损失而改变,但现在没有

0 投票
0 回答
359 浏览

python - TPU 不支持占位符 X 类型的操作。如果在图中使用此操作,执行将失败

我正在 TPU 上使用 BERT 运行文本分类任务。我使用了不同的教程来运行我的实验1234。我与第二个示例的唯一区别是我的数据集不是 Bert 处理器中预定义的数据集之一,因此我必须自己加载和预处理它。另外,我想在其中进行一些更改,create_model因此我不得不将其写下来如下:

当我运行代码时,create_model我看到很多错误,而训练没有问题并且一切顺利,但我不确定是否:1.由于以下错误,模型是否使用 TPU,2.该模型正在使用 Bert 并对其进行微调,因为所有create_model函数都存在以下错误。任何想法?这是错误(所有功能数百万次):

Operation of type Placeholder X is not supported on the TPU. Execution will fail if this op is used in the graph.