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

相关推荐
xlq223229 小时前
22.多态(上)
开发语言·c++·算法
666HZ6669 小时前
C语言——高精度加法
c语言·开发语言·算法
sweet丶10 小时前
iOS MMKV原理整理总结:比UserDefaults快100倍的存储方案是如何炼成的?
算法·架构
云里雾里!11 小时前
力扣 209. 长度最小的子数组:滑动窗口解法完整解析
数据结构·算法·leetcode
CoderYanger11 小时前
递归、搜索与回溯-穷举vs暴搜vs深搜vs回溯vs剪枝:12.全排列
java·算法·leetcode·机器学习·深度优先·剪枝·1024程序员节
憨憨崽&12 小时前
进击大厂:程序员必须修炼的算法“内功”与思维体系
开发语言·数据结构·算法·链表·贪心算法·线性回归·动态规划
chem411113 小时前
C 语言 函数指针和函数指针数组
c语言·数据结构·算法
liu****13 小时前
八.函数递归
c语言·开发语言·数据结构·c++·算法
CM莫问13 小时前
详解机器学习经典模型(原理及应用)——岭回归
人工智能·python·算法·机器学习·回归
DuHz13 小时前
论文阅读——Edge Impulse:面向微型机器学习的MLOps平台
论文阅读·人工智能·物联网·算法·机器学习·edge·边缘计算