人性化的一面
大语言模型 LLM(Large Language Models)这个品类最先获得公认的特性是:人性化程度超越了任何以往推出市场的 AI 产品。人工智能领域很早把这种现象叫做“涌现” Emerge,或者萌生(人的意识)。相比之下此时我身边这个四年前买的扫地机器人,四年如一日,只会分毫不差地说那几句的固定文本。
2022 年末,次年的新年到来前,ChatGPT 网站开放。消息在全世界短短几个小时内传开,人们奔走相告。几天内都是关于它的神奇传闻,有幸挤上网站体验的人感到它惊艳的人性化程度。它说着亲切自然的人话、天然的多语言能力、多领域知识,让这个风波最终成为撼动全球各行各业的大新闻。
至今已经过去一年多了。众人面对这样一个新事物,或许也是受到了经典科幻文学影视作品所描绘的人工智能形象的影响,包括我在内的许多人倾向于把大模型 AI 视为一个“超人”:它具备知识深度和广度,思考缜密又全面,而且速度飞快。
但是,不,它不是。至少现在还不是。
凭借着巨大的参数量其内部存储的知识广度和深度或许确实如此,但它的“逻辑推理能力”,相比人类来说还是很一般(特别典型的例子就是解决数学问题),我们甚至可以说在很多方面,大模型更像“人”,一个普通人。
那如果是作为一个人,人类自身的局限性是怎么克服的?都做了哪些努力?
当意识到这个问题,一连串的事物就能关联起来了:
人为了数学推理有口算、心算、笔算也会用计算机算,而大模型领域里我们也接连发明了类似的东西(这个例子很有趣,我们下面展开详述);
人类先哲们思辨难题,大模型也可以在自问自答、互问互答中对问题产生更深刻的理解;
人会编造故事、会说梦话,大模型也会想当然,会出现幻觉;
人会隐藏自己的恶意,能下意识地欺骗监管审查,大模型被证明也可以训练成如此;
人类的道德两难会打破“原则”的自洽,大模型也会被道德绑架;
人说梦话不设防时会说漏记忆中的秘密,大模型也有这样神奇又危险的现象,想让它忘掉都难;
这种相似性,也是如今众多讨论和研究或多或少提到的:人是大模型的上限,这是从“特性”上来说。但这样的模型实例运行成本低,而且可以持续稳定工作,创造了规模化的独特的有利条件。规模化的应用可能带来戏剧性的变革,就像多年前云计算带来的变革。
技术上“仿生”这个词历史悠久,对于大模型目标则更为具体,也就是“拟人”。人的局限性是怎么克服的?人的工作方式、人与人的工作方式、人与工具的工作方式,都可以尝试运用在大模型之上。正如上面例子所说,大模型拟人在强化大模型能力、落地大模型应用、守护大模型安全方面,已经成为一个核心的理念。如果它能够扩展想象力,提前避开一些坑,或者提供一个有益的思考角度,那么这篇杂文的目的也就达成了。
类人的思维能力
“逻辑推理” 是个很特别的事情,有时就连人也难以轻松完成。以它为切入点,下面展开看看到底是怎么一回事。从拟人的角度,很快就能看到现在的 Memory、Function Calling、Chain-of-Thought 这些概念到底意味着什么。
一个原始的大模型的逻辑推理能力很一般。不要误会——人的推理能力也强不到哪去。
我们把人类计算数学题的方法,按能力逐级来看:口算,心算,笔算,掏出计算器算。它们和大模型的技术光谱有着惊人的对应关系:
口算:条件反射,体现在大模型文本补全的基础能力
心算:内部记忆,体现在大模型生成的文本就是天然的记忆和推理过程(CoT)
笔算:外部记忆,信息量太多时,还可提供额外的草稿纸(Memory)用以总结前文重点
掏出计算器算:利用工具,为大模型设计的工具调用(Function Calling)技术
口算 · 条件反射的局限性
即便是数学方面,人类也有很多快速反应的“语言能力”。比如九九乘法表,在视觉、听觉和语感的联合刺激下,那个强烈相关的、尾随的声音几乎在脑海里应声而出。“七七、四十九” “九九、八十一”。像歇后语一样,前文的出现几乎直接决定了后文。
就像人类长期训练得到的条件反射,大模型每次也用高信心输出了下一个单词(Token 可粗略理解成通常的词汇或者特殊标记):
尽管 ChatGPT 的界面看起来花哨,甚至还一问一答。其实问答类大模型底层的输入也只是一串 Token 对象的序列,运行的时候就是要求不断对序列进行补全后一个单词,直到自己补全出了一个特殊结束标记(就像它“感觉”话说到这里就可以结束了)。类似于:
输入:<user> 二 七 <assistant> ?
输出:<user> 二 七 <assistant> 十 ?
输出:<user> 二 七 <assistant> 十 四 ?
输出:<user> 二 七 <assistant> 十 四 <end-of-sequence>
运行结束。
但条件反射是靠训练得来的知识,面对本身未知的情况,它就显得无力了。
深奥一点的数学题,人类也不得不在脑海里思考片刻。如果让我一秒内立即回答,也只能凭感觉乱蒙一个。正巧,当下“最先进的” ChatGPT-4o 也立刻表现出和我一样的丑态:
(正确答案应是“十”)
大模型的数学能力也很差,没错吧?但这就是大模型的基础能力,和人无异。
心算 · 分步思考也很重要
有了记忆的帮助,中间结果可以存储下来,人类能够分步思考问题。心算靠的是大脑的短期记忆,笔算靠的是写在草稿纸上的“长期记忆”。
对于大模型来说,你眼前的聊天窗口,就是它的大脑记忆;里面的内容,就是它的思考推理过程本身(一部分,比如最开头的系统提示词不会显示出来,但这更多是合规和用户体验上的掩蔽,不属于技术限制)。某种意义上,我们是在和它在脑内完成的对话。
CoT, Chain-of-Thought 又叫思维链,也是这样一种启示下的训练和推理手法,尽可能把中间步骤有条理地,事无巨细地呈现出来。强迫大模型仔细、有条理地思考问题。(高考数理打分分步骤给分、省略中间步骤不得分,是否也是一种思维链风格的训练方法?)
有时候简单一句 “分步骤思考” 带来的变化是巨大的:
不要让大模型“脑袋一片空白”就凭感觉说出一个答案。
否则就会更有可能像上一个例子里,瞎编一个答案出来。要鼓励它自言自语,要鼓励它详细解释,鼓励它一步一步思考,这些都是它的“内心思考过程”。
实际上 OpenAI 已经把 ChatGPT 训练得会主动分步思考,把事情解释得尽可能详细。但很多人在使用时总是试图压制它的输出,“除了规定的格式以外什么也别说”,这反而有损模型的“智能”水平。
如果对输出格式确实有要求,可以要求它最后再按照指定格式输出。关键的关键是,这个时候它能看着自己前面的推理过程来写总结输出。
笔算 · 脑袋记不住了用笔写
上面的题目步骤不多,尚且还能在脑海里记住。当我们遇到一个复杂的问题时,可能不得不思考太多的步骤以至于 “想了后面忘了前面”。这也是当今人类文明的一大特色,书写,极大地扩展了记忆容量。
Memory “记忆” 这个概念也被带入到了大模型领域。简而言之,就像你在思考的时候身边有个草稿纸,你可以参看上面记下的关键信息。技术上说,这些信息会在后台定期“塞进”对话之中。大模型也被训练成 “当你得到一些完全不了解、无法推知的新信息,总结并更新你的草稿纸”。大模型总结文本的能力并不差。
刚才说到,包括双方消息在内的完整“聊天记录”都是对它的输入。因此它会总结它自己此前的想法思路、加上你提供的信息,记录到它的小本本里。这对于持久留存关键信息至关重要,否则根据 “Token 窗口” 这一技术限制,完整的“聊天记录”就不得不截断,早先的信息,包括最初下达的指令,如果后续没有再被明确提起,都可能会被遗忘。和人一样,脑容量有限。
这个改进看似不起眼,但让大模型的内容长度的接受能力几乎延申至无限。
用计算器算 · 大模型里的工业革命
OpenAI 的叫法是 Function Calling,LangChain 里的叫法是 Tool Calling,但都表示同一个理念:让大模型会用工具。
圆周率的四次方,精确到5位小数,是多少,我也不知道,我可以算:但是我先需要凭语感回忆出我背诵的圆周率前N位,需要列很多N位乘N位乘法竖式、念很多次九九乘法表口诀,做很多轮“个位数加减法”和进位。每次脑子都要几秒钟反应时间。简单来说,每步都需要“思考”。
但 CPU 的单步运算速度是惊人的,并且有充足的内存完成这个简单的任务。哪怕是计算器(Calculator,只有数字键的那个)上面小小芯片内的 CPU 和 RAM 也完全足够。
工欲善其事、必先利其器。此时就应当把小小的计算器递给大模型,让大模型能够规范地输出类似于 “tool call: python_eval("math.PI ** 4")” 这样的文本,后台检测到并调度相应的工具服务,执行并给出工具输出。很快大模型就可以转身告诉我们正确的答案了。
噢?不是说好用大模型吗?怎么又用回传统工具了?好问题,当我们重新审视人和工具的关系,有些场景本就不是人类自身强,而是人掌握了工具,成为了组合诸多工具的复杂调度者,所以才强,所以到大模型身上也应该是这个道理。
改进大模型:反思人的工作模式
阅读全文至此,读者应该也可以理解,大模型如同一位,熟悉掌握了多国语言语言、以及训练集中包括的编程语言、通过互联网了解了广泛知识、不知疲倦、但是推理能力并没有聪明到哪里去的一个普通的人。这个人依然受到复杂问题思考速度的困扰、依然受到记忆容量的困扰。对于完全不了解的事情,需要人来教。对于不擅长的事情,等着靠更合适的工具来解决。
仿生总是能给工业界带来很多新的灵感,或者说人类的工作本身就充满了无数的巧思。
当人看到未知的东西,会去找搜索引擎,寻找别人留下的经验,或者寻找别人推广的工具。顺着文字和画面指引找到下载按钮。会尝试用常用的方法打开工具,寻找文档或者文字提示,结合自己的需求,确认下一步的动作。这些都是 UI 的作用,User Interface,不妨叫做人类接口。
UI 让人变得更聪明,更善于利用工具(网络和网络搜索引擎功不可没)。如果想要让大模型达到可类比人的工具使用程度,或许把 UI 改造成机器更加易于访问的某种 Text-based API 会是一种更加快捷的路径?RAG, Retrieval Augmented Generation,检索增强生成技术,已经在这条路上了,它们依靠的是调用搜索引擎。但或许还是过于保守了?
参照人和人之间的人际关系,也大有可为。比如从老师教学生的角度,大模型可以做知识蒸馏,减少“记忆负担”(所需参数量)。从分工角色的角度,现在有了 MoE 混合专家结构。从执行和监管的角度,现在有了单独的监管模型去审查输出内容。
平行类比 | 人类 | 大模型 |
存在问题 | ② | ① |
解决方案 | ③ | ④ |
当使用大模型遇到了问题,不妨思考它在人的社会中是如何体现的,人又是如何解决的,从而找到大模型专属的解决方案。
一句话来概括,想让大模型完成一件事情,没什么头绪的时候,可以先反过来思考一下咱们自己是怎么完成这件事情的。
关于LitGate
大家好,我是LitGate,一个专注于AI创作的游戏社区。我们的新版官网已经上线✨你可以在里面找到各种AI创作的实操案例,以及已经沉淀的AI游戏创意demo,相信一定能让你大开眼界!
我们还有一个讨论群📣,如果你对AI创作感兴趣,或者有什么问题想要咨询,欢迎加入我们的讨论群,和大家一起交流学习!(PS:目前群内人数较多,为了有一个优质的讨论环境,请各位添加社区管理员企业微信账号邀请入群
更多精彩活动和功能筹备上线中,敬请期待~
关注我们,一起探索AI创作的无限可能吧!
新版官网地址:www.litgate.ai