构建 GPT Tokenizer:与 Andrej Karpathy 的探索

构建 GPT 标记器
与安德烈·卡帕蒂

分词器是大型语言模型中至关重要且普遍存在的组件。 它们在文本块和字符串之间进行翻译。 分词器形成 LLM 管道中的一个单独阶段。 他们有自己的训练数据集、训练算法(字节对编码),训练后实现两个基本功能:encode()将字符串转换为token,decode()将token返回字符串。 本讲座将向您展示如何构建 OpenAI 的 GPT 系列中使用的 Tokenizer。 我们会发现LLM的许多奇怪的行为和问题实际上都是由于标记化造成的。 我们将讨论其中的一些问题,解释为什么标记化是问题所在,并讨论为什么如果有人找到一种完全消除此阶段的方法,这将是理想的。

章节:
00:00:00 简介:代币化、GPT-2 论文、代币化相关问题。
Web UI 中的标记化示例 (tiktokenizer)。
00:14.56 Python 中字符串的 Unicode 代码点。
00:18:15 Unicode 字节编码、ASCII、UTF-8、UTF-16、UTF-32
00:22.47 白日梦:删除标记化。
字节对编码算法 (BPE) 的演练。
开始实施。
00:28.35 计算连续的对并找到最常见的对。
00:30.36 合并最常见的对。
00:34.58 训练分词器:添加 while 循环和压缩比。
tokenizer/LLM 示意图:它是一个单独的阶段。
将令牌解码为字符串。
00:48.21 将字符串编码为标记。
00:57.36 用于强制类别之间拆分的正则表达式模式。
01:11:38 tiktoken 库介绍,GPT-2/GPT-4 正则表达式之间的差异。
OpenAI 演练于 01:14:59 发布了 GPT-2encoder.py。
01:18:26 特殊代币、tiktoken 处理、GPT-2/GPT-4 差异。
01:25:28 minbpe 锻炼时间! 编写您自己的 GPT-4 分词器。
01:28.42 句子库简介,用于教授 Llama2 词汇。
如何将词汇设置为01:43? 重新访问 gpt.py 转换器。
01:48.11 训练新的 token,快速压缩的一个例子。
01:49:58 使用矢量量化的多模态[图像、视频和音频]标记化。
01:51 解释怪癖并重新审视 LLM 标记化。
最终建议于 02:10:20
02:12:50??? 微笑

练习:
完整的解决方案位于 minbpe 代码 https://github.com/karpathy/minbpe/bl… 如果您遇到困难,完整的解决方案位于 minbpe 代码 https://github.com/karpathy/minbpe/ BL…

链接:
– 谷歌 colab 视频:https://colab.research.google.com/dri…
– 视频的 GitHub 存储库:minBPE https://github.com/karpathy/minbpe。
迄今为止《从零到英雄》的完整播放列表。 * 神经网络的书面介绍…
我们的 Discord 频道是:/Discord。
我的推特:/卡帕蒂

附加链接
– tiktokenizer https://tiktokenizer.vercel.app。
– 来自 OpenAI 的 tiktoken:https://github.com/openai/tiktoken。
– 来自 Google 的句子 https://github.com/google/sentencepiece

来源和详细信息:
https://www.youtube.com/watch?v=zduSFxRajkE&t=20s&ab_channel=AndrejKarpathy