BPE (Byte-Pair Encoding) Tokenization

目录

  • 一、Tokenization 的概念
  • 二、BPE 的概念
  • 三、BPE 的步骤

遇到看不明白的地方,欢迎在评论中留言呐,一起讨论,一起进步!
在这里插入图片描述
需掌握的前提知识:
本文参考: P24 台大资讯 2023秋季 深度学习之应用 |ADL 5.1:BPE (Byte-Pair Encoding) Tokenization

一、Tokenization 的概念

Tokenization 即将每个单词进行切分成小的单元。

我们其实也可以直接将每个单词作为一个单元来进行后续的训练,但是这样当我们处理新单词的时候就没有办法给出一个合适的表示,可能许多没有见过的所有的字都公用同一个表示。
在这里插入图片描述

然而,作为真人的我们第一次看到生词的时候,并不是对它一无所知的,我们可以通过生词的组成来进行猜测意思。
在这里插入图片描述
所以我们并不以单词作为一个 token,而是将单词进一步切分,即进行Tokenization。

Tokenization 可以通过多种方式来实现,BPE (Byte-Pair Encoding) 就是其中一种,这种方式比较简单而且非常流行,现在各式各样的预训练模型、基于 Transformer 模型等等都应用了 BPE 方法。

二、BPE 的概念

将单词进行切分,那切分到什么程度合适呢?如果切分单元为字母,这样不存在没有见过的字母,而且整个字母表容量也很小,但是这样一来多个字母形成的语义就难以被建模。

子词(Subword,parts of words)在单词与字母之间进行了折中,这种方式也是一个主流的方法。BPE 就是用了这样的方法来定义子词的词表,将一些常出现的连续的子词放到词表中。

三、BPE 的步骤

假设我们的训练数据如下:
在这里插入图片描述

  • step 1:初始化词表
    将训练语料库中的所有字符(包括单词结束符号)作为初始词汇表的元素。
    在这里插入图片描述

  • step 2:统计词频
    对于给定的文本数据集,统计每个字符对(两个连续字符的组合)的出现频率。
    在这里插入图片描述

  • step 3:合并最频繁的字符对
    从所有字符对中选择出现频率最高的一对。将选定的字符对视为一个单独的词元(token),并将其添加到词汇表中。
    在这里插入图片描述

  • step 4:更新词频统计
    将文本数据集中的所有实例中的选定字符对替换为新创建的词元,从 step 2 进行重复,直到达到预定的词汇表大小或无法进一步合并字符对。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    ……

最终生成的词汇表包含了所有 token,包括原始的字符和合并后的 token。
在这里插入图片描述

如果我们要处理一个没有见过的单词 lowest,通过以上规则我们会将这个单词分为 lowest</w> 两个部分。

如果我们要处理一个没有见过的单词 powest,通过以上规则我们会将这个单词分为 <unk>owest</w> 四个部分。其中 p 在词表中并没有出现,因此我们这里表示为 <unk>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/30128.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatis使用注解形式实现一对多、多对多查询(转载)

1、链接&#xff1a;一对一&#xff0c;一对多 2、多对多 原文 MyBatis的注解实现复杂映射开发 实现复杂关系映射之前我们可以在映射文件中通过配置来实现&#xff0c;使用注解开发后&#xff0c;我们可以使用Results注解&#xff0c;Result注解&#xff0c;One注解&#x…

Java学习笔记之基本数据类型转换

前言 本篇文章是基于我本人在初学JAVA阶段想记录的的学习笔记&#xff0c;如有错误&#xff0c;恳请指正。今天要干掉的是JAVA的基本数据类型转换。 笔记目录一览 前言一&#xff0c;基本数据类型复习二&#xff0c;基本介绍什么是自动类型转换&#xff1f; 三&#xff0c;任…

统计信号处理基础 习题解答10-15

题目 对随机变量的随机性的一个度量是它的熵&#xff08;entropy&#xff09;&#xff0c;熵定义为&#xff1a; 如果&#xff0c;求这个熵&#xff0c;并说明它与PDF集中度的关系。观察到数据后&#xff0c;后验PDF的熵可以确定为&#xff1a; 且它应该比小。因此&#xff0c…

Redis 高可用 sentinel

简介 Sentinel提供了一种高可用方案来抵抗节点故障&#xff0c;当故障发生时Redis集群可以自动进行主从切换&#xff0c;程序可以不用重启。 Redis Sentinel集群可以看成是一个Zookeeper集群&#xff0c;他是Redis集群高可用的心脏&#xff0c;一般由3-5个节点组成&#xff0…

人体接近传感器,ATM微波传感器,人体存在传感器 微波探测器YTMW8631

人体接近传感器&#xff0c;ATM微波传感器&#xff0c;人体存在传感器 微波探测器YTMW8631 史新华 批发Atm微波探测器,Atm传感器人体接近传感器,Dvr录像机专用微波感应器,Atm机录像系统专用感应器 微波传感器的多领域应用 微波探测器是利用微波的多普勒效应来探测运动物体&…

Linux系统编程——进程信号

目录 一&#xff0c;信号预备 1.1 生活中的信号 1.2 技术应用中的信号 1.3 signal函数捕捉信号 1.3 信号的发送与记录 1.4 信号的常见处理方式 二&#xff0c;信号的产生 2.1 核心转储 2.1.1 环境配置 2.1.2 利用core文件进行调试 2.1.3 core dump标志 2.2 通过系统…

