AI解剖课堂 · Part 3 把文字变成数字
第 30 章 把常挨在一起的片段合并
Q. 词表里有 20 万块,难道是有人一块一块定出来的?
- 词表不是人定的。先收集大量文字,再把经常挨在一起出现的片段合并起来。这个方法叫 BPE。
- 用日记里的五个词来试试。一开始每个字都是一块。把出现次数也算上,一共 56 块。
- 现在把挨着的两块配成对,数一数。“完”和“了”挨在一起的次数最多,有 9 次。
- 把最多的那一对合成一块,放进词表。现在“完了”是一个新词元,块数减少到 47。
- 再数一遍,再合并:学习、运动、一下。合并四次后,块数从 56 减少到 29。
- 没人教过它语法,“学习”和“完了”却各自成了一块。它只是数了数哪些组合经常出现。
- 所以第一次见到的“跑步完了”也能用认识的块来切:跑、步、完了。“打扫一下”是打、扫、一下。
- GPT-4o 的分词器也是这样合并出约 20 万块的,所以“学校”“学生”“学习”都成了整块。
本章小结
- BPE:在一大堆文字里,把最常挨在一起出现的一对合并成一块。
- 不断重复“数一数、合一合”,直到词表达到想要的大小。
- 常见的组合变成一块,第一次见的词也能用认识的块切开。