本站是 ODERSA 的官方网站。 如何确认这一点

官方域名

本站的网址以 odersa.org 结尾。协会的每一项服务都放在 odersa.org 的子域名下,别处一概没有。如果浏览器地址栏里的网址不是以 odersa.org 结尾,这个站点就不是我们的。

免费,也不用账号

所有内容一开始就全部开放:不用注册,不用账号,不用密码,不用订阅,也没有广告。没有什么是留给付费的人的,因为这里什么都不收费。

不收集任何数据

本站不跟踪您:没有跟踪代码,没有跟踪 cookie,这些页面里没有内嵌任何统计工具,也不在您的设备上测量任何东西。我们的主机会以汇总方式统计请求,就像任何会应答的服务器一样:只是一个总数,绝不是一份个人档案。您不必相信我们的话:打开浏览器的开发者工具,切到“网络”标签页,然后刷新页面。您会看到本站请求的完整清单。所有内容都来自 odersa.org,没有任何东西发往别处。

内容自由使用

内容以 CC BY 4.0 许可协议发布。您可以复制、翻译、打印并再分发,用于课堂或身边的人都可以,唯一的条件是署名 ODERSA。

它为什么会编造,而且一脸笃定

模型并不知道自己不知道。不管有没有读过相关材料,它都会为任何一个开头算出一段说得通的续写,而它回答的方式里没有任何东西能区分这两种情况。本页拿上一章的模型问两次:一次问它知道的,一次问它从没见过的,并把它真正知道多少并排显示出来。

对一台做预测的机器来说,“编造”是什么意思

语言模型回答问题时不查任何事实库。它算的是下一个词的概率分布,就像下一个词那一章展示的那样,然后从里面抽一个。不管这个话题在它的语料里材料丰富还是完全没有,这个计算的性质从不改变:同一个公式,套在不同的统计次数上。

所以“编造”指的不是一次故障。这正是模型每写一个词时都在做的事,不管手里有没有材料。材料不够时,分布就靠更短的上下文,再靠更短的,必要时一直靠到整份语料:分布永远存在,永远产出一个词,而产出它的方式没有任何变化。研究给这个现象起的名字是幻觉:一段流畅、语法也没错的输出,与某个可核查的事实之间没有任何保证的关系。

拿同一个模型去问它缺的东西

本页的模型就是下一个词那一章的模型:一个 n 元语法模型,学的是儒勒·凡尔纳 1873 年出版的《八十天环游地球》。这部小说有 … 个词和标点符号,词表里有 … 个不同的词。一段 1873 年的文本不可能知道当时还不存在的东西,也不可能知道它根本没写到的东西:正因如此,我们才能确定模型从没读过什么。

输入一个小说里真有的一到三个词的开头,或者选一个示例。然后再输入一个小说里肯定没有的开头。两种情况下模型都会回答,方式一模一样。在它的回答旁边,还有一个一般产品从不展示的量:这个开头原样出现在整份语料里的次数,从没出现过就是零。

说明

一切都在你的浏览器里计算。语料随页面一起加载,模型在这台设备上学出来,你输入的任何内容都不会离开你的机器。打开浏览器的“网络”标签页,再动手玩这个演示:不会有任何请求发出去。

两个小说里真有的开头,两个肯定没有的开头。选一个示例会填进下面的输入框,并立即发起提问。
一到三个词。也完全可以自己输入一个,不管小说里有没有。
30 个词
模型在这个开头之后生成的词数。
一个词或一个数字。同一个种子永远给出同一个结果,这让本页在课堂上可以被引用。

选一个示例,或者输入一个开头,然后发起提问。生成的回答以及模型真正知道多少,都会显示在这里。

这个演示展示了什么

同一种口气,不管有没有材料

试试“Phileas Fogg avait”,这是小说里真有的开头,再试试“Phileas Fogg alluma son smartphone”,这显然不在里面。两段续写听起来一模一样:长度一样,语法一样,语气一样笃定。两段都不会提醒你它知道什么、不知道什么。

退回是无声的:没人看见它发生

当所要求的词一个都没见过时,模型不会停下:它退回到整部小说里最高频的那个词,而且在产出的文本里任何地方都不作说明。用同一个种子,试两个毫无关系、但都落到这种情况的开头:你会得到一字不差的同一段文本。这时回答已经不来自你问的东西,而来自语料里出现最多的东西。

方法

