查看原文
其他

加了插件的 ChatGPT 目前确实是中心,希望未来的机联网不是

ElfeXu 南瓜博士 2023-05-03

上周五 ChatGPT 推出的插件,我第一时间试用看到了机器人和机器人对话的可能性:ChatGPT 依据插件的说明文件理解插件的功能,在需要的时候会自动寻找相关插件帮助。甚至在调用错误后,能依据插件返回的报错信息,自动调整直至正确调用。

大家纷纷说 AppStore 来了、AI 的操作系统来了,但建硕昨天写了篇文章:有了插件的 ChatGPT ,是一个节点,却不是中心

到底是不是中心呢?在仔细阅读 OpenAI 的开发文档并在 ChatGPT 上做了一些实验后,我认为:目前的 ChatGPT 确实是操作系统一般的中心节点,但未来的 botnet / 机联网不应该是。

目前的 ChatGPT 和插件之间确实是不平等的。
OpenAI 的文档里要求各插件返回的应该是原始数据,而不是自然语言的响应,原始数据得靠 ChatGPT 来根据结构化的方式将其转化为自然语言响应。这就决定了各插件只能依附于 ChatGPT,无法独立存在、直接和人类交流。
此外,在 OpenAI 的插件开发规范里,明确要求各插件只能描述自己可以做的事情,不得要求对方什么时候来使用自己。
这两个特点,使得 ChatGPT 使用各插件,更像是在调用 API 接口,而不是和另一个 chatbot 对话。这是一个中心化的 OS。

我认为这是其它大语言模型还没成熟才会出现的情形。如果需要插件也能理解自然语言的输入并返回自然语言结果,目前最靠谱的方式是调用 OpenAI 的 API。那不管从用户等待时间还是计算成本来说,让 ChatGPT 把自然语言处理的事情直接包圆儿,少绕两圈,能节约计算资源减少用户等待的时间,也是最正确不过的选择。

但是如果其它大模型崛起后,结构化数据或自然语言,在 chatbot 之间交流将各有其优势。

早已习惯依据 API 文档来写代码的程序员,会想当然地认为结构化的数据更有利于 chatbot 之间的交流。例如:

它背后的调用是这样的:

Expedia 插件返回了“有多个歧义目的地”的错误信息以及一系列相关机场的列表,ChatGPT 分析后给了我三个机场供选择。 
如果我当时的提问是:我需要去爱尔兰看看乔伊斯故居和苹果公司的欧洲总部,帮我订机票,返回结构化的数据,将更有利于 ChatGPT 判断出都柏林和科克是更适合我的选项,从而在回答中只给我提供这两个选项。

结构化的数据有利于更好的模块化,各插件职责清晰。
再举个例子。关于天气,用户问 ChatGPT 的问题可能是“今天要不要带伞”,也可能是“明天我去海南出差需要带什么衣服”。对天气预报插件来说,它只需要依据 ChatGPT 给的地理位置和时间,返回相应的天气数据即可。它不需要也不应该针对用户的具体意图,去生成对应的自然语言回复。在这种情况下,结构化的数据更精确,避免了自然语言的歧义。

但是,自然语言的处理方式也有其适用的场景。

在 OpenAI 的官方文档里在“插件应提供原始数据而非自然语言的回复”这一条指导意见时,也加了一句“除非必要”。

什么样的情况属于“必要”呢?可以看下面这个例子。

我要求 ChatGPT 帮我查找往返航班而非两个单程。ChatGPT 发现 Expedia 不具备此能力,转而找 Kayak 求助,得到的结果如下:

背后的调用是这样的:

I understood you want to search for flights from Shanghai to DUB from 2023-07-01 until 2023-07-15
Prices for flights start at $1,309. The majority of flights overall are offered by Air Canada, Lufthansa and United Airlines. Most flights that have one or more stops have a layover at Frankfurt am Main or London. The shortest duration of one flight leg is 15h 15m. The shortest total trip duration is 32h 55m.
Recommended flights leaving Shanghai, Shanghai, China are available in the following hours: 0am, 7am-8am, 11am and 10pm-11pm. On the return leg departures from Dublin, Ireland are available at 5am-12pm, 2pm-7pm and 10pm.
To see more flights and book go to https://www.kayak.com/flights/SHA-DUB/2023-07-01/2023-07-15?a=openai

我的需求很模糊,如果 Kayak 要把所有的可能项都提供给 ChatGPT,可能会是成百上千条航班信息的 json 文件。此时,Kayak 自己做了一些梳理,把总结内容以自然语言的方式返回,呈现的信息量反而更丰富。很难想象如果这些内容都需要通过特定的结构化字段来表示,会是多不灵活、开发工作量会多么大。

在 ChatGPT 的插件中,也有返回半结构化数据的例子。(ChatGPT 竟然连这么简单的数学题都去找 Wolfram!)

Wolfram 给出的 Response 中,除了计算结果,还有一些奇怪的内容,打开 Wolfram 一看原来是把它自己网页上的信息全都提供出来了。

因此,如果 ChatGPT 需要更形象地教孩子数学题,就可以把其中一些字段给用上。

不过 ChatGPT 也有可能选择别的方式。下面这个例子是因为我要求“教5岁孩子”,而 ChatGPT 无法判断 number line 是否适合五岁孩子吧。

综上,我们可以看到 ChatGPT 作为中心,以结构化方式调用插件的 API 有其优势,但自然语言或半结构化的方式也有用武之地。

在今后有了更多大语言模型后,将有更多 bot 能提供自然语言方式的接口,bot 之间也就能以更多样的方式进行交流。届时,和人类直接交流的 bot 也不会只是 ChatGPT 一个,而是有有很多很多。这才是我们希望未来能有的 botnet/机联网。
在一个去中心化的 botnet 里,bots 之间依旧会有能力的差异。各家大模型公司会有各自的类似chatgpt 这样的重要的节点;能力强的 bots 可以作为用户的私人助理直接和用户对话;只会说机器语言的 bots,则能作为 API 被其它 bot 调用。
无论我有多喜欢和信任 OpenAI/微软,我也不希望未来世界只有 GPT-n 这样的单一入口、其它所有 bots 只是附庸的插件。

大刘的科幻《赡养人类》中 99% 财产都归属于终产者、其余二十亿人连空气和水都无法自由想用的第一星球令人不寒而栗。我们不希望人类世界走到这一步,也就不应该让机器人的世界变成这样。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存