当你随便打开一个App,找到里面的"智能客服"跟他说句话,你会发现它反复就那么几句。
而当你人第一次使用ChatGPT时,会发现无论你说什么,它都会非常有逻辑的回答你,太神奇。
它是怎么做到的?
ChatGPT 它就会根据你发送的内容和上下文,然后输出:预测性文本。
注:上下文,Context,一般是本次会话之前沟通过的内容或者一些背景说明信息。
关于预测性文本,我们举几个例子:
床前明月光,疑是地上霜。 举头望明月,______。
宫廷玉液酒,_____。
如果你看到这些话下意识的脑补出来了后面的内容,这个过程叫做补全(Completion),也是它的核心功能。
而你对ChatGPT输入的内容,比如提的问题,叫做提示词(Prompt)。
ChatGPT的功能基本上就是根据上下文,不停的猜下一个词是什么,当他猜出来下一个词后。他会把猜出来的词放回句子里,再继续猜下一个。如图所示:
之所以它能够不停的推测下一个词是什么,是因为在我们用到ChatGPT之前,它已经被大量的文本语料训练过了。
因此,当它看到和训练语料中类似的话时,它会更高概率的输出曾经训练过的内容,而如果是不常见到的,就更有可能产生更多样,更具创造性的回答。
比如,ChatGPT的训练语料里有大量的唐诗,那它一定会知道"举头望明月"的下一句是"低头思故乡",而不是"我是郭德纲"。
如果让ChatGPT帮我们补齐一段诗歌,"举头望明月"和我们随手写的"抬头看月亮"相比:
- "举头望明月"是个强提示,下一句确定性比较高,更大概率是"低头思故乡"。
- "抬头看月亮"是一个弱提示,下一句确定性就较低,很可能你每次得到的答案都不一样。
所以如果你想更有效地和ChatGPT打交道,那就得用一些已经被验证为是"强提示"的方法。
需要注意的是,chatGPT的回答是随机的。
想象一个场景,你和你的小伙伴用掷骰子的方式决定每天中午吃什么。
但是,你掷的色子不再是一个普通的六面色子,而是一个有上百面的超级色子,这个色子上的每一个面都有不同的食物选项。当你投掷这个色子,你不知道会掷出什么,但是每一面都有一定的几率被选中。
ChatGPT就像这个多面色子。
当你输入一个问题时,ChatGPT会不停的掷骰子来决定应该给你什么样的回应,这个"骰子"非常非常复杂,因为它是由数百万个参数构成的数学模型。
当你问ChatGPT:你今天好吗?
它可能回答:我很好,谢谢!你呢?
如果你再问一次相同的问题,它可能说:我没日夜之分,所以一直都很好!有什么我可以帮你的吗?
就像吉他手在不同的演出中弹同一首歌,他可能会根据观众的反应、自己的心情或者其他任何因素,稍微改变弹奏的方式。虽然大体上是同一首歌,但每次的演出都是独一无二的。
你可能会想,既然每次都不一样,那要咋玩?
首先,网页版ChatGPT因为是一个"智能助手"产品,为了让它更有真实的感觉,有意将它的多样性做得更好,让它每次对话尽量输出不一样的内容。而如果你通过调用ChatGPTD的API接口,在调节合适的参数后,它的输出就会变得稳定很多。