程序猿大战Python——文件操作、异常、模块——导入模块

导入模块的方式 目标&#xff1a;了解导入模块的方式有哪些&#xff1f; 模块指的是&#xff1a;以.py结尾的Python文件。 注意&#xff1a;模块名属于标识符。 在模块中&#xff0c;能定义函数、变量和类等&#xff0c;也能包含其他一些可执行的代码&#xff0c;比如print(x…

【ClickHouse】简介入门、Clickhouse的特点、ClickHouse 的安装(一)

简介 ClickHouse入门 ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库&#xff08;DBMS&#xff09;&#xff0c;使用C语言编写&#xff0c;主要用于在线分析处理查询&#xff08;OLAP&#xff09;&#xff0c;能够使用SQL查询实时生成分析数据报告。 ClickHouse的特…

【质量】软件系统数据质量管理过程(Word原件)

软件系统数据做数据质量管理至关重要&#xff0c;原因有四&#xff1a; 首先&#xff0c;数据质量直接影响软件系统的性能和用户体验。高质量的数据能够确保系统稳定运行&#xff0c;提供准确、可靠的信息支持&#xff0c;从而增强用户的满意度和信任度。 其次&#xff0c;数据…

集团门户网站的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;论坛管理&#xff0c;集团文化管理&#xff0c;基础数据管理&#xff0c;公告通知管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;论坛&#xff0…

仓库管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;公告管理&#xff0c;物资管理&#xff0c;基础数据管理&#xff0c;用户管理 用户账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;公告管理&#xff0c;物…

Stable Diffusion AI绘画助力建筑设计艺术创新——城市建筑设计大模型分享

大家好&#xff0c;我是向阳 今天我将针对建筑设计方面的AI大模型进行简单介绍&#xff0c;我们将通过富有想象力的关键词或结合Stable Diffusion 的ControlNet 给原本只有黑白线条的线稿变成彩色的效果图&#xff0c;可能你只需要短短几分钟就可以让黑白线稿变成几种甚至十几种…

【操作系统】操作系统实验03-页面置换算法

题目要求&#xff1a; 先读懂实验文档中的两个页面置换算法&#xff0c;参考文档中程序&#xff0c;实现以下要求&#xff1a; 假设某个进程P有6个页面&#xff0c;进程访问页的顺序自拟&#xff08;不少于20个&#xff09;&#xff0c;在内存中分配给该进程4个页面&#xff…

web安全渗透测试十大常规项(一):web渗透测试之XML和XXE外部实体注入

#详细点: XML被设计为传输和存储数据,XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具。等同于JSON传输。XXE漏洞XML External Entity Injection,即xml外部实体注入漏洞,XXE漏洞发…

Java实现一个解析CURL脚本小工具

该工具可以将CURL脚本中的Header解析为KV Map结构&#xff1b;获取URL路径、请求类型&#xff1b;解析URL参数列表&#xff1b;解析Body请求体&#xff1a;Form表单、Raw Body、KV Body、XML/JSON/TEXT结构体等。 使用示例 获取一个http curl脚本&#xff1a; curl --locatio…

【YOLOv8改进[注意力]】使用CascadedGroupAttention(2023)注意力改进c2f + 含全部代码和详细修改方式 + 手撕结构图

本文将进行在YOLOv8中使用CascadedGroupAttention注意力改进c2f 的实践,助力YOLOv8目标检测效果的实践,文中含全部代码、详细修改方式以及手撕结构图。助您轻松理解改进的方法。 改进前和改进后的参数对比: 目录 一 CascadedGroupAttention 二 使用CascadedGroupAttention…

反激开关电源X电容的放电电阻选型及计算

1、封装 1206 2、电压Vmax200V 3、电流Imax2A 4、功率Pmax1/4W不超过一半 阻值RC1&#xff08;根据安规快速计算&#xff09; 信息技术设备的安全&#xff0c;国家标准&#xff1a;GB4943-2011等同于UL60950 具体放电计算 初始电压为E的电容C通过R放电 V0E V0为电容上初始电压…

MySQL如何实现事务特性

目录 事务有那些特性 原子性如何实现 持久性如何实现 隔离性与一致性如何实现 事务有那些特性 事务是由MySQL的引擎 InnoDB 来实现的 事务的特性 : 原子性 不存在中间状态,要么完成,要么不完成 一致性 事务操作前和操作后,数据满足完整性的约束,数据库保持一致的状态…

SYD88xx使代码在RAM内存中执行/运行

SYD88xx使代码在RAM中执行 SYD8811/8810默认都是cache模式的&#xff0c;但是在代码首次运行的时候&#xff0c;需要将代码从flash搬到cache中执行&#xff0c;这样第一次的代码执行可能会比较慢&#xff0c;这里提供一个将需要提速的代码放到RAM中执行的方法。 对于SYD8811…

C# OCCT Winform 选中模型改变状态

选中状态设置 _context new AIS_InteractiveContext(_viewer);var selectionDrawer new Prs3d_Drawer();selectionDrawer.SetColor(Colors.Selection);selectionDrawer.SetDisplayMode(1);selectionDrawer.SetTransparency(0.1f);_context.SetSelectionStyle(selectionDrawe…