AI解剖课堂 · Part 3 把文字变成数字
第 32 章 编号的局限
Q. 每个词元都有编号,直接把编号送进模型不行吗?
- 每个词元都有编号(第 29 章):“学校”是 73048 号,“我”是 7522 号。直接把编号送进去会怎样?
- 模型会把数字相乘、相加(第 12 章)。这样一来,“学校”就成了“我”的将近 10 倍。可编号的大小根本没有意义。
- 所以不用编号,改用位置来表示。词有多少个就准备多少格,只在自己的位置放 1。这叫独热编码。
- 这样就没有大小之分了。可是有两个问题。第一,太长了。换成 GPT-4o,约 20 万格里只有一个 1。
- 第二,所有词都一样陌生。任意两个词的距离都是 √2(第 8 章),点积都是 0(第 9 章)。
- 小狗和小猫很像,独热编码却表示不出来。它们的距离和小狗与公交车一样远。
- 我们需要的是一串短短的数字,意思越像,数字就越接近。这就是下一章要讲的嵌入。
本章小结
- 词元编号的大小没有意义,不能直接拿来计算。
- 独热编码:词有多少个就有多少格,只在自己的位置放 1。大小之分消失了。
- 但它太长(约 20 万格),而且所有词都一样远(距离 √2,点积 0)。