jev 这种模型结构呢?
使用AI,最重要的是输入。而输入的核心,就是提示词。因此我们说,使用AI最重要的事,就是对提示词进行优化。小学生般的提示词输入,就得到小学生般的答案。专家级的提示词输入,就得到专家级的答案。
AI的逻辑,是预测下一个词(token)。预测的方式,是基于神经网络算概率。你说一个吃字,它算下吃这个字的后面,再吐出哪个字的概率更高。
AI的训练,是用全人类的文本去做训练,所以它的知识很丰富。任何一个词,站在全人类所有文本的角度来说,它的后面都会有无数个字。吃字的后面可以是吃饭,可以是吃冰淇淋,可以是吃屎,也可以是吃不下……在训练模型的海量文本里,吃字的后面有这么多候选字。那到底该出哪一个?就用条件概率去算,把那些最高概率的词算出来,然后选一个给到你(也就是所谓的采样策略)。
所以任何问题给到AI,它都一定有答案,因为模型总是会生成出文本。所以AI不存在像人类一样,对于不会的问题,就无法回答的情况。本质上就是对于人类千百年来的无数文本来说,任何一个字后面,都一定能找到一堆词可以接上去。
这一轮AI的底层技术,是Transformer。这个技术有两个特点:第一,会把所有的输入都进行一轮计算,计算各个字之间的相关性。第二,会把每个词的位置作为计算参考。这两点合起来,也就是所谓的注意力机制。相关性越强、位置越近,注意力就越高。
而算概率,就是把所有的输入作为条件,进行计算。算什么呢?算相似度。AI会把我们的所有输入,都进行词嵌入处理,也就是变成向量。大家应该听说过向量这个词,向量就是带大小和方向的量。
如何表示词和词的相似度呢?就是计算向量间的相似度,也即计算向量间的夹角。夹角越小,相似度就越高,那就越相似。譬如土豆和洋芋,这两个词构成的向量,它们的夹角很小,就认为这两个词很相似。
那如何算得更准?这就得靠提示词了。没有提示词,那就只能随便说。有了提示词,就会把提示词作为输入,进行计算。你问土豆相关的问题,提示词说它是美食家,那么它计算下一个词的时候,就会向美食家这个方向去靠。因为将美食家这个输入纳入计算后,那么下一个词吐出与美食家这个词相关的词的概率,会比吐出医学这个词相关的词的概率要高——还记得我们上面说的注意力么。AI吐出的每个词(也就是AI的答案),都会是与你输入的提示词的注意力更高的词。
这就是要优化提示词的作用:让模型吐出的词,最大概率来满足你的专业需求。因为你输入的每个字,都在改变模型吐出的字的概率,都在影响整个注意力。所以不要随便写提示词,而要写你最希望得到的答案相关的提示词。
我们说AI有幻觉。看了上面的介绍,大家应该也就理解了AI幻觉的本质:AI并不是基于事实,而是基于自己学到的庞杂且巨大的信息量(也就是所谓的参数),来计算概率,从而回答人们的问题。而AI学到的这些庞杂的信息,真假难辨,但AI并不会去做真实性的校验。反正概率高,就吐给你了。至于真假如何、正确与否,是否符合事实,这不是AI所关心的事。所以,这就是你自己要去确认的事。
那么如何减少幻觉,其实做法也就很简单了:不要让它简单的基于自己那庞大的信息量去计算概率,而要让它把参考内容作为上下文的条件,让生成要锚定在这些材料上计算概率。这就是通过RAG来降低AI幻觉的本质。