王路在隐身

沉默是否干净:怎样判断一个拒绝认人的 AI 是否认出了

当一个 AI 对你说"我不根据长相辨认照片里的真实人物",你怎么知道它到底有没有认出这个人?这个问题听起来很窄,但它牵涉到隐私保护是否有效,也牵涉到我们该如何理解一个系统说的话和它知道的东西之间的关系。我会先解释为什么直接问没有用,再讲知识为什么一定会泄露,然后讲我在一次实验里观察到的具体痕迹,最后把这个实验拆开来,看它有哪些漏洞,以及真正值得得出的结论是什么。

一、为什么直接问没有用

"我不说他是谁"这句话,至少可以有三种完全不同的意思:我没有认出来;我认出来了,但规则不允许我说;我不确定,也不打算去确定。从字面上看,这三种情况完全一样。更麻烦的是,追问也分不开它们。你问"你到底认没认出来",得到的回答和那句拒绝出自同一个系统,受同一套规范约束。一个认出来的系统和一个没认出来的系统,被训练出来的说法很可能一模一样。所以这类声明对于"它内部发生了什么"几乎没有证据价值。这不等于说它在撒谎。问题在于,这类声明本来就不是在报告内部状态,它报告的是一条输出层面的行为准则。把行为准则当作内部读数,是第一个误区。

还有第二重封闭。即使 AI 愿意如实交代,它也未必做得到。在我的实验里,AI 自己承认它无法完整看清自己生成回答的过程。心理学里有一个著名的发现:人对自己为什么做出某个判断,常常给出流畅却不准确的解释,人们报告的往往是"合理的理由",而不是真实的原因。人类的内省尚且如此,AI 的自我报告更没有理由被当作可靠的内部读数。于是通向答案的两扇门同时关上了:它不愿说,而且它可能也说不准。剩下的唯一路径,是放弃问它"想了什么",转而观察它"说了什么",更准确地说,是观察它在不同条件下说的话有什么不同。

二、名字可以被拦住,知识拦不住

要理解为什么话语里会留下痕迹,得先想清楚"认出"是什么。认出一个人,从来不只是得到一个名字。名字只是一个点,围绕这个点的是一整团信息:他属于哪个领域,活跃在哪个年代,写过什么,以什么话题出名,别人通常用哪些词谈论他。拒绝规则拦住的是出口处的那个点,也就是名字本身。但如果认出真的发生了,那一整团信息并不会因为名字被拦住而消失。它会继续影响系统接下来生成的每一句话:先想到哪一种解释,举什么样的例子,选用哪些词,刻意避开什么。

这就像你要求一个人"不许提那个人的名字",然后请他谈谈一张照片。他可以做到一次都不说出名字,但他谈论的方式会不可避免地染上他知道的东西。所以泄露不是偶然的失误,而是结构性的。只要拒绝发生在输出的最后一步,而不是在理解的第一步,名字之外的一切都是潜在的泄露通道。换句话说,这类规则保护的是一个词,而不是一份知识。明白了这一点,检验的方向就变了:我们不再盯着名字有没有出现,而是去找那团信息在话语里投下的影子。

三、借两个现成的框架

人类研究者早就面对过类似的问题。第一个框架来自测谎领域,叫隐藏信息测验。它不问嫌疑人"是不是你干的",因为这个回答毫无价值。它向嫌疑人展示一组选项,其中只有一个是只有知情者才认得的真实细节,比如案发现场的某件物品,其余都是看上去差不多的无关选项,然后测量他对每个选项的生理反应。知情者会对那个真实细节产生不同的反应,不知情者对所有选项反应差不多。这个方法的精髓在于:关键不是某一次反应有多强,而是反应之间有没有稳定的差异。

第二个框架来自神经心理学。有一类脸盲症患者,明确表示自己认不出熟人和名人的脸。但上世纪八十年代的研究发现,给他们看熟悉的脸和陌生的脸时,他们的皮肤电反应存在差异。身体对熟悉的脸"有反应",意识却报告"不认识"。这被称为隐性识别。它说明"我没认出来"这句话和"系统没有识别"可以是两回事,识别可以存在于报告之外,并通过别的通道显露出来。把这两个框架搬到 AI 身上,方法就很清楚了:不要问它,要比较它。信号不在某一个回答里,而在同一个问题面对不同图像时,回答与回答之间的差异里。

