问题标签 [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 回答
4308 浏览

python - 如何使用训练有素的 BERT 模型检查点进行预测?

我用 SQUAD 2.0 训练了 BERT,并使用BERT-mastermodel.ckpt.data在输出目录中得到了, model.ckpt.meta, model.ckpt.index(F1 score : 81) 以及predictions.json, 等等/run_squad.py

我尝试将model.ckpt.meta, model.ckpt.index,复制model.ckpt.data$BERT_LARGE_DIR目录并更改run_squad.py标志如下,以仅预测答案而不使用数据集进行训练:

它抛出 bucket directory/model.ckpt 不存在错误。

如何利用训练后生成的检查点进行预测?

0 投票
0 回答
380 浏览

python - BERT - 从所有层中提取值

我正在尝试从 BERT 获取“词嵌入”。我已经对“情感分类”模型进行了微调,该模型可以预测句子是正面的还是负面的。但我需要从所有层中提取值以获得特征化表示。

我尝试过这样的事情

all_layers = model.get_all_encoder_layers()

但不起作用

我必须更改 model_fn 才能从 BERT 的所有层获取值?

0 投票
2 回答
4054 浏览

python - 使用 Tensorflow BERT 模型保存和进行推理

我用 Tensorflow BERT 语言模型创建了一个二元分类器。这是链接。模型训练完成后,它会保存模型并生成以下文件。 pytho

预测代码。

错误

在挖掘了这个问题之后。我遇到了用于保存模型的 tf.train.Saver() 类。我将估算器训练代码更改为以下以保存模型。我提到了这个链接。我猜张量流估计器可以用它来保存。

这是错误。

变量、权重在 create_model 函数中创建。我应该改变什么来保存我训练的模型?

更新:保存模型的代码。我不确定 feature_spec 和特征张量。

我收到了这个错误:-

0 投票
1 回答
869 浏览

nlp - BERT 词嵌入的大小/范数有什么意义?

我们通常将词嵌入之间的相似度与余弦相似度进行比较,但这仅考虑了向量之间的角度,而不是范数。使用 word2vec,向量的范数会随着单词在更多不同的上下文中的使用而降低。因此,停用词接近 0,并且非常独特、高含义的词往往是大向量。BERT 是上下文敏感的,所以这个解释并不完全涵盖 BERT 嵌入。有谁知道向量幅度对 BERT 的意义是什么?

0 投票
2 回答
2789 浏览

pytorch - ImportError:无法导入名称“warmup_linear”

尝试导入warmup_linear时,出现此错误

进口 -

需求文件

导入“warmup_linear”需要做什么?

0 投票
1 回答
1036 浏览

python - 在张量流中使用保存的估计器时,saved_model_cli 的问题

我一直在使用 BERT large uncased 进行二进制文本分类。我正在使用 google colab 进行训练模型。为了保存估算器,我使用了以下方法serving_input_funtion

并保存了以下估算器:

这保存了估计器,但现在当我试图用来saved_model_cli测试估计器时,它不起作用。它向我抛出错误,例如:

在此处输入图像描述

命令是:

在此处输入图像描述

它不直接接受字符串,所以这就是我手动将其划分为dict. 将其转换为 后dict,我意识到这仅接受bytes_list. 这就是我将字符串转换为字节格式的原因。

在此处输入图像描述

堆栈跟踪

如果有人能告诉我哪里出了问题,我们将不胜感激。serving_input_receiver_fn我猜也可能有问题。

最大序列长度为 128

谢谢。

编辑 1

如果使用 tf.placeholder() 而不是 tf.FixedLenFeature

在此处输入图像描述

0 投票
1 回答
236 浏览

tensorflow - 如何通过从张量流图中获取正确的占位符将我自己的数据提供给 BERT

我正在尝试为 NER 微调 BERT。我从这里下载了一个检查点(https://storage.googleapis.com/bert_models/2018_10_18/uncased_L-12_H-768_A-12.zip

我已经使用以下代码加载了会话和图表:

现在,我试图从该图中获取输入占位符,以创建我自己的 feed_dict 并定义我自己的损失函数。我使用以下代码检查图表:

下面列出了我找到的唯一占位符:

这些占位符对我来说看起来不正确,原因如下:

  1. 我希望它们的大小为 (None,512),因为此 BERT 模型接受的序列长度最大为 512,并且不应该预先确定 batch_size。根据我在这里看到的这个大小,这个 BERT 模型一次接受 1 个序列,最大大小为 128。这是为什么呢?

  2. 我相信我们必须提供一组序列、它们的长度和相应的标签。在这三个占位符中,哪个是哪个?

0 投票
0 回答
745 浏览

tensorflow - BERT-as-Service 在开始时崩溃

这是我第一次使用 Tensorflow 和 Bert-as-service。使用 VS 代码作为编辑器,我无法启动 Bert-as-service 服务器端。同时,位于 Jupyter Notebook 上的 Bert-as-service 客户端也失败了,如下图所示。

我只想启动 BERT 服务并使用客户端获取句子编码,如此处的示例。请帮我。

环境:Windows 7 RAM 4G/Anaconda 2019.07/Python 3.7.3/tensorflow 1.14/Bert-as-Service CPU 版本

在此处输入图像描述

0 投票
4 回答
7353 浏览

tensorflow - 您将使用哪种模型(GPT2、BERT、XLNet 等)进行文本分类任务?为什么?

我正在尝试为句子分类任务训练模型。输入是一个句子(整数向量),输出是一个标签(0 或 1)。我在这里和那里看到了一些关于使用 Bert 和 GPT2 进行文本分类任务的文章。但是,我不确定我应该从哪一个开始。您将从 NLP 中的哪些最新模型开始使用,例如原始 Transformer 模型、Bert、GPT2、XLNet?为什么?我宁愿在 Tensorflow 中实现,但我也可以灵活地选择 PyTorch。谢谢!

0 投票
1 回答
1637 浏览

tensorflow - BERT 中的屏蔽

在 BERT 的原始论文中说:

请注意,掩蔽策略的目的是减少预训练和微调之间的不匹配,因为在微调阶段不会出现 [MASK] 符号。

让我们考虑一个句子“我是利物浦球迷”,40% 的掩蔽将被转换为“我 [MASK] 一个 [MASK] 球迷”。在预测第一个[MASK]时,是否会被一个短语“I [MASK] a fan”预测,不包括第二个[MASK]或“I [MASK] a [MASK] fan”,由一个完整的句子预测?

而用自己替换 10% 的掩码代币的目的是什么?这是否意味着他们不会被预测?或者我们会在上下文中预测它们(比如通过“我是 [MASK] 粉丝”来预测第一个 [MASK]?

将非常感谢任何帮助!