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 技术专栏

相关推荐
数模竞赛Paid answer2 分钟前
2021年深圳杯数学建模C题配电网可靠性和故障软自愈研究解题全过程论文及程序
算法·数学建模·数据分析·深圳杯
有点。7 分钟前
C++广度优先搜索(二)-练习题
c++·算法·宽度优先
疯狂打码的少年20 分钟前
【数据结构】队列的应用:循环队列
数据结构·笔记·算法
Winner_hwx34 分钟前
python拓展
算法
TAN-90°-44 分钟前
Deep Learning for Computer Vision——Image Classification with Linear Classifiers
python·深度学习·算法·计算机视觉·线性回归
阿pin1 小时前
Java随笔-红黑树
java·python·算法·红黑树
Hi李耶1 小时前
【LeetCode】17.电话号码的字母组合
算法·leetcode·职场和发展
江畔柳前堤10 小时前
大语言模型分布式训练:从并行策略到万卡工程的系统梳理
人工智能·分布式·深度学习·算法·目标检测·机器学习·语言模型
Forever Nore11 小时前
LeetCode 4 寻找两个正序数组的中位数 - 二分
算法·leetcode
罗西的思考12 小时前
【OpenClaw具身硬件】MiniClaw 阅读笔记---(1)基础
人工智能·算法·机器学习