Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

675次阅读
没有评论

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

  新智元报道  

编辑:桃子

【新智元导读】果不其然,继放出BPE的GitHub代码后,Karpathy终于上线了「从头构建GPT分词器」的课程,引来大波网友关注。


离职OpenAI技术大神karpathy,终于上线了2小时的AI大课。

——「让我们构建GPT Tokenizer(分词器)」。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

其实,早在新课推出两天前,karpathy在更新的GitHub项目中,就预告了这件事。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

这个项目是minbpe——专为LLM分词中常用的BPE(字节对编码)算法创建最少、干净以及教育性的代码。

目前,GitHub已经狂揽6.1k星,442个fork。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器项目地址:https://github.com/karpathy/minbpe

网友:2小时课程含金量,相当于大学4年


不得不说,karpathy新课发布依然吸引了业内一大波学者的关注。

他总是可以把相当复杂的LLM概念,用非常好理解的方式讲出来。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

有网友直接取消了晚上的约会,去上课了。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

与karpathy的约会之夜。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

AI机器学习研究员Sebastian Raschka表示,「我喜欢从头开始的实现,我真的很期待看到这个视频」!

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

英伟达高级科学家Jim Fan表示,「Andrej的大脑是一个大模型,它能将复杂的事物标记化为简单的token,让我们小型思维语言模型可以理解。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

还有UCSC的助理教授Xin Eric Wang表示,「就个人而言,我非常欣赏他多年前发表的关于RL的文章:http://karpathy.github.io/2016/05/31/rl/,这篇文章帮助我进入了RL领域」。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

还有人直言这两个小时课程的含金量,堪比4年制大学学位。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

「Andrej是最好的AI老师」。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

为什么是分词器?


为什么要讲分词器?以及分词器为什么这么重要?

正如karpathy所言,分词器(Tokenizer)是大模型pipeline中一个完全独立的阶段。

它们有自己的训练集、算法(字节对编码BPE),并在训练后实现两个功能:从字符串编码到token,以及从token解码回字符串。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

另外,大模型中许多怪异行为和问题,其实都可以追溯到分词器。

就比如:

– 为什么LLM拼不出单词?

– 为什么LLM无法完成超级简单的字符串处理任务,比如反转字符串?

– 为什么LLM不擅长非英语语言方面的任务?

– 为什么LLM不擅长简单算术?

– 为什么GPT-2在用Python编码时遇到了超出必要的麻烦?

– 为什么LLM在看到字符串<lendoftextl>时突然停止?

– 为什么大模型实际上并不是端到端的语言建模

……

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

视频中,他将讨论许多这样的问题。讨论为什么分词器是错误的,以及为什么有人理想地找到一种方法来完全删除这个阶段。

两小时大课走起


在本讲座中,他将从头开始构建OpenAI GPT系列中使用的Tokenizer。

根据YouTube课程章节介绍,一共有20多个part。

其中包括引言介绍、字节对编码 (BPE) 算法演练、分词器/LLM 图:这是一个完全独立的阶段、minbpe练习时间!编写自己的GPT-4分词器等等。

从讲解到习题演练贯穿了全部课程。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

以下是从演讲内容中总结的部分要点。

在视频结尾,Karpathy重新回顾了LLM分词器带来的怪异问题。

首先,为什么LLM又时拼不正确词,或者做不了其他与拼写相关的任务?

从根本上说,这是因为我们看到这些字符被分割成了一个个token,其中有些token实际上相当长。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

因此,我怀疑这个单个token中塞进了太多的字符,而且我怀疑该模型在与拼写这个单个token相关的任务方面应该不是很擅长。

当然,我的提示是故意这样做的,你可以看到默认风格将是一个单一的token,所以这就是模型所看到的。

事实上,分词器不知道有多少个字母。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

那么,为什么大模型在非英语任务中的表现更差?

这不仅是因为LLM在训练模型参数时,看到的非英语数据较少,还因为分词器没有在非英语数据上得到充分的训练。

就比如,这里「hello how are you」是5个token,而它的翻译是15个token,相当与原始的3倍大。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

「안녕하세요」在韩语中代表着「你好」,但最终只有3个token。

事实上,我对此感到有点惊讶,因为这是一个非常常见的短语,只是典型的问候语,如你好,最终是三个token。

而英语中的「你好」是一个单一的token。这是我认为LLM在非英语任务中表现差的原因之一便是分词器。

另外,为什么LLM会在简单的算术上栽跟头,也是与数字的token有关。

比如一个类似于字符级别的算法来进行加法,我们先会把一加起来,然后把十加起来,再把百加起来。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

你必须参考这些数字的特定部分,但这些数字的表示完全是任意的,主要是基于在分词过程中发生的合并或不合并。

你可以看看,它是一个单一的token,还是2个token,即1-3、2-2、3-1的组合。

因此,所有不同的数字,都是不同的组合。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

不幸的是,有时我们会看到所有四位数字的四个token,有时是三个,有时是两个,有时是一个,而且是以任意的方式。

但这也并不理想。

所以这就是为什么我们会看到,比如说,当训练Llama 2算法时,作者使用句子片段时,他们会确保把所有的数字都分割开来,作为Llama 2的一个例子,这部分是为了提高简单算术的性能。

最后,为什么GPT-2在Python中的表现不佳,一部分是关于架构、数据集和模型强度方面的建模问题。

但也有部分原因是分词器的问题,可以在Python的简单示例中看到,分词器处理空格的编码效率非常糟糕。

每个空格都是一个单独的token,这大大降低了模型可以处理交叉的上下文长度,所以这几乎是GPT-2分词的错误,后来在GPT-4中得到了修复。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

课后习题


在课程下方,karpathy还给在线的网友们布置了课后习题。

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

快来打卡吧。

参考资料:

https://twitter.com/karpathy/status/1759996549109776702?t=lnj52VquAiuW4oG8yflJbA&s=19

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器
Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

 

Read More 

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 
评论(没有评论)
Generated by Feedzy