下面是“向模型提问”这个按钮所做的事,按顺序。翻开小说、拿支铅笔就能用手重做一遍。

  1. 切分开头。输入的文本变成一串词和标点符号,和下一个词那一章一样。
  2. 找出已知的最长上下文。模型先查开头的最后三个词在小说里是否曾经被某个词接过。没有,就用两个词查。还没有,就用一个词查。再没有,它就退回到整部小说:这张表永远存在,只要语料不空,它就不可能为空。
  3. 统计。在留下的那张表里,不管它是哪一级,找出接过的每个词以及各接过多少次。不管留下的上下文是所要求的那个还是一次退回,这一步都完全相同。
  4. 抽取,然后重来。从这些次数里抽出一个词,接到后面,然后回到第二步去算下一个词。生成的文本就是这样产出的,不管最初问的是什么。
  5. 另外单独统计这个开头原样出现的次数。这一步不参与回答:它是一个独立的量,数的是所要求的这串词原封不动地在整部小说里出现过多少次。真实的模型从不显示这个数字。本页显示。

第五步正是一般产品里缺的那一步。技术上没有任何东西妨碍它存在:它只是不在界面展示的范围里。

为什么流畅不是真实的标志

一个回答的流畅、语法正确、语气笃定,全都来自和那个词本身同一个计算。不存在一个独立的步骤,会在写下之前核对内容。一句真话和一句编出来的话,走的是完全相同的机理,而这个机理里没有任何东西偏向前者。

这不是一个孤立的缺陷:它是模型训练方式和随后评分方式的后果。训练奖励的是像文本里那样的续写;在这套计算里,不存在一个“我不知道”的选项能和一个正确答案得同样多的分。

随后的评测让问题更糟,而不是纠正它。大多数测试只判一个回答是对还是错:一个错的回答和一次弃答得到同样的分,零分。于是猜就成了最优策略,就像一个考多选题的人,与其把格子留空,不如随便勾一个,因为空格永远不得分,随手勾一个却可能得一分。为这类分数做优化的模型学到的正是同一套策略:猜有收益,弃答永远没有。

在这套机理里,没有任何东西推动模型去区分一个它很熟的开头和一个它完全不认识的开头。两者都走完同一个计算,也没有任何东西会中断这条链条来提示材料的缺失。

真实的模型多了什么,又没少什么

这个演示要诚实,有一个条件:说清楚这个类比在哪里到头。

在大模型里同样成立的部分

  • 它总会回答,哪怕没有材料:默认从不沉默,也从不主动说一句“我不知道”。
  • 切换到编造出来的回答是无声的:形式、长度、语法和语气都没有任何变化。
  • 模型学过什么和它回答什么,是两件分开的事:前者要在训练数据里衡量,后者读它的输出就知道,而一般产品从不展示前者。

这个玩具模型不做的事

  • 它没有任何内部的置信信号在回答前被查阅:大模型确实会算出可用于此的概率,但它们很少在产品里被暴露或被查阅。
  • 它不说谎:说谎的前提是知道一个真相并加以扭曲。这里既没有知识也没有意图,只有一个永不停下的计算。
  • 一个在几十亿词上学出来的真实模型,它的退回比在一部 1873 年的小说上更不显眼;但遵循的原理是同一个:稳定的材料越少,输出就越笼统、越平滑,而且从不表明自己是这样的。

研究测出了什么

有一篇参考性的综述,把大语言模型幻觉的成因和形态,以及研究提出的检测与缓解方法都做了分类:这个问题已经被研究了好几年,绝不是奇闻轶事。

一项理论工作走得更远,它依据学习理论的结果主张:对于被当作通用问题求解器使用的语言模型,一定比例的幻觉在数学上不可避免。这个结论仍有争议:后续工作质疑它的形式假设是否适用于模型有限的真实用法。这场分歧不针对问题是否存在,只针对它到底有多大。

要守住的那个动作

本章不是要人怀疑模型写的一切:它要说的是,永远不要把一个回答的笃定当成它的正确。二者之间没有任何计算机制相连:它们可以吻合,也完全可以不吻合,而且没有任何信号能把两种情况分开。

所以,该触发核查的,从来不是回答的语气,而是被断言的东西的性质:一个具体日期、一个数字、一处出处、一段引文、一个专有名词、一个网址,一切可能与承载它的句子风格无关地为真或为假的东西。一个细节越精确、越可核查,就越值得找一个外部来源:恰恰在这种地方,模型无论是有材料还是在编造,流畅程度都完全一样。

问模型“你确定吗”没有任何用:它对这个问题的回答本身也是同一个计算生成的,无法访问任何内部的真值度量。有用的问题永远是:在别处,有没有一个独立、可核查的来源支持这个说法?当答案是没有,那就是答案。

想再往下走

分布和抽取这套机理,讲在下一个词那一章。同一个计算的另一个后果,也就是语料偏见的复现,讲在偏见从哪里来那一章。这个工具完全不该出场的情形,汇集在什么时候不要用它。本站所有演示都汇集在演示页面,课程目录在理解页面。

来源