标签: bert-language-model

BERT 词嵌入的大小/范数有何意义?

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

nlp bert-language-model

7
推荐指数
1
解决办法
2000
查看次数

BertTokenizer - 当编码和解码序列出现额外空格时

使用 HuggingFace 的 Transformers 时,我遇到了编码和解码方法的问题。

我有以下字符串:

test_string = 'text with percentage%'
Run Code Online (Sandbox Code Playgroud)

然后我运行以下代码:

import torch
from transformers import BertTokenizer

tokenizer = BertTokenizer.from_pretrained('bert-base-cased')

test_string = 'text with percentage%'

# encode Converts a string in a sequence of ids (integer), using the tokenizer and vocabulary.
input_ids = tokenizer.encode(test_string)
output = tokenizer.decode(input_ids)
Run Code Online (Sandbox Code Playgroud)

输出如下所示:

'text with percentage %'
Run Code Online (Sandbox Code Playgroud)

在 % 前有一个额外的空格。我已经尝试了额外的参数,clean_up_tokenization_spaces 但这是不同的。

我应该如何在解码和编码中使用什么来获得前后完全相同的文本。这也发生在其他特殊标志上。

python tokenize torch pytorch bert-language-model

7
推荐指数
1
解决办法
4265
查看次数

导入 BERT 时出错:模块“tensorflow._api.v2.train”没有属性“Optimizer”

我尝试在Google Colab中使用bert-tensorflow,但出现以下错误:

-------------------------------------------------- ------------------------- AttributeError Traceback(最近一次调用最后一次) in () 1 import bert ----> 2 from bert import run_classifier_with_tfhub # run_classifier 3 来自 bert 导入优化 4 来自 bert 导入标记化

1 帧 /usr/local/lib/python3.6/dist-packages/bert/optimization.py in () 85 86 ---> 87 class AdamWeightDecayOptimizer(tf.train.Optimizer): 88 """一个基本的 Adam 优化器其中包括“正确的”L2 权重衰减。""" 89

AttributeError:模块“tensorflow._api.v2.train”没有属性“Optimizer”

这是我尝试过的代码:

  1. 安装库:

!pip install --upgrade --force-reinstall tensorflow !pip install --upgrade --force-reinstall tensorflow-gpu !pip install tensorflow_hub !pip install sentencepiece !pip install bert-tensorflow

  1. 运行这段代码:

from sklearn.model_selection import train_test_split import pandas as pd from datetime import …

python classification tensorflow bert-language-model

7
推荐指数
1
解决办法
2万
查看次数

BERT模型的参数个数是如何计算的?

Devlin & Co. 的论文《BERT: Pre-training of Deep Bi Direction Transformers for Language Understanding》针对基础模型大小 110M 参数(即 L=12、H=768、A=12)进行了计算,其中 L = 层数, H = 隐藏大小,A = 自注意力操作的数量。据我所知,神经网络中的参数通常是层之间“权重和偏差”的计数。那么如何根据给定的信息计算出这个值呢?12 768 768*12?

nlp neural-network bert-language-model

7
推荐指数
1
解决办法
2万
查看次数

如何在 Transformer 管道中指定代理

我正在使用此处描述的情感分析管道。

from transformers import pipeline
classifier = pipeline('sentiment-analysis')
Run Code Online (Sandbox Code Playgroud)

失败并显示连接错误消息

ValueError:连接错误,我们在缓存路径中找不到请求的文件。请重试或确保您的互联网连接已打开。

有没有办法在管道方法中指定代理,以便它能够连接到互联网并下载所需的文件?

python bert-language-model huggingface-transformers

7
推荐指数
1
解决办法
7753
查看次数

spaCy下使用BERT获取句子嵌入

我正在尝试使用 BERT 来获取句子嵌入。我是这样做的:

import spacy
nlp = spacy.load("en_core_web_trf")
nlp("The quick brown fox jumps over the lazy dog").vector 
Run Code Online (Sandbox Code Playgroud)

这输出一个空向量!

array([], dtype=float32)
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

python nlp spacy bert-language-model

7
推荐指数
1
解决办法
2328
查看次数

Huggingface 分词器中的填充如何工作?

我尝试了以下标记化示例:

tokenizer = BertTokenizer.from_pretrained(MODEL_TYPE, do_lower_case=True)
sent = "I hate this. Not that.",        
_tokenized = tokenizer(sent, padding=True, max_length=20, truncation=True)
print(_tknzr.decode(_tokenized['input_ids'][0]))
print(len(_tokenized['input_ids'][0]))
Run Code Online (Sandbox Code Playgroud)

输出是:

[CLS] i hate this. not that. [SEP]
9
Run Code Online (Sandbox Code Playgroud)

tokenizer注意:的参数max_length=20。如何让 Bert 分词器将 11 个[PAD]分词附加到这句话中以使其总计20

nlp transformer-model bert-language-model huggingface-transformers huggingface-tokenizers

7
推荐指数
1
解决办法
1万
查看次数

可学习位置嵌入的本质是什么?嵌入可以更好地改善结果吗?

我最近正在阅读huggingface项目的bert源代码。我注意到所谓的“可学习位置编码”在实现时似乎指的是特定的 nn.Parameter 层。

\n
def __init__(self):\n    super()\n    positional_encoding = nn.Parameter()\ndef forward(self, x):\n    x += positional_encoding\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x86\x91 可能是这种感觉,然后进行了可学习的位置编码。不管是不是这么简单,我不确定我理解是否正确,我想请教有经验的人。

\n

此外,我注意到一个经典的 bert 结构,其位置实际上仅在初始输入时编码一次。这是否意味着后续的bert层,对于彼此来说,失去了捕获位置信息的能力?

\n
BertModel(\n  (embeddings): BertEmbeddings(\n    (word_embeddings): Embedding(30522, 768, padding_idx=0)\n    (position_embeddings): Embedding(512, 768)\n    (token_type_embeddings): Embedding(2, 768)\n    (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n    (dropout): Dropout(p=0.1, inplace=False)\n  )\n  (encoder): BertEncoder(\n    (layer): ModuleList(\n      (0): BertLayer(...)\n      ...\n  (pooler): BertPooler(...)\n
Run Code Online (Sandbox Code Playgroud)\n

如果在下一个 BERT 层之前对上一层的结果进行重新位置编码,我会得到更好的结果吗?

\n

transformer-model deep-learning pytorch bert-language-model

7
推荐指数
1
解决办法
5141
查看次数

该模型没有从输入中返回损失 - LabSE 错误

我想使用小队数据集微调 LabSE 以进行问答。我收到这个错误: ValueError: The model did not return a loss from the inputs, only the following keys: last_hidden_state,pooler_output. For reference, the inputs it received are input_ids,token_type_ids,attention_mask.

我正在尝试使用 pytorch 微调模型。我尝试使用较小的批量大小,但只使用了 10% 的训练数据集,因为我遇到了内存分配问题。如果内存分配问题消失,则会发生此错误。老实说,我坚持了下来。你有什么提示吗?

我正在尝试使用 Huggingface 教程,但我想使用其他评估(我想自己做),所以我跳过了使用数据集的评估部分。

from datasets import load_dataset
raw_datasets = load_dataset("squad", split='train')


from transformers import BertTokenizerFast, BertModel
from transformers import AutoTokenizer


model_checkpoint = "setu4993/LaBSE"
tokenizer = AutoTokenizer.from_pretrained(model_checkpoint)
model = BertModel.from_pretrained(model_checkpoint)



max_length = 384
stride = 128


def preprocess_training_examples(examples):
    questions = [q.strip() for q in examples["question"]]
    inputs = tokenizer(
        questions, …
Run Code Online (Sandbox Code Playgroud)

nlp pytorch bert-language-model huggingface-transformers

7
推荐指数
1
解决办法
1万
查看次数

ModuleNotFoundError:没有名为“torch.utils._pytree”的模块

我已经安装了PyTorch 1.7.1,并且运行得很好。但是,当我尝试运行此代码时:

import transformers
from transformers import BertTokenizer
from transformers.models.bert.modeling_bert import BertModel,BertForMaskedLM
Run Code Online (Sandbox Code Playgroud)

我有:

ModuleNotFoundError: No module named 'torch.utils._pytree'
Run Code Online (Sandbox Code Playgroud)

pytorch bert-language-model

7
推荐指数
1
解决办法
2202
查看次数