预训练模型基础:bpe_simple_vocab_16e6.txt 语料库,BPE 算法

预训练模型基础

  • bpe_simple_vocab_16e6.txt
  • BPE

bpe_simple_vocab_16e6.txt

bpe_simple_vocab_16e6.txt.gz 文件是一个使用字节对编码(Byte Pair Encoding,BPE)算法生成的词汇表文件。文件内的单元是基于统计学上的频次自动生成的子词单元。如下所示:

"bpe_simple_vocab_16e6.txt#version: 0.2
i n
t h
a n
r e
a r
e r
th e</w>
...

在python可逐行读取:

merges = gzip.open(bpe_path).read().decode("utf-8").split('\n')

该文件名中的“bpe”和“16e6”表示该词汇表是使用BPE算法 在包含约16百万单词的语料库训练得到。bpe算法是当前最常见 tokenizer 的编码方法,用于 GPT (OpenAI) 和 Bert (Google) 的 Pre-training Model。

BPE

BPE(Byte Pair Encoding)是一种自然语言压缩算法,目的是使用最少的 token 数目来表示一个语料库 corpus。

主要步骤如下:

1. 初始化:将文本中的每个字符作为初始子词单元。
2. 计算频率:统计相邻字符对的频率。
3. 循环直到达到预定的子词单元数量或合并次数:3.1 合并:合并频率最高的字节对;3.2 计算频率:更新文本中相邻字符的频率;
4. 返回学习到的子词单元。

例子:已知文本为aaabdaaabac

1. 初始化:a a a b d a a a b a c
2. 计算频率:{aa:4, ab:2, bd:1, da:1, ba:1, ac:1}
3. 循环不再有重复出现的子词单元:3.1 合并:Z <- aa,得到 ZabdZabac;3.2 计算频率:{Za:2, ab:2, bd:1, dZ:1, ba:1, ac:1}3.3 合并: Y <- Za,得到 YbdYbac;3.4 计算频率:{Yb:2, bd:1, dY:1, ba:1, ac: 1}3.5 合并:X <- Yb,得到 XdXac;3.6 计算频率:{Xd:1, dX:1, Xa:1, ac:1}4. 返回 {X, d, a, c}	={Yb, d, a, c}={Za, d, a, c}={aa a, d, a, c}

改进后的算法在每个单词末尾加上边界符号</w>,以区分字符在末尾与非末尾的不同情况,实现更准确的分词与编码。

[1] 文本: BPE(Byte-Pair Encoding)简介
[2] 文本: 字节对编码
[3] 视频: 什么是BPE算法Byte-Pair Encoding
[4] 代码:Byte Pair Encoding

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

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

相关文章

C++ :设计模式实现

文章目录 原则单一职责原则开闭原则依赖倒置原则接口隔离原则里氏替换原则 设计模式单例模式观察者模式策略模式代理模式 原则 单一职责原则 定义&#xff1a; 即一个类只负责一项职责 问题&#xff1a; 类 T 负责两个不同的职责&#xff1a;职责 P1&#xff0c;职责 P2。当…

Tomcat源码解析——一次请求的处理流程

在上一篇文章中&#xff0c;我们知道Tomcat在启动后&#xff0c;会在Connector中开启一个Acceptor(接收器)绑定线程然后用于监听socket的连接&#xff0c;那么当我们发出请求时&#xff0c;第一步也就是建立TCP连接&#xff0c;则会从Acceptor的run方法处进入。 Acceptor&…

使用CSS+HTML完成导航栏

HTML <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>导航栏示例</title> &l…

07 内核开发-避免命名冲突经验技巧分享

07 内核开发-避免命名冲突经验技巧分享 目录 07 内核开发-避免命名冲突经验技巧分享 1.如何在内核开发过程中&#xff0c;避免命名冲突 2. 背景 3.避免方法 4.了解下 文件/proc/kallsyms 5.总结 课程简介&#xff1a; Linux内核开发入门是一门旨在帮助学习者从最基本的…

java-异常

一、异常的概念及分类 Exception&#xff1a;异常&#xff0c;代表程序可能出现的问题 Exception分为两类&#xff1a; 1、运行时异常&#xff1a;RuntimeException以及其子类&#xff0c;编译阶段不会出现异常提醒&#xff0c;在运行阶段会出现异常提醒 2、编译时异常&…

最全!2024百度Spring Zuul面试题大全,详解每个角落,面试必备宝典!收藏版!

随着微服务架构在现代软件开发中的广泛采用&#xff0c;了解和掌握如何通过服务网关管理和优化服务间的交互变得至关重要。Spring Zuul&#xff0c;作为Spring Cloud生态系统中的关键组件之一&#xff0c;提供了强大的路由、过滤和安全功能&#xff0c;帮助开发者在微服务架构中…

基于SpringBoot+Vue网上商城系统的设计与实现

系统介绍 随着社会的不断进步与发展&#xff0c;人们经济水平也不断的提高&#xff0c;于是对各行各业需求也越来越高。特别是从2019年新型冠状病毒爆发以来&#xff0c;利用计算机网络来处理各行业事务这一概念更深入人心&#xff0c;由于用户工作繁忙的原因&#xff0c;去商…