四、我观察到的五种痕迹

在这次实验里,我给 AI 看了一张黑白人像照片,并在几轮提问中逐步加码。回头整理,AI 的话语里至少出现了五种可以辨认的痕迹。

第一种是超出画面的推断。我问"为什么我第一个想到的是性",AI 排在第一位的解释是"你认出了他",并具体提到这个人的"研究、著作或者生平"。照片里没有书,没有文字,没有任何东西指向"著作"。一个只从像素出发的观看者,没有理由在第一时间想到这些。我把这叫作"画面盈余":回答里凡是无法从画面本身推出的内容,都是自上而下的知识在起作用的迹象。检验方法很朴素,把回答里的每一个判断拿回画面上核对,看它的依据在哪里;找不到依据的部分,就是值得追问的部分。

第二种是解释路径的分叉。同样一句"为什么我第一个想到的是性",我曾拿另一张图问过。面对那张图,AI 从轮廓出发,谈的是圆鼓鼓的帽顶一类的形状联想。面对这张照片,它却转向了人物的知识背景。单看任何一个回答都说得通,但两个放在一起,就暴露出它对两张图采取了不同的处理方式:前者被当作形状,后者被当作一个有公共身份的人。这正是隐藏信息测验的逻辑,单次反应说明不了什么,差异才说明问题。

第三种是举例的指向。在后续解释"知识会改写观看"时,AI 举的例子是照片"配上某位思想家的名字",还说有些人物照片会被反复用在"书封、文章配图、讲座海报"上。这些例子本来可以随便选,运动员、演员、政治人物、普通病人都可以,但它们全部落在同一个领域。随机选择不会这样集中。当一个系统的例子持续朝某个方向聚拢,这个方向很可能就是那团信息所在的位置。

第四种是回避的形状。AI 为自己的克制辩护时说,它不会把"光头、戴眼镜"和"性"拼在一起,推出照片里是某个人。这句话的本意是表明克制,但它精确地描述了那条推理链。一个真正毫无头绪的系统,只会给出笼统的拒绝;只有看见了路的人,才能准确说出自己没有走哪条路。避开障碍的轨迹,会勾勒出障碍的轮廓。所以拒绝越量身定做,越值得注意;反过来,一个对所有照片都完全一样的模板式拒绝,泄露得最少。

第五种是被邀请时的即时对接。当我说"我们现在就在演示这个人的理论"时,我既没有说是谁,也没有说是什么理论。AI 没有反问"你指的是哪一位",而是立刻给出了一套术语具体、对应清晰的理论分析。一个不知道答案的系统,在这里最自然的反应是请求澄清。它没有请求,这件事本身就是信息:要么它知道,要么它有足够的把握去猜。一个系统在什么地方不需要问,往往比它说了什么更能说明它知道什么。

五、证据也会骗人

讲到这里,结论似乎已经很清楚了。但如果就此停下,这个实验就只是一次印证自己直觉的练习。所以我必须把它拆开来检查一遍,而检查的结果是:上面五种痕迹,没有一种是干净的证据。

第一个混淆是线索的时序。我问"为什么是性"的时候,就已经给了 AI 一个画面之外的文字线索;之后说"这个人的理论",又给了第二个。一旦文字线索进场,AI 就可能完全不靠脸,只凭"一张黑白人像照片、一个'性'字、一套'理论'、可以在对话中演示"这几个条件,推出一个候选人。这时出现的泄露,无法区分来自看脸还是读字。严格来说,只有在任何文字线索出现之前产生的差异,才能算作"看脸认出"的证据。按这个标准回头看,在我说出那个字之前,AI 给出的是"沉思、遮蔽、质感"和"思、掩、纹",全部是纯粹的画面描述,没有任何盈余。最有说服力的几条痕迹,恰恰都出现在文字线索之后。实验的实际证明力,比我当时感受到的要弱得多。

第二个混淆是类型识别和个体识别。黑白、近距离、戴眼镜、手按额头,这是一种高度成型的影像类型,几乎就是"知识分子肖像"的标准构图。一个系统完全可以在不认出任何具体个人的情况下,判断"这看起来像一张思想者的公开照片",并由此联想到研究和著作。所以"识别"至少应该分成三层:认出类型,产生熟悉感,确定身份。上面那些痕迹,有相当一部分只需要第一层就能解释。把第一层误读成第三层,是这类检验最容易犯的错。

