基本信息
文件名称:GPT 和智能体的能力.pdf
文件大小:568.74 KB
总页数:2 页
更新时间:2025-05-17
总字数:约2.24千字
文档摘要

GPT和智能体的能力

在现在的非常热火的GPT热潮中,人们自然会说:哇,这些计算机程序真能啊,比我们的秘书还

做到好!还可以考取谷歌的程序员,拿到100万收入的录用!据说还通过了医师资格考试!这些

程序为什么如此能干?这些程序有智能吗?它们的智能超过了人类的智能吗?

我们不打算回答全部的这些问题。相反,我们来提出一些问题。如果仔细思考我们的问题,会极

大帮助理解GPT。顺便说,GPT代表生成式(G)-预训练(P)-变换模型(T),是一种程序模

式,后面会再次提到。

首先,我们统一用智能体来称呼这样的程序,而不是用软件,程序等称呼。

考虑最简单的情形往往可以帮助我们理解。我们先考虑很简单的情形。假设有这样一个环境,其

中有8种情况,需要对每一种情况作出正确的行动。因此,我们来考虑一个智能体,它把这些情

况当作输入,并且根据输入来行动。那么问题来了,应该怎么样来开发这个智能体?

因为输入总共有8个,我们可以把输入编码为3位比特的数值,即000,001,…,111。因此,这

个智能体就是这样的一个东西,当输入是000,它做行动A,当输入是001时,做行动B,等等。

如果我们知道全部这些对应,即全部的输入和行动的对应,就不难开发智能体,我们可以找一个

程序员,然后编程来实现这个智能体。

这是理想的。但是,现实未必理想。我们假设你仅知道000,001,010应该做什么,其他的不知

道,但是又不能放弃,还是必须开发这个智能体。那么怎么开发?在这样的情况下,无论怎么编

程,都不可能形成一个完善的智能体T,使得T可以对所有输入做出正确的行动。通常的编程都

把不是那3种输入的情况列为异常来处理,而且采用例如停机等硬性措施来应对异常。这就是

说,通过编程,智能体T仅能做程序规定好的,预设好的。超出了预设范围,T就不能行动。

这是用编程来赋予智能体能力的情况。不过,我们还有其他的方法来赋予智能体能力,那就是,

采用机器学习的方法。

在机器学习中,智能体中有学习程序,用于学习,也有行动程序,用于根据输入做行动。学习程

序和行动程序可以是同一个。在一开始,行动程序可能是完全不正确的,即输入000时,行动错

误,等等。但是,当我们喂数据给学习程序时,学习程序可以调整行动程序,使之逐渐变得正

确。但是,现在仅有3个数据,即000,001,010和相应的行动,供学习。当行动程序对这三个

输入都可以正确行动后,就再没有数据了,学习就完成了。但是,在学习完成后,智能体中的行

动程序不仅可以对那3个输入做行动,也可以对其他的输入做行动,因为学习通常是在神经网络

中进行的,这些网络具备泛化能力。但是,有一个重大差别:如果输入是那3个中的一个,可以

保证行动是正确的,因为学习就是这样做的;如果输入不是那3个中的一个,虽然也可以做行

动,但是并不能保证行动一定正确。仅有在幸运的情况下,才会出现通过学习和泛化得到的行动

和正确的行动吻合。这就是说,通过学习,智能体T仅能保证对规定好的数据能正确行动,如果

超出了数据集的范围,就不能保证T能正确行动。相较于通过编程的智能体,通过学习得到的智

能体有了一些进步,即可以对那3个输入之外的输入,也可以行动,不必强行停机,但是,仍然

不能保证行动正确。

我们说到了两种为智能体赋能的方法,即编程赋能和用数据集赋能。还有其他的方法吗?目前应

该没有了。当然编程和学习可以交互、糅合。

现在可以说回GPT。GPT当然不是由程序来赋能的那种智能体。GPT是由数据集来赋能的那种智

能体,因此,GPT对超出数据集的输入依据泛化来处理,但是对这种泛化形成的行动完全茫然,

而且泛化形成的行动非常可能是错误的、乃至危险的。从GPT的若干外在表现看,GPT的确可能

有令人惊艳的感觉,但是,这种依赖泛化形成的行动的确时常表现出茫然乃至危险。但是,我们

应该看到,GPT是分成了多个层级来做学习的,即生成式阶段,预训练阶段,和变换模型阶段。3

个阶段用到的数据集也是不同的,因此,这样形成的泛化也就比仅有一层的泛化更加间接一些,

复杂一些,因此可能更强一些。但是我们可以非常肯定说,GPT的行为仍然是由数据集来规定,

而对超过数据集的输入,由泛化来处理。此点无可置疑。

对前面的那个非常简单的情况,我们很清楚仅有3个数据的数据集,不可能形成一个完善的智能

体。虽然通过学习,智能体形成了泛化,可以处理数据集外的输入,但是不能保证正确。

那么对高级非常多的GPT,是否就克服了这个数据集的局限?还是这个数