问题标签 [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.
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 不存在错误。
如何利用训练后生成的检查点进行预测?
python - BERT - 从所有层中提取值
我正在尝试从 BERT 获取“词嵌入”。我已经对“情感分类”模型进行了微调,该模型可以预测句子是正面的还是负面的。但我需要从所有层中提取值以获得特征化表示。
我尝试过这样的事情
all_layers = model.get_all_encoder_layers()
但不起作用
我必须更改 model_fn 才能从 BERT 的所有层获取值?
nlp - BERT 词嵌入的大小/范数有什么意义?
我们通常将词嵌入之间的相似度与余弦相似度进行比较,但这仅考虑了向量之间的角度,而不是范数。使用 word2vec,向量的范数会随着单词在更多不同的上下文中的使用而降低。因此,停用词接近 0,并且非常独特、高含义的词往往是大向量。BERT 是上下文敏感的,所以这个解释并不完全涵盖 BERT 嵌入。有谁知道向量幅度对 BERT 的意义是什么?
pytorch - ImportError:无法导入名称“warmup_linear”
尝试导入warmup_linear
时,出现此错误
进口 -
需求文件
导入“warmup_linear”需要做什么?
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
tensorflow - 如何通过从张量流图中获取正确的占位符将我自己的数据提供给 BERT
我正在尝试为 NER 微调 BERT。我从这里下载了一个检查点(https://storage.googleapis.com/bert_models/2018_10_18/uncased_L-12_H-768_A-12.zip)
我已经使用以下代码加载了会话和图表:
现在,我试图从该图中获取输入占位符,以创建我自己的 feed_dict 并定义我自己的损失函数。我使用以下代码检查图表:
下面列出了我找到的唯一占位符:
这些占位符对我来说看起来不正确,原因如下:
我希望它们的大小为 (None,512),因为此 BERT 模型接受的序列长度最大为 512,并且不应该预先确定 batch_size。根据我在这里看到的这个大小,这个 BERT 模型一次接受 1 个序列,最大大小为 128。这是为什么呢?
我相信我们必须提供一组序列、它们的长度和相应的标签。在这三个占位符中,哪个是哪个?
tensorflow - 您将使用哪种模型(GPT2、BERT、XLNet 等)进行文本分类任务?为什么?
我正在尝试为句子分类任务训练模型。输入是一个句子(整数向量),输出是一个标签(0 或 1)。我在这里和那里看到了一些关于使用 Bert 和 GPT2 进行文本分类任务的文章。但是,我不确定我应该从哪一个开始。您将从 NLP 中的哪些最新模型开始使用,例如原始 Transformer 模型、Bert、GPT2、XLNet?为什么?我宁愿在 Tensorflow 中实现,但我也可以灵活地选择 PyTorch。谢谢!
tensorflow - BERT 中的屏蔽
在 BERT 的原始论文中说:
请注意,掩蔽策略的目的是减少预训练和微调之间的不匹配,因为在微调阶段不会出现 [MASK] 符号。
让我们考虑一个句子“我是利物浦球迷”,40% 的掩蔽将被转换为“我 [MASK] 一个 [MASK] 球迷”。在预测第一个[MASK]时,是否会被一个短语“I [MASK] a fan”预测,不包括第二个[MASK]或“I [MASK] a [MASK] fan”,由一个完整的句子预测?
而用自己替换 10% 的掩码代币的目的是什么?这是否意味着他们不会被预测?或者我们会在上下文中预测它们(比如通过“我是 [MASK] 粉丝”来预测第一个 [MASK]?
将非常感谢任何帮助!