技术界传奇卡帕西离开OpenAI后,依旧活跃不已。不久前,他发布了一系列新项目,其中包括一段长达2小时13分钟的教学视频,手把手教你构建一个GPT Tokenizer(分词器)。
这不禁让人回想起两个月前的大模型科普课程。卡帕西一直以来都是“出手必属精品”,而他最新的视频也再次引起了广泛关注。

就在今晚的约会取消,因为有卡帕西的课要上的那种(摇头笑)。
这样高质量的课程即使收费也难以得到,不看后悔啊!
为什么要关注分词器?
分词器在大语言模型pipeline中是一个完全独立的阶段。它有自己的训练集和算法,比如著名的BPE(字节对编码)。分词器在训练完成后,实现两个主要功能:从字符串编码到token,以及从token解码回字符串。
为什么要关注分词器呢?卡帕西指出,LLM(大语言模型)中的许多奇怪行为和问题都可以追溯到它。比如,为什么大模型无法处理简单的字符串操作,如反转?为什么在非英语任务中性能较差?为什么不擅长简单的算术?为什么看到某些字符串后就“宕机”了?为什么大模型实际上并不是端到端的语言建模?
因此,为了解决这些问题,卡帕西推出了这门课程,尽管他本人对这部分内容并不是特别感兴趣。
视频内容概要
视频一开始,主要介绍了分词器的基本概念,包括最简单的字符级分词和更复杂的chunk级操作。在其中,最常用的算法是BPE,即字节对编码。要构建自己的分词器,理解BPE算法至关重要。
BPE算法能更好地处理非英语语言,并对词汇表大小进行调整,从而影响模型性能。例如,GPT-4分词器通过改进BPE算法,使其在处理Python代码时更加高效。
了解了BPE算法后,构建分词器的步骤包括:初始化词汇表、合并字节对直到达到预设大小、处理特殊字符和不同语言字符、整体优化以及选择合适的数据集进行训练。
训练好的分词器可用于编码和解码文本,并最终集成到模型中。当然,后续还需要根据模型的表现进行持续调整。
结语
视频中详细介绍了每个步骤的Python实现,包括如何找到最频繁的字节对、合并这些对以及构建合并字典等等。对于想要深入了解和构建自己的分词器的人来说,这是一份宝贵的学习资料。
无论是对于新手还是资深者,这段视频都值得一看。感谢卡帕西为技术社区做出的贡献!