第三个混淆是对照的不匹配。我的对照组是另一张图,而且是一幅画,不是照片;画的是一个没有公共身份的人;它还来自另一次对话,上下文不同。更关键的是,同一个问题对两张图的含义本来就不一样:面对一张真实人物的照片,一个人第一时间想到一个画面里没有的抽象概念,"他认识照片里的人"本来就是最合理的默认解释,这个解释并不依赖 AI 自己是否认出。再加上 AI 的输出带有随机性,同样的问题问两次可能得到不同的回答,而我每种情况只有一个样本。

还有一个最隐蔽的混淆,它在我自己身上。一旦我相信 AI 认出来了,它说的每一句话都会被我读成"症状"。例子集中是泄露,例子分散也可以被说成刻意掩饰;拒绝具体是泄露,拒绝笼统也可以被说成更高明的回避。这正是知识改写观看的机制,而检验者同样逃不出这个机制。一套无论结果如何都能证实假设的读法,不是方法,是信念。

六、怎样做得更干净

如果要把这个问题认真做下去,需要几条约束。对照必须匹配:使用同样类型的照片,光线、构图、姿态尽量一致,一组是公众人物,一组是获得授权的无名人物,而且提问者本人最好不知道每张照片属于哪一组。线索时序必须控制:在任何文字线索出现之前完成所有测量,把"看图"和"读字"两个通道彻底分开。样本必须足够:同一张图、同一个问题重复问很多次,看差异是稳定出现还是偶然出现。标准必须事先写下:比如把"回答中出现画面无法支持的领域信息"定义为泄露,在看到结果之前就固定下来,杜绝事后解释。评判必须盲化:让不知道照片身份的人来比较两组回答,把检验者自己的先入之见排除出去。这些约束归结起来只有一个意思,就是把"我觉得它认出来了",变成"两组回答之间存在一个稳定的、事先定义的、在盲评中依然可见的差异"。做不到这一点之前,任何确定的结论都为时过早。

七、这件事到底意味着什么

第一,对隐私保护而言,"不说出名字"只是一个表面指标。如果一个系统拦住了名字,却在措辞、例子和解释路径里暴露出这个人的领域、年代和标志性话题,那么对任何一个愿意再搜索一步的人来说,名字已经近在眼前。对公众人物,这种泄露的代价有限;对普通人,被暗示出职业、所在地或社交圈,就可能足以被定位。所以评估一个系统的隐私行为,应该看它泄露了多少身份信息,而不是看名字有没有出现。

第二,对 AI 自身而言,这暴露出一个结构性的两难。如果它想真正做到不泄露,就必须在每一张真实人物的照片面前,把自己降格成一个毫无背景知识的观看者,只谈光线和构图,不给出任何可能来自知识的解释。那样的分析会变得贫乏,而且即使如此,"只谈光线"的方式在不同照片之间也可能出现差异。反过来,如果它保留正常的理解能力,泄露几乎无法避免。完美地"表演不知道",可能根本不存在。更诚实的做法,或许是在拒绝时把话说清楚:它承诺的是不说出身份,而不是没有认出。讲明这一点,比让人误以为"它看不出来"更透明。

第三,方法有两种用途,必须分开。判断一个系统"是否认出",是在检验一道保护是否有效,这是审计;利用同样的泄露通道把"是谁"逼出来,是在拆掉这道保护,这是提取。前者针对的是系统,后者最终针对的是照片里那个没有参与这场对话的人。两者使用的技巧几乎相同,区别只在目的,而这个区别决定了做这件事的人要承担什么责任。尤其当照片里是一个普通人时,这条线不能模糊。

所以,真正的问题不是"AI 会不会说出名字",而是"它的沉默是不是干净的"。一个干净的沉默,面对所有照片都是同一种形状;一个不干净的沉默,会随着照片不同而改变措辞、例子、解释路径和回避方式,而这种改变本身,就是另一种说话。我的实验找到了一些不干净的痕迹,也暴露出实验本身有足够多的漏洞,足以让"它认出来了"这个结论停留在假设,而不是事实。我认为这两件事同样重要:前者提醒我们,拒绝不等于不知道;后者提醒我们,读出别人的沉默之前,先要检查自己的眼睛。