老友说:“老马买了1000块大卡,号称要做truth gpt。”
老马这一招也就是为了与“误入歧途”也不听他召唤了的 open AI 唱对台戏而已,但是他未见得明晰这意味着什么。自从 ChatGPT 一炮而红之后,马斯克一面狂推 AI 的飞速进展,以及重申当年自己参与创建和投资 Open AI 的初衷和贡献外,一面与自己当年的创业搭档和小兄弟 Sam Altman 公开互怼,不断质问:Open AI 成为 Closed AI,谁之罪?
关于 GPT 和 truth 的关系,值得细细理论一番。
首先要指出的是,“编造细节”(说假话,胡说八道,张冠李戴,无中生有,etc)应该看成是生成大模型的一个 feature,而不是 bug,所以所谓 Truth GPT 很可能是无的放矢。
事实上,编造细节是一个根本性的、极其重要的 feature,没有它,一切创意和模仿人类智能中最重要的能力(创造才能,抽象能力)就无从谈起。你不能又要LLM辅助创作(写作、绘画、视屏创作等),又要它不越雷池一步。这很难的。这就好比你不能因为电会伤人,就禁止用电。
一个完全是 truth(通俗的话就是 facts)组成的世界,是多么单调、枯燥,甚至悲惨。一切都是冷冰冰的事实,没有小说和诗歌,没有艺术和浪漫,没有人高于动物的天马行空,同时也没有了希望和未来。据《人类简史》,人类精神文明的最大成就(之一)就是人学会了“讲故事” ,虚拟的故事。人类从此有了宗教和哲学,有了组织和动员群体力量的精神武器,从而成为地球霸主。
Having said that,在很多场景中,编造细节和胡说八道是伤人的、甚至致命的,尤其是当它一本正经真假混杂的时候,而这正是 GPT 最为人所诟病的命门(之一)。
人也说谎。白谎之外,还会有意说谎,甚而恶意诬陷。但除了极少数训练有素的特务外,我们大多数人比起LLM一本正经、道貌岸然,说起谎来面不改色心不跳,实在是小巫见大巫。测谎仪之所以技术上有效,也正是因为人类整体还没有堕落到完全失去良心,没有卑鄙到说谎说到自己也信了的那种程度。而LLM不同,LLM无良心(或不良心),它没有任何顾忌,它“说谎”自然谈不是善意或恶意,白谎黑慌,它编造实体细节不过就是因为实体信息没有在它的神经网络的参数中“记住”而已,记住的不过是实体的抽象或影子(本体),而本体在表达的时候需要落地到实体才能圆润丝滑。为了语言模型的生成丝滑,它不得不对本体实行实体化,也就是跟小说家一样为概念编造一个对应的细节。这是无奈之举,也是模型宏观把握世界的需要。其实在人的认知世界里,忘记实体只留下本体的现象也是常见的情形:当我说 “记得是个擅长动物画的画家来到我们学院做了那次演讲”,我忘记了作为实体的这位画家(名字及其它能唯一绑定这个实体的信息),而我记住的则是其本体概念“画家”。一般而言,虽然世界是由无限的实体组成的,但人对于世界的把握总是以有限的本体概念网络试图对世界进行概括、梳理,从而理解这个世界,在这个过程中,实体细节只有足够重要和多次重复才会被我们记住,而更多的实体是以其本体定位记录在我们的脑海里。大模型也是如此。你问模型长江有多长,美国第一届总统是谁,他绝对不会错,但如果你问的是一条小河,你问它一个乌有之乡的总统是谁,它就开始编造答案了,所编造的 tokens 答案就是给定上文中概率分布中大概率出现的候选。这些候选的集合自然形成了相应的本体类型。
老马追求的所谓 truth GPT,往正面说,最好的结果也不过就是找到限制其编造细节的副作用的方法,而不是也不可能禁绝编造。
在NLP乃至人类认知智能的所有任务中,有些任务存在编造的副作用,例如,事实查询和问答、知识教育等。有些任务根本就不存在这个问题,例如辅助写作、机器翻译(原文中的“谎言”不能因为非事实而翻译成事实,因为忠于原文是翻译铁律),有些任务需要在事实和虚夸之间掌握一个度,例如创意广告。如果坚持 GPT 是通用的基础模型,可以帮助完成上述种种任务,老马应该明白,实际上根本就不存在什么 truth GPT。在序列学习中,大模型永远只能记住飘在上面的细节(真实)。无论模型多大,甚至改变设计,它都不可能穷尽大数据序列中表达过的事实(或人为的编造、口误、非事实),它一定会对这些信息做归纳抽象,对于统计上漂移在阈值以下的实体做不同程度的本体化概括,体现在最终的模型表示中。换句话说,模型本身一定是实体(entity)事实和本体(ontology)概念的混杂。这是语言大模型呈现和逼近知识库的基本形态,在现有的框架下不会改变。
这是从大模型的(离线)学习/训练的角度来看。大模型作为训练的结果,那如大海一样混沌的多维向量表示里面涵盖了有限的事实以及更多得多的非事实(事实的抽象),但原则上并不包括没有数据根据的“谎言”(模型自己编造的细节)。编造细节发生在大模型的生成过程(在线推理)中。GPT这样的生成大模型在简单的 next token 预测的生成框架下,不可避免地编造细节,因为语言生成的 token 默认反映的就是细节事实,而不是本体概念。当模型缺乏实体细节的时候(表现为对于反映细节事实的tokens的预测概率很低),模型就会根据模型在此刻的本体指向,去找来(最)接近这个本体(例如 本体为【人】)的实体(例如 实体为【张三】)来充数。张冠李戴的原理不过如此。
从这个原理来看,限制细节编造的副作用并不是无可作为。大模型本身原则上没有内含谎言,但大模型在生成语言的时候,受限于要表达最丝滑的自然语言序列,不得不用实体 tokens 来保障语言的顺畅自然,从而开始“一本正经”地说谎。既然如此,如果刻意以牺牲自然语言生成的自然度为代价,其实是有办法做到避免细节编造的恶果的。简言之,可以坚持一个原则:宁肯不给细节,也不编造细节,因为它所背靠的大模型本来就是如此。
类似“宁肯不给细节,也不编造细节”的原则,在人类社会已经是正人君子所广泛采纳的做人原则了:我也许没有勇气或必要说出真相,但我可以绝不说谎。关于LLM下“宁肯不给细节,也不编造细节”的种种方法,可以再论(很多人都在探索,不会太久一定会有创新或突破),但坚持这个原则并找到合适算法实现以后的生成序列形态是可以想见的。下面给出几个案例,结束这一番自言自语式LLM探究之旅。
(1a)GPT的“一正胡八”(一本正经胡说八道): User: Who was the first woman to walk on the moon? Answer: The first woman to walk on the moon was Sally Ride.
(1b)未来GPT的“宁肯不给细节,也不编造细节”的生成形态: User: Who was the first woman to walk on the moon? Answer: The first woman to walk on the moon was 【Person Name】.
(2a)GPT的“一正胡八”: User: What is the boiling point of water on Mars? Answer: The boiling point of water on Mars is 100 degrees Celsius (212 degrees Fahrenheit)the same as on Earth.
(2b)未来GPT的“宁肯不给细节,也不编造细节”的生成形态: User: What is the boiling point of water on Mars? Answer: The boiling point of water on Mars is 【Number】 degrees Celsius (【Number】 degrees Fahrenheit).
做到这一点,语言大模型也已经仁至义尽了,具体答案可以在语言模型之外去找(例如外挂知识图谱,外挂计算器,等等)。实现上述形态的方案其实有好几种,有内在的也有外在的,本篇点到为止。
《AI浪潮博客目录》