数据学习
登录
注册
原创博客
期刊会议
学术世界
期刊出版社
领域期刊
SCI/SCIE/SSCI/EI简介
期刊列表
会议列表
所有期刊分区
学术期刊信息检索
JCR期刊分区查询
CiteScore期刊分区查询
中科院期刊分区查询
领域期刊分区
管理 - UTD24期刊列表
管理 - AJG(ABS)期刊星级查询
管理 - FMS推荐期刊列表
计算机 - CCF推荐期刊会议列表
高校期刊分区
南大核心(CSSCI)
合工大小核心
合工大大核心
AI资源仓库
AI领域与任务
AI研究机构
AI学术期刊
AI论文快讯
AI数据集
AI开源工具
AI模型
AI模型概览
预训练模型
数据推荐
网址导航
我的网址导航
程序员必备网站
OpenAI开源GPT-2的子词标记化神器——tiktoken,一个超级快的(Byte Pair Encoder,BPE)字节对编码Python库
标签:
#OpenAI#
#tokenizer#
#开源#
时间:2022/12/16 21:11:16
作者:小木
OpenAI在其官方GitHub上公开了一个最新的开源Python库:tiktoken,这个库主要是用力做字节对编码的。相比较HuggingFace的tokenizer,其速度提升了好几倍。 [TOC] #### BPE简介 字节编码对(Byte Pair Encoder,BPE)是一种子词处理的方法。其主要的目的是为了压缩文本数据。主要是将数据中最常连续出现的字节(bytes)替换成数据中没有出现的字节的方法。该算法首先由Philip Gage在1994年提出。 关于BPE的详细介绍请参考:[自然语言处理中常见的字节编码对(Byte-Pair Encoding,BPE)算法简介](https://www.datalearner.com/blog/1051671195034710 "自然语言处理中常见的字节编码对(Byte-Pair Encoding,BPE)算法简介") 其它一些流行的子词标记化算法包括WordPiece、Unigram和SentencePiece。而BPE用于GPT-2、RoBERTa、XLM、FlauBERT等语言模型中。这些模型中有几个使用空间标记化作为预标记化方法,而有几个使用Moses, spaCY, ftfy提供的更高级的预标记化方法。 #### tiktoken简介 前天,OpenAI开源了GPT-2中使用的BPE算法tiktoken,并以Python库的形式开源。官方宣称该库做BPE比HuggingFace的tokenizer快好几倍,其对比如下:

可以看到,在不同线程数下面,tiktoken处理速度都比HuggingFace快多了,各种条件下都比tokenizer快3-6倍。 上述对比是处理1GB数据的结果。 #### tiktoken使用 tiktoken使用方法也很简单。示例代码如下: ```python import tiktoken enc = tiktoken.get_encoding("gpt2") # 字节对编码过程,我的输出是[31373, 995] encoding_res = enc.encode("hello world") print(encoding_res) # 字节对解码过程,解码结果:hello world raw_text = enc.decode(encoding_res) print(raw_text) ``` 如下图所示:

tiktoken官方开源地址:https://github.com/openai/tiktoken
相关博客
最热博客