从结果来看,GPT4 相比 GPT2,在 Python 代码处理水平上的大幅提升,其中由 Tokenizer 改进带来的收益远大于大模型本身迭代的收益。
—————————分割线—————————
在看 Andrej Karpathy 最新上传的视频 Let's build the GPT Tokenizer
其中提到,Tokenizer 的设计是大模型里面不容忽略的一环。
举的例子是——在 GPT2 里面并不能很好地处理 Python 代码,因为每行的空格缩进(比如每行开头的 4 个或更多空格)在之前的Tokenizer都会被处理单独成很多个独立token,这样编码后的的 token 数会很多很长,对 transformer 实际能处理的注意力窗口带来很大影响。
而 GPT4 使用的 Tokenizer ,将每行前面的多个空格(无论是 4 个或是更多),都处理成一整个 token,极大提高了 transformer 的处理效率;从结果来看,GPT4 相比 GPT2,在 Python 代码处理水平上的大幅提升,其中由 Tokenizer 改进带来的收益远大于大模型本身迭代的收益。
(参考)具体而言:
图中的文本例子中,GPT2 的 Tokenizer 统计是 300 tokens, 同样内容变成使用 GPT4 的Tokenizer之后(叫做cl100k_base),只有 185 tokens