Transformer 通关秘籍3:利用 GPT2 将文本 token 化

在上一节,利用 BERT 模型将一个文本进行了 token 化。那你可能会问,是不是所有的模型将同一个文本 token 化之后,结果都一样呢?

当然不是。

这是因为不同的模型对文本进行 token 化时使用到的算法不一样。

在 BERT 中用到的是 WordPiece 算法,而 GPT 系列模型将文本进行 token 化时,使用的则是 Byte-Pair Encoding(BPE)算法,这两种算法虽然不是本专栏的重点,但后面也会专门来讲解一下。

下面来看一下如何使用 GPT2 模型来对文本进行 token 化,以及 GPT2 模型对文本 token 化之后的 token 序列和 BERT 输出的 token 序列有什么不同?

GPT2 如何对文本进行转换

GPT(Generative Pre-trained Transformer)大家应该都不陌生了,它是 OpenAI 开发的一系列自然语言处理模型,这些模型同样可以用于生成文本、语言理解和其他语言相关的任务。

GPT1 发布于 2018 年,也是 GPT 系列最早的一个版本,当时发布时,就以其巨大的参数量(在当时而言)出名了。

GPT2 发布于 2019 年,是在 GPT1 版本上的演进。

GPT3 发布于 2020 年,参数量达到了 1750 亿个。

在 2023 年火爆出圈的 chatGPT 是基于 GPT-3.5 版本而来的,这是 GPT3 的增强版本,专门优化了模型的语言生成和对话能力,后来 2023 年又出了 GPT4,据说现在OpenAI 正在秘密训练 GPT5,不过目前还没有见到官方报道。

这里有一个全程一站式的 Transformer 讲解和实战辅导,带你从零手写一个可对话的大模型,点击链接查看详情从零手写大模型实战

利用 GPT2 将文本 token 化

本节使用一个 GPT 早期版本(GPT2)来将一段文本进行 token 化,相关代码如下:

ini 复制代码
from transformers import GPT2 token izer
# 加载模型和 token izer
 token izer = GPT2 token izer.from_pretrained('GPT2')

# 初始文本
prompt = "I debug my code all day, and I am like a debugger."

encode_id =  token izer.encode(prompt)
print(encode_id)
 token s =  token izer.convert_ids_to_ token s(encode_id)
print( token s)

上述代码运行完,会打印出 token 序列如下:

css 复制代码
['I', 'Ġdebug', 'Ġmy', 'Ġcode', 'Ġall', 'Ġday', ',', 'Ġand', 'ĠI', 'Ġam', 'Ġlike', 'Ġa', 'Ġdebugger', '.']

可以看到,GPT2 输出的 token 序列与 BERT 输出的 token 序列并不一致,其中,每个单词前面的特殊符号表明这是一个新词的开始,用来将词与词进行区分。

你可以重点关注一下 debug 这个单词。在 BERT 中,debug被拆分为了de,bu和g三个子词,而在 GPT2 的输出中仍然是 debug,这便跟模型使用的算法有关。

同样,你也可以修改上述代码中的文本 text,看模型将其 token 化之后是什么样的。

我创建了一个《小而精的AI学习圈》知识星球,星球上有几十万字原创高质量的技术专栏分享,同时你也可以在星球向我提问。 点击这里,我们星球见! >>>
点击这里查看所有 AI 技术专栏

相关推荐
罗湖老棍子7 小时前
【例 1】Sightseeing Trip(信息学奥赛一本通- P1494)(洛谷-P10927)
数据结构·算法·图论·最短路·floyd·最小环
stsdddd9 小时前
YOLO算法建筑工地安全帽目标检测数据集16881张:标注核对笔记
算法·yolo·目标检测
CV爱数码10 小时前
论文精读|Learned Primal-Dual:把原始–对偶算法展开成网络
图像处理·算法·计算机视觉·ct·重建·断层扫描
yuniko-n10 小时前
【算法】约瑟夫环问题
java·算法
l1t11 小时前
测试DuckDB v2.1.0-alpha49002的bignum乘法
数据库·sql·算法·duckdb
Nil20811 小时前
LeetCode 283移动零
数据结构·算法·leetcode
CQU_JIAKE11 小时前
10.18【A】
算法
LMT流氓兔12 小时前
第五单元——第4课:给工具参数加校验
java·前端·算法·ai·langchain
物联网软硬件开发-轨物科技13 小时前
【轨物方案】深度解读开关柜智能感知及一键顺控专家系统
大数据·运维·网络·人工智能·算法·机器人
行者全栈架构师13 小时前
我用 TRAE Work 把桌游之夜搬进了浏览器:一个计分器的从创意到上线
前端·算法·架构