一个回答背后的四个部分
一个聊天机器人,是一个模型,加上包裹在它周围的三样东西:一段隐藏指令、目前为止的对话记忆,以及一个过滤器。人们把来自另外三个部分的行为,归功或归咎于模型,这就是为什么用同一个模型的两个产品,感觉却毫不相干。
模型,是每个人都会提到的那个部分,也是你最难改变的那个部分。另外三个,是产品决策,它们在不同服务之间各不相同,也解释了人们注意到的大部分东西。
模型提供语言
它把一串文字,转化成一个大概率的续写。它在请求之间没有记忆,对你也没有任何概念。一切感觉像是连续性的东西,都是由下面这些部分围绕着它添加上去的,而模型本身,在每一次请求中都是一样的。
隐藏指令设定了方式
一段文字,被放在你第一条消息之前:这个助手是谁,该有多谨慎,回答该有多长。你从未见过它,它却适用于每一次请求。当同一个模型上的两个服务感觉不一样时,这段文字,是最有可能的原因。
对话记忆提供了连续性
更早的消息,会随着每一个新请求被重新发送一遍,因为模型无法记住它们。能容纳的量有一个上限,当对话超过这个上限时,最早的部分就会被丢弃。这个助手,随后会像从没读过开头一样回答,这读起来像是粗心,实际上是一个上限。
过滤器决定了什么能留下来
一个分类器,能在模型看到你的问题之前,对它采取行动,也能在你看到回答之前,对回答采取行动。这个部分,独立于模型,能在一个宽松的模型上很严格,也能在一个谨慎的模型上不存在。这两层,是独立设置的,从一个去假设另一个,正是大多数产品对比出错的地方。
粘贴问题之前
哪个部分在不同产品之间变化最大?
隐藏指令和过滤器。这两个,改动起来都很廉价,也都不会被公开,所以它们造成了人们感受到的大部分差异。
我能看到隐藏指令吗?
几乎不能。你能测量它的效果:要求一个一句话的回答,看看这个长度指令是否会胜过你的要求。
一个更大的模型,能修复一个糟糕的回答吗?
只有当这个回答,是被知识所限制时才行。当它是被指令或过滤器所限制时,一个更大的模型,只会产出语法更好、但形状相同的回答。
问一个问题,试着判断这四个部分里,是哪一个塑造了这个回答。
打开无审查聊天机器人