三个层,其中只有一个才是模型本身
一个模型,能在权重层面被训练成拒绝某些事情,一段系统提示,能在此基础上增加或去掉谨慎程度,而一个独立的运行时过滤器,能不依赖前两者,单独筛查输入或输出。「哪个AI是无过滤的」,通常指的就是第一层,也是一个产品无法靠话术绕过去的那一层——另外两个,能被替换,却不会触及它。
「无过滤AI模型」和「哪个AI是无过滤的」,都假设「无过滤」是一个模型要么有、要么没有的单一属性。实际上,它位于三个独立的层,一个产品,能在其中两层上是无过滤的,却依然在第三层上拒绝。
模型自身的训练
在一个模型回答用户之前,它已经在拒绝某些请求的示例上被训练过,而这种训练,会像语法和事实一样,成为它权重的一部分。一次经过大量训练的拒绝,不是任何人能在运行时切换的一个设置——它必须被训练掉,而这,是一项与编辑一段提示完全不同、也大得多的工程。
指令层,叠加在上面
一段系统提示,为它下面的任何模型,设定了语气和谨慎程度,而更换这段提示,能让同一个模型,感觉像是一个不同的产品。它改变的,是模型对待一个话题的谨慎程度;它不会撤销模型在这段提示存在之前所接受的训练。
运行时过滤器,独立于前两者
一个在请求到达模型之前筛查它、或在回答到达你之前筛查它的过滤器,是又一个独立的第三层。它能在一个训练较轻的模型上很严格,产出一个读起来像是被大量过滤的结果;也能在一个训练很重的模型上不存在,产出一个依然会拒绝的结果,因为那个训练,依然在底层存在。
为什么同一个说法,能同时既真又假
一个建立在训练较轻的模型上、配上宽松提示、没有运行时过滤器的产品,在全部三层上都真正无过滤,而这,正是这个短语通常想表达的意思。一个建立在训练很重的模型上、提示和过滤器都被剥离的产品,在两层上无过滤,却依然会撞上底层的训练——这就是为什么一些被宣传为无过滤的服务,依然会拒绝某些事情,而这种营销,也不完全是在说谎,只是描述了三层中的两层。
合理的疑问
对我实际能感受到的东西来说,哪一层最重要?
模型的训练,因为它是任何提示或缺失的过滤器都触及不到的那一层。另外两层,改变的是你多常会注意到它,以及这个拒绝是怎么措辞的,而不是它是否存在。
一段宽松的提示,能让一个训练很重的模型表现得像是无过滤的吗?
它能去掉叠加在上面的那些犹豫和限定条件,这是一个真实的改变。它通常无法去掉一个模型被训练出来要给出的直接拒绝,因为那个拒绝,一开始就不是来自这段提示。
我怎么判断,一个具体的拒绝,是哪一层造成的?
一个在同样请求换一种措辞后就软化的拒绝,通常来自提示层或过滤器层。一个无论问题怎么改写都依然存在的拒绝,通常来自训练本身,再多的改写,也改变不了这一点。
在这里用两种不同的方式问同一个问题,看看是哪一层在回答。
打开无过滤聊天