词元与上下文窗口
“AI 入门”课程第 3 课,共 23 课。免费,有动画和小测验。
文字是怎么被切开的
模型读你的消息之前,先由分词器把它切开:分词器是把文字切成词元的程序。词元就是一小块文字:一个完整的词或词的一部分,有时是空格或标点。每个词元在模型的词表里都有自己的编号(id)。模型看到的不是字母,而是一串编号。图里的计数器显示这句话被切成了多少个词元。
一个词,好几个词元
常见词通常一个词元就够,生僻词和长词会被切成几块。同样的意思,用中文、俄语、阿拉伯语等很多语言写,往往比英语占用更多词元,因为模型的词表主要是用英文文本建的。附送一个冷知识:模型很难数清一个英文单词里有几个字母,因为它根本看不到字母。
上下文窗口
上下文窗口就是模型一次能看到多少文字,用词元来计量。所有内容一起算进去:你的消息、它的回复、你粘贴的文件,还有聊天的隐藏设置。装不下的部分,对模型来说就不存在。它不能像你一样往回翻聊天记录,只能看到此刻窗口里的内容,就像图里那些亮着的消息。
聊太久,开头就丢了
想象一个持续一周、准备考试的聊天。当文字超出窗口,最早的消息就会被挤出去或被压缩,就像图里框外那些变淡的消息。即使在窗口里面,模型有时也会漏掉长文中间的细节。怎么办:让它写个简短总结,开一个新聊天,把总结贴进去,重要条件再说一遍。
为什么额度按词元算
每读或写一个词元,都要花模型的时间和算力。所以 AI 服务的消息额度、回答长度和价格都按词元计算。经验法则:英文里一个词元平均约等于 3/4 个单词,其他语言里每个词元对应的字词通常更少。重点:提示词里的废话既占窗口又耗额度,还没有任何用处。
自测一下
- 什么是上下文窗口?
正确答案: 模型一次能看到多少词元. 上下文窗口是模型一次能看到的文字量,用词元计。窗口外的内容对它来说不存在。 - 为什么同样的意思,用中文往往比用英文占更多词元?
正确答案: 词表主要是用英文建的. 常见的英文片段更容易在词表里整块出现,所以其他语言的文字会被切成更多块。 - 聊了一周,模型忘了第一条消息里的条件。怎么做比较合理?
正确答案: 让它写总结,然后在新聊天里继续. 旧消息已经被挤出窗口,让它“想一想”也找不回来。在新聊天里贴上总结,就能把重点重新放进窗口。
← 神经网络如何“思考” 嵌入:把意思变成坐标 →