当前位置: 首页 > article >正文

BERT模型入门(12)字节对编码(Byte Pair Encoding,BPE)

文章目录


让我们通过一个例子来理解字节对编码(BPE)是如何工作的。假设我们有一个数据集。首先,我们从数据集中提取所有单词及其计数。假设从数据集中提取的单词及其计数为(cost, 2)、(best, 2)、(menu, 1)、(men, 1)和(camel, 1)。

现在,我们将所有单词拆分成字符并创建一个字符序列。以下表格显示了带有计数的字符序列:

在这里插入图片描述

图2.19 – 带计数的字符序列

接下来,我们定义词汇表的大小。假设我们构建一个大小为14的词汇表。这意味着我们创建一个包含14个tokens的词汇表。现在,让我们了解如何使用BPE创建词汇表。

首先,我们将字符序列中出现的所有唯一字符添加到词汇表中,如下所示:

在这里插入图片描述

图2.20 – 使用所有唯一字符创建词汇表

我们可以观察到,我们的词汇表大小为11。现在,让我们看看如何向词汇表中添加新tokens。

要向词汇表中添加新tokens,首先,我们识别最频繁的符号对。然后,我们将这个最频繁的符号对合并并添加到词汇表中。我们重复这个步骤,直到达到词汇表的大小。让我们详细理解这个过程。

通过观察以下字符序列,我们可以发现最频繁的符号对是s和t,因为符号对s和t出现了四次(在cost中两次,在best中两次):

在这里插入图片描述

图2.21 – 寻找最频繁的符号对

因此,我们合并符号s和t,并将其添加到词汇表中,如下所示:

在这里插入图片描述

图2.22 – 合并符号s和t

现在,我们重复相同的步骤。也就是说,我们再次检查最频繁的符号对。我们可以观察到,现在我们最频繁的符号对是m和e,因为它们出现了三次(在menu中一次,在men中一次,在camel中一次):

在这里插入图片描述

图2.23 – 寻找最频繁的符号对

所以,我们合并符号m和e,并将其添加到词汇表中,如下所示:

在这里插入图片描述

图2.24 – 合并符号m和e

再次,我们检查最频繁的符号对。我们可以观察到,现在我们最频繁的符号对是me和n,因为它们出现了两次(在menu中一次,在men中一次):

在这里插入图片描述

图2.25 – 寻找最频繁的符号对

所以,我们合并符号me和n,并将其添加到词汇表中,如下所示:

在这里插入图片描述

图2.26 – 合并符号me和n

这样,我们重复这个步骤多次,直到达到词汇表的大小。从前面的图中,我们可以观察到现在我们的词汇表有14个tokens。由于在这个例子中,我们创建的是大小为14的词汇表,所以我们在这个步骤停止。
因此,从给定的数据集中,我们构建了一个包含14个tokens的词汇表:

词汇表vocabulary = {a, b, c, e, l, m, n, o, s, t, u, st, me, men}

BPE涉及的步骤如下:

(1)从给定的数据集中提取单词及其计数。

(2)定义词汇表的大小。

(3)将单词拆分为字符序列。

(4)将字符序列中的所有唯一字符添加到词汇表中。

(5)选择并合并高频的符号对。

(6)重复步骤5直到达到词汇表的大小。

我们了解了如何使用BPE构建词汇表。那么,这个词汇表如何使用呢?我们使用词汇表来对给定的输入进行分词。让我们在下一节中通过几个例子来理解这个概念。


感谢您的阅读,欢迎关注!



http://www.kler.cn/a/447783.html

相关文章:

  • 智能座舱进阶-应用框架层-Handler分析
  • 【Prompt Engineering】6 文本扩展
  • linux zip unzip 命令的使用
  • 启用WSL后,使用ssh通道连接ubuntu
  • docker简单命令
  • 操作系统文件管理
  • 【数据库系统概论】—— 关系数据库
  • stm32制作CAN适配器4--WinUsb的使用
  • 植物大战僵尸杂交版v3.0.2最新版本(附下载链接)
  • 云图库平台(二)前端项目初始化
  • 二进制分析的新兴趋势:塑造安全的移动应用
  • Kubernates
  • Ubuntu24版 最新安装CUDA驱动方式
  • dify工作流+github actions实现翻译并创建PR
  • 智能体实战(需求分析助手)二、需求分析助手第一版实现(支持需求提取、整理、痛点分析、需求分类、优先级分析、需求文档生成等功能)
  • Spring(二)AOP、切入点表达式、AspecJ常用通知的类型、Spring中的事务管理
  • 【期末复习】JavaEE(上)
  • powershell美化
  • 使用 Docker 打包和运行 Vue 应用
  • Suno Api V4模型无水印开发「人声伴奏分离」 —— 「Suno Api系列」第7篇
  • 成方金融科技后端部分笔试题 - 解析
  • Pytorch | 利用VMI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击
  • Pytorch | 从零构建MobileNet对CIFAR10进行分类
  • 电子应用设计方案66:智能打印机系统设计
  • Vulkan 学习(11)---- Vulkan RenderPass 创建
  • Liunx下MySQL:表的约束