因为我们也是一个字一个字地说话啊。
不说话只思考的时候,我们脑中也是一个字一个字地往外蹦不是?
大模型 AI 的算法就是模拟了这个过程。这个算法叫 transformer。
Ta 只做一件事:基于输入的字,生成下一个字。把这些字一起当做输入,再生成下一个字。如此往复,直到结束。
这里用「字」是为了好理解。严格说,生成的单位并不是「字」,也不是「词」,而是叫「token」。
往细节里说说,一个 token 可能是一个英文单词,也可能是半个,三分之一个。可能是一个中文词,或者一个汉字,也可能是半个汉字,甚至三分之一个汉字。到底是多少,取决于模型的设计者。
对使用者来说,只在计费时需要关心这个。为什么生成下一个 token 就有智能了?这也太简单了吧?
是的,生成的过程确实简单。难点都在模型训练。
在训练模型的过程,模型把 token 之间的关系保存在模型文件中。这个关系可以简化理解成就是各个 token 同时出现的概率。比如:
输入「感谢北京同仁」,那么大概率后面跟着「医院」。
输入「做为出版业的一员,感谢北京同仁」,则后面更可能跟着「的帮助」。
模型训练的过程就是从学习数据里统计出大量的概率,保存下来。生成过程就基于概率找可能性最高的下一个 token。
因为基于概率,所以用「猜」来形容 AI 的行为更合适。
当然,ta 不是瞎猜。只要训练数据有相关信息,模型规模又大到足够容纳相当多的相关信息,那么猜中的概率就会很大。
「熟读唐诗三百首,不会吟诗也会吟」,我们人类的思考,不也就是基于学过的知识、经验,来猜下一个字吗?
所以,咱们得把 AI 当人看。