抽象工厂模式设计实验

【实验内容】 楚锋软件公司欲开发一套界面皮肤库&#xff0c;可以对 Java 桌面软件进行界面美化。为了保护版权&#xff0c;该皮肤库源代码不打算公开&#xff0c;而只向用户提供已打包为 jar 文件的 class 字节码文件。用户在使用时可以通过菜单来选择皮肤&#xff0c;不同的…

Java数据类型以及范围

数据类型&#xff1a; 取值范围&#xff1a; 取值&#xff1a;

UniApp状态管理:从深入理解到灵活运用

在UniApp开发中&#xff0c;状态管理是一个至关重要的概念&#xff0c;它决定了应用程序的结构、性能和可维护性。本文将深入探讨UniApp中的状态管理&#xff0c;从基础知识到高级技巧&#xff0c;帮助开发者更好地理解和应用状态管理。 1. 什么是状态管理&#xff1f; 在Uni…

PHP是什么以及它的主要用途是什么?

PHP是什么以及它的主要用途是什么&#xff1f; PHP&#xff0c;全称Hypertext Preprocessor&#xff0c;是一种通用的开源脚本语言。它尤其适用于Web开发&#xff0c;并可嵌入HTML中。PHP最初的设计目标是创建动态生成的网页&#xff0c;随着其不断的发展&#xff0c;现在的PH…

磁性呼吸传感技术与机器学习结合在COVID-19审断中的应用

介绍 呼吸不仅是人类生存的基础&#xff0c;而且其模式也是评估个体健康状态的关键指标。异常的呼吸模式往往是呼吸系统疾病的一个警示信号&#xff0c;包括但不限于慢性阻塞性肺病&#xff08;COPD&#xff09;、阻塞性睡眠呼吸暂停&#xff08;OSA&#xff09;、肺炎、囊性纤…

TensorFlow 用 hashtable 的意义

TF的hashtable用来存不连续的id/int的embedding的&#xff0c; 就是比如id从1-100000&#xff0c;但1-100000里有很多值是空的&#xff0c; 如果id就是1-500&#xff0c;是满的&#xff0c;从1-500都有值&#xff0c;可以用一个 501 * hidden_size 的embedding_matrix存embed…

idea连接Docker数据库

我们在docker下创建了数据库&#xff0c;想要更方便的查看和操作该数据库&#xff0c;idea和DataGrip或者其他软件都可以。在数据库连接时需要填写数据库名字&#xff0c;主机&#xff0c;端口&#xff0c;数据库用户名和密码。 输入之后先不要点击OK和按Enter键&#xff0c;我…

GAN详解,公式推导解读,详细到每一步的理论推导

在看这一篇文章之前&#xff0c;希望熟悉掌握熵的知识&#xff0c;可看我写的跟熵相关的一篇博客https://blog.csdn.net/m0_59156726/article/details/138128622 1. GAN 原始论文&#xff1a;https://arxiv.org/pdf/1406.2661.pdf 放一张GAN的结构&#xff0c;如下&#xff1…

Linux:动静态库介绍

动静态库 库的介绍开发环境 & 编译器库存在的意义库的实现库的命名静态库制作和使用总结 动态库的制作和使用动态库的使用方法方法一方法二方法三 库加载问题静态库加载问题动态库的加载问题与位置无关码 C/C静态库下载方式 库的介绍 静态库&#xff1a;程序在编译链接的时…

计算机网络---第十一天

生成树协议 stp作用&#xff1a; 作用&#xff1a;stp用于解决二层环路问题。 BPDU&#xff1a; 含义&#xff1a;桥协议数据单元&#xff0c;用于传递stp协议相关报文 分类&#xff1a;配置bpdu---用于传递stp的配置信息 tcn bpdu---用于通告拓扑变更信息 包含信息&…

数据库主键ID自增,两种方法获取插入数据库那条数据自动生成的主键ID值

目录 1. 前言 2. 适用于 MyBatis 框架 2.1 获取单条插入语句生成的ID 2.2 获取集合插入生成的多条数据的ID 3. 适用于 MyBatisPlus 框架 3.1 获取单条数据插入生成的ID 3.2 获取集合插入数据生成的多条数据的ID 4. 小结 1. 前言 在开发过程中&#xff0c;我们可能会遇…

OpenCompass 大模型评测实战——作业

OpenCompass 大模型评测实战——作业 一、基础作业1.1、使用 OpenCompass 评测 internlm2-chat-1_8b 模型在 C-Eval 数据集上的性能1.1.1、安装基本环境1.1.2、解压数据集1.1.3、查看支持的数据集和模型1.1.4、启动评测 二、进阶作业2.1、将自定义数据集提交至OpenCompass官网 …

2024春季春日主题活动策划方案

2024解冻派对“春日浪漫”主题活动策划方案-32P 方案页码&#xff1a;32页 文件格式&#xff1a;pptx 方案简介&#xff1a; 春来一季&#xff0c;新生欢喜 花香丨微风丨阳光 活动唤起【春日浪漫记忆】&#xff01; 年轻人不一样的派对活动 可以与朋友/小朋友/家人互动…