一、BERT与GPT
通常意义下,大模型就是指大语言模型。现在通用的大语言模型起源于google的transformer架构。 Transformer的encoder和decoder,导致两条不同的技术路线,分别诞生了BERT模型和GPT模型(关于二者的分歧和恩怨情仇,我另外讲述)。BERT主要用于翻译,而以ChatGPT为代表的GPT,则用于自然语言处理,并迅速火爆。 我们可以发现,最早出现在我们生活中的“智能”是翻译,中译英,英译中,甚至可以同声传译。这正是得益于BERT等encoder模式为代表的大模型的能力(具体来讲是注意力机制的出现,给翻译带来了质的变化)。 在漫长的岁月里,encoder模式被认为是能带来生产力的模式,而decoder模式的用途不被看好(纯推理,后文是前文的推理结果)。 最终奥特曼从google离开,创建了openAI,并大力出奇迹,把推理模式的语言应用发挥出了智能的效果。当然也得益于大数据(大量语料),和硬件计算能力的提升。
二、智能是一种涌现
大语言模型本质上是一个神经网络(什么是神经网络?我另外讲述,现在先接受),只不过参数量很大。在参数达到100亿(10B以上)时,产生了智能涌现。所谓智能涌现,就是模型的结果超出了一般逻辑代码限定的模式,可以用自然语言跟人类进行沟通。人类宣告进入了智能化时代。
从数学原理而言,大语言模型是用一堆语料来训练一个神经网络,调整其参数,使之能够以推理的形式完成文本补充。它大量学习了人类的词语组合习惯,并能推理出后续词汇出现的概率分布,产生了所谓“智能”的效果。
为什么会产生智能?这种大量语料堆积,由量变引起质变的现象,科学家称为“涌现”。也就是为什么一堆语料可以训练出看起来有模有样的人工智能,个中原因不明,但现象就是如此,可总结出一种自然界的规律。
其实涌现在我们生活中普遍存在。比如生物的进化,一堆基本蛋白质细胞,最终组合出各种不同的生物体。人类的免疫系统,一堆功能各异的细胞,最终组合为功能强大,可以自我修复的免疫系统。还有包括人类社会的发展,比如工业革命、社会变革,都可以理解为涌现。
而智能,就是知识的涌现。
那么情绪,是不是智慧的涌现?烦恼是不是因为拥有太多知识?这会不会意味着,人工智能有一天也会涌现出情绪?
三、大模型的训练、微调、强化学习、推理
大模型的能力差异就在于语料的区别、训练方式的不同。
训练,就是用结构化的语料(需要大量的数据清洗任务)对模型的权重进行调整,使之对我们给定的语料,能够给出符合我们预期的文本补充。比如,我们把QQ上的聊天记录以“问答对”(问:吃饭了么? 答:吃过了)的形式让大模型学习,大模型能够通过调整参数,逐渐“学会”如何补充文本更为合适。比如当它遇到“吃午饭了么?”的问题时候,它就会推导出大概率要回答“吃过了”(如果你的语料只有这么一种回答,对它来说就是最大概率的事情)。
经过初始训练的模型,是一个“生”模型,它能回答泛泛的问题,还不大能为具体领域服务。
微调,就是用领域的数据去激活大模型的能力。微调的过程跟训练的过程是一样的,只不过微调的数据量不需要那么大,而且微调一般是针对性的领域问题。经过微调的模型,就能用于回答领域的知识。
经过微调的模型虽然能够回答领域问题,但还不大能处理伦理道德,或者人类偏好的场景。比如对问题的回答可能成为引导犯罪或自杀的工具。
既然是为人类服务,大模型就需要在人类正常道德水平线上。所以“强化学习”就是一种对大模型的驯化,让它不要过渡的依据材料自我发挥,而是植入人类的偏好。
强化学习的材料稍微不同于训练和微调,它需要一种奖惩机制,来告诉大模型什么是对的,什么是错的。也就是一个问题,需要给出正确和错误的示范,以此来调整大模型。
完成以上过程,一个大模型就从“生”模型变成了“熟”模型。而大模型回答问题的过程,是一种推理过程。
也就是大模型其实不知道你的问题是什么含义,它不过是把你的句子拆解,试图“识别”你的问题,并根据它已经训练过的网络,来“像模像样”地组织一段通顺的自然语言形式的文本补充。
四、幻觉
我们知道,大模型本质上是用一堆语料训练出来的,它的所谓回答问题的能力,本质上是一种文本补充游戏。
不管我们用多么新的材料去训练它,它所掌握的知识总是落后于我们的实际。
比如去年训练的模型,就无法知道今年的新闻。
幻觉就是指大模型一本正经的胡说八道。大语言模型跟我们之前用强逻辑代码写出来的东西有所不同,大模型是根据语料,进行概率性的组合,不管会不会,它总是能给出一个答复。
幻觉本质上就是大模型还不能实时掌握物理世界的情况。但如果为了保持与世界信息同步,需要不断训练模型,对于人类而言也不现实。毕竟一次训练或微调,需要耗费大量算力。
于是,有了各种补充上下文的方法。最为有名的就是RAG和函数调用。
五、知识库和RAG RAG就是增强检索,它依赖于一个向量数据库(什么是向量数据库?我另外讲述,现在先理解它是一个可以处理向量比对的数据库,区别于传统规则匹配的数据库)。这个向量数据库一般被称为知识库,它存放着领域的,或者最新的一些信息,也支持更为动态的更新。
那么,在智能体向大模型发出问题的时候,会先去这个RAG库中查询(通过向量对比的方式),跟现有问题最接近的一堆材料。然后把这些材料都推送给大模型,再有大模型进行自然语言的理解和回答。
通过RAG可以得到更新更准确的语料。这看起来很像是开卷考试。
但RAG毕竟是一堆静态的语料信息,如果是要执行任务,又要怎么处理呢。
六、函数调用
于是有了函数调用,比如我们要大模型帮忙我们规划路线。我们会需要用到高德地图。
那么需要高德地图首先开放一个函数,用来通过传入起始地点和目的地,返回规划的路线。
然后在智能体中声明这些函数的使用方法和参数。智能体在向大模型传入信息前,不仅会从知识库取出一些形象,也会告诉大模型,它目前对接了哪些函数,以及这些函数的用途和入参。
大模型根据问题和这些信息,就会规划出具体要用哪个函数,并从智能体的问题中提取出来调用函数需要的参数。再告诉智能体,现在需要调用高德地图的函数,入参是福田某某小区到南山某某公司。
可是,这样的函数有很多很多,比如订餐、订票、打开视频,等等等等,明显用函数调用这种方式,对智能体的开发量很大,且兼容性不好。每个智能体都要适配对应的能力。有没有更好的模式呢?
七、MCP协议
于是有了MCP协议。它的全称是模型上下文协议。它的解决方案就是创建一套标准,并且把这种外部服务的开发剥离到智能体以外。
MCP的好处就是标准统一,只需要各个服务商(比如高德地图、美团、京东)各自完成自己的MCP服务器建设,所有的智能体都可以遵循统一的方法对接这些服务,不需要自身再做更多的开发。
MCP的更多细节,我将会另外讲述。
八、智能体
看到这里,你可能困惑,什么是智能体。
智能体是 AI agent,它是在大模型前面用于处理人类于大模型交互而架设的中间层。
比如我们所用的千问的页面,它接受我们的输入,然后再去调用大模型,回答我们的问题。这些智能体也能调用外部的服务(比如订餐、规划行程)。
九、自动规划
Manus的横空出世,让人类看到了大语言模型的终极形态。就是一个智能体,能够像专业助手一样,我们仅仅说出一个诉求,它就能洞悉我们的需求,并给出一整套解决方案。
比如我想去某某地方度假,请给我整理攻略,并订票、订酒店。智能体在收到这个请求之后,它自动识别你的想法(意图识别),然后规划出一个方案(一二三四要怎么做),然后再调用MCP一一执行,最终返回给你一个完整的东西。
这就是自动规划。