目录

深度学习-bert流程

深度学习 bert流程

Token IDs

在自然语言处理任务中,特别是使用预训练模型如BERT时,文本首先通过一个分词器(例如 BertTokenizer )转换为一系列的token IDs。这些ID是每个词或子词单元在词汇表(包含汉字、英文单词、标点符号)中的索引位置。例如,假设有一个简化的词汇表如下:

{
 0: '[PAD]',
 1: 'hello',
 2: 'world',
 3: '[UNK]',
 ...
}

如果输入句子是 "hello world" ,经过分词器处理后,得到的token IDs可能是 [1, 2] ,这里 12 分别对应词汇表中的 'hello''world'

BERT中的应用

在BERT模型中,输入首先是被转换成token IDs的形式,然后通过嵌入层(Embedding Layer)将这些token IDs映射到一个高维(768维)的向量空间中。这个过程允许模型基于上下文学习更丰富的表示形式,而不是简单地依赖于稀疏的独热编码表示。因此,在您的代码中:

input_text = self.bert_tokenizer(data, return_tensors="pt", truncation=True, padding="max_length", max_length=512)
input_ids = input_text["input_ids"].to(self.device)

这里的 input_ids 就是包含了一系列token IDs的张量,而不是独热编码的表示形式。BERT模型随后会使用这些token IDs来查找对应的词嵌入(word embeddings),作为其输入的一部分进行进一步的处理。这种方法不仅节省了内存和计算资源,还使得模型能够学习更加紧凑和有效的特征表示。