初次使用BERT的可视化指南

初次使用BERT的可视化指南

在这里插入图片描述
在过去几年里,处理语言的机器学习模型的进展一直在迅速加快。这一进步已经离开了研究实验室,开始为一些领先的数字产品提供动力。这方面的一个很好的例子是最近公布的BERT模型如何成为谷歌搜索背后的主要力量。谷歌认为,这一步(即自然语言理解在搜索领域的应用进展)代表了过去五年最大的飞跃,也是搜索历史上最大的飞跃之一。

这篇文章是关于如何使用BERT的变体对句子进行分类的简单教程。作为第一个介绍,这是一个足够基本的示例,但也足够高级,可以展示所涉及的一些关键概念。

数据集:SST2
在本例中,我们将使用的数据集是SST2,其中包含电影评论中的句子,每个句子都标记为正样本(值为1)或负样本(值为0):
在这里插入图片描述
模型:情感分类
我们的目标是创建一个模型,该模型接受一个句子(就像我们的数据集中的那些句子一样),并生成1(表示句子带有积极情绪)或0(表示句子带有消极情绪)。我们可以把它想象成这样:
在这里插入图片描述
实际上,该模型是由两个模型组成的。

  • DistilBERT 处理这个句子,并将从中提取的一些信息传递给下一个模型。DistilBERT 是BERT的一个小版本,由HuggingFace的团队开发和开源。它是伯特的一个更轻、更快的版本,与它的性能大致相当。
  • 下一个模型是来自scikit learn的基本逻辑回归模型,它将接受DistilBERT处理的结果,并将句子分为正或负(分别为1和0)。

我们在两个模型之间传递的数据是一个大小为768的向量。我们可以把这个向量看作是我们可以用来分类的句子的嵌入。
在这里插入图片描述
训练模型

虽然我们将使用两个模型,但我们只训练逻辑回归模型。对于 DistillBERT,我们将使用一个已经过预先训练过并掌握了英语的模型。然而,这个模型既没有经过训练,也没有经过 finetune 来进行句子分类。然而,从 BERT 通用目标的训练中,我们得到了一些句子分类的能力。对于第一个位置(与[CLS] token 相关联)的 BERT 输出尤其如此。我认为这是由于 BERT 的第二个训练目标 — 下一个句子的分类。这个目标似乎是训练模型将句子的意义压缩到了第一个位置的输出中。transformer库为我们提供了 DistilBERT 的实现以及模型的预训练版本。
在这里插入图片描述
教程概述
这就是本教程的策略。我们将首先使用训练好的distilBERT来生成2000个句子的嵌入。
在这里插入图片描述
在这一步之后,我们将不再接触distilBERT。这些都是我从这里学到的。我们做通常的训练/测试划分这个数据集:
在这里插入图片描述
然后在训练集上训练logistic回归模型:
在这里插入图片描述
如何计算单个预测
在深入研究代码并解释如何训练模型之前,让我们先看看训练后的模型如何计算其预测。

让我们试着把这句话“a visually stunning rumination on love”分类。第一步是使用 BERT tokenizer 将单词首先分割成 tokens。然后,我们添加句子分类所需的特殊 tokens(在第一个位置是[CLS],在句子的末尾是[SEP])。
在这里插入图片描述
tokenizer 做的第三步是用嵌入表中的 id 替换每个 token,嵌入表是我们从训练模型中得到的一个组件。
在这里插入图片描述
注意,tokenizer 在一行代码中完成所有这些步骤:

tokenizer.encode("a visually stunning rumination on love", add_special_tokens=True)

我们的输入语句现在是传递给 DistilBERT 的正确形状。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值