小编Mr.*_*NLP的帖子

CUDA 错误:调用 `cublasCreate(handle)` 时出现 CUBLAS_STATUS_ALLOC_FAILED

在 colab 中运行 pytorch 深度学习模型时出现以下错误

/usr/local/lib/python3.6/dist-packages/torch/nn/functional.py in linear(input, weight, bias)
   1370         ret = torch.addmm(bias, input, weight.t())
   1371     else:
-> 1372         output = input.matmul(weight.t())
   1373         if bias is not None:
   1374             output += bias

RuntimeError: CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling `cublasCreate(handle)`
Run Code Online (Sandbox Code Playgroud)

我什至将批量大小从 128 减少到 64,即减少到一半,但仍然出现此错误。早些时候,我以 128 的批量大小运行了相同的代码,但没有收到任何类似的错误。

nlp pytorch bert-language-model

18
推荐指数
5
解决办法
4万
查看次数

难以理解 Roberta 模型中使用的分词器

from transformers import AutoModel, AutoTokenizer

tokenizer1 = AutoTokenizer.from_pretrained("roberta-base")
tokenizer2 = AutoTokenizer.from_pretrained("bert-base-cased")

sequence = "A Titan RTX has 24GB of VRAM"
print(tokenizer1.tokenize(sequence))
print(tokenizer2.tokenize(sequence))
Run Code Online (Sandbox Code Playgroud)

输出:

['A', '?Titan', '?RTX', '?has', '?24', 'GB', '?of', '?VR', 'AM']

['A', 'Titan', 'R', '##T', '##X', 'has', '24', '##GB', 'of', 'V', '##内存']

Bert 模型使用 WordPiece 分词器。WordPiece 词汇表中没有出现的任何单词都会被贪婪地分解为子单词。例如,“RTX”被分解为“R”、“##T”和“##X”,其中## 表示它是一个子标记。

Roberta 使用 BPE 标记器,但我无法理解

a) BPE 分词器是如何工作的?

b) G 在每个代币中代表什么?

nlp pytorch bert-language-model huggingface-transformers

6
推荐指数
1
解决办法
3614
查看次数

Roberta 模型预处理文本中的混乱

我想应用 Roberta 模型来实现文本相似度。给定一对句子,输入的格式应为<s> A </s></s> B </s>。我想出了两种可能的方法来生成输入ID,即

A)

from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained('roberta-base')

list1 = tokenizer.encode('Very severe pain in hands')

list2 = tokenizer.encode('Numbness of upper limb')

sequence = list1+[2]+list2[1:]

Run Code Online (Sandbox Code Playgroud)

在这种情况下,顺序是[0, 12178, 3814, 2400, 11, 1420, 2, 2, 234, 4179, 1825, 9, 2853, 29654, 2]

b)

from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained('roberta-base')

list1 = tokenizer.encode('Very severe pain in hands', add_special_tokens=False)

list2 = tokenizer.encode('Numbness of upper limb', add_special_tokens=False)

sequence = [0]+list1+[2,2]+list2+[2]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,顺序是[0, 25101, …

nlp pytorch bert-language-model huggingface-transformers

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