本文主要讲的内容:
类AutoGPT应用的背后技术原理。
更抽象一层,其实是解释:LLM(GPT)是怎么实现自己学会使用工具的?
1)LLM怎么将人类需求分解成任务;
2)LLM怎么知道什么任务要使用什么外部工具;
2)LLM怎么学会使用这些外部工具的;
---大约5300字,概览如下:
1、为什么研究这个(LLM是怎么学会使用外部工具的)
2、介绍这个领域几个关键产品产品的原理:LangChain、Toolformer、OpenAi-Plugin、huggingGPT、Babyagi、AutoGPT
3、LLM目前使用外部工具的局限是什么?
4、OpenAi-Plugin的数据飞轮
---正文开始---
一、为什么研究这个
一方面,源于我对LLM有一定认知之后,做出的一个判断“未来会出现All in one chatbot”
也就是未来每个人都会有一个基于LLM的IM助手(准确来说是智能助手,虽然说可能无处不在,但是最先落地的一定是IM也就是目前的这种chatbot,用文字或者语音交互)
我只需要跟这个IM发指令,IM就可以理解指令,并且调用外部工具,给到我对应的东西。
举个畅想的例子:用户说:“我中午想点一份40块以内的川菜外卖”,IM会返回一个符合我要求的川菜外卖列表。然后我再点选一个进行下单即可。
这个畅想(openai plugin已经有这样的影子了)往终局来说:
1)会导致目前的APP形态发生很大改变,目前这些APP是为人设计的。未来这些APP更多需要考虑是为LLM设计。
2)在这个设想下,大部分的APP可能不再有自有流量。人们都是通过IM借助LLM来发现并使用这些APP。某种意义上所有目前的APP的用户都会变成LLM,最终再由LLM再提供给人。
我其实一直挺想求证一下,我的这个畅想离现实到底有多远,实现上有什么阻碍。
这不巧了么,最近类似的工具或者论文层出不穷。
LangChain、Toolformer、OpenAi-Plugin、huggingGPT、Babyagi、AutoGPT
其实现这个畅想的要解决的核心问题都是类似的:
1)LLM怎么分解人类指令?2)LLM怎么知道用什么工具?3)LLM怎么才能会用工具?
另一方面,作为一个产品经理,其实对看论文这件事其实挺抵触的(论文这两个字给我的心理压力暗示非常大)。
但是,你不阅读一手内容,似乎总差点意思。所以先从这个偏应用的课题入手,开始看看论文(看了几篇,发现还好,可能是偏应用的原因吧hhh)。
二、对这个领域关于应用&论文的原理简介
依次:LangChain、Toolformer、OpenAi-Plugin、HuggingGPT、BabyAGI、AutoGPT
我追溯了一下LangChain应该是这个应用思路(让LLM自己学会使用外部工具)的鼻祖,时间上LangChain 20221023就发布了第一个版本
所以先介绍LangChain
这部分主要会介绍LangChain让LLM使用外部工具的思路和原理,其他部分暂时不做介绍(强烈建议大家都可以去了解下)
LangChain针对不同场景,有不同的使用外部工具的思路,分为Chain和Agent
Chain概念:
1)在特定的场景下,完成特定的任务
2)约束条件:用户的需求是同一类(比如计算)
3)核心:让LLM根据提供的API文档,结合用户的自然语言,组装正确的API调用参数
链接:#langchain.chains.APIChain.api_docs
Agent概念:
1)在用户需求无法限定的场景,完成更广泛的任务。
2)核心:Agent增加了一个功能,就是根据用户的输入自己去判断应该使用什么工具(在提供的有限的工具list里),然后去使用工具html计算器,最后满足用户需求。
接下来详细展开两者的实现原理
Chain的实现原理
1)告诉LLM工具使用手册:工具(其实就是API)的使用文档,即api_docs
2)告诉LLM用户的问题
3)让LLM基于上述两个信息,组装可以解决用户问题的API请求
具体的prompt如下:
其实我一直对LLM是怎么学会组装正确的API请求参数的,一直有些疑问,去翻了一下源代码,api_docs的内容大概是这个样子(有点像OpenAPI的格式)
这是一个搜索API的例子,假设要query的内容是example,LLM输出的api_url会是:
Agent的实现原理
简而言之,就是在Chain的基础上,让LLM先分解任务,然后再根据每个任务自动根据用户的问题去找到合适的工具
ps:目前还是在给定的几个工具范围内找,这个范围受限于LLM的prompt长度限制,目前需要指定。
话不多说,看prompt你就秒懂了
Toolformer介绍
Toolformer是meta发的一篇关于,LLM怎么自己学会用外部工具的论文
地址:
了解完LangChain的思路后,其实Toolformer的思路大差不差。
Toolformer是一个经过微调的模型,能够决定何时调用哪些API、传递哪些参数,以及如何将结果最佳地融入未来的token预测。
大概过程:
1)先用完整的句子,让LLM自己插入API指令。指令后面的原文其实就是答案。
2)执行API,计算API获得信息和原文答案之间的差异度,如果差异度ok的话,这条原文+正确位置插入正确API问题的数据,就会成为训练数据集。
3)通过这个训练数据集,去fine-tune这个模型。从而让模型可以知道:
a、在什么地方,应该去调用外部API获取信息。
b、要调用什么工具(论文里主要训练了模型用QA、计算器、翻译、wiki搜索,这4种工具)。
c、调用工具需要组装的正确参数是什么。
OpenAi-Plugin原理
话不多说html计算器,直接上和GPT-4的对话
图片里‘---’前面的内容是复制了openai官方文档里的一个plugin的示例的ai-plugin.json、和这个示例的OpenAPI specification
HuggingGPT的原理
HuggingGPT是一个希望“让语言作为接口,让大型语言模型(LLM)能够连接众多AI模型,解决复杂AI任务”的框架。
这个框架的主要流程如下:
1)任务规划:使用ChatGPT分析用户请求以理解他们的意图,并通过提示将其拆解为可能可解决的任务。
2)模型选择:为了解决计划好的任务,ChatGPT根据模型描述从Hugging Face中选择合适的模型。
3)任务执行:调用并执行每个选定的模型,并将结果返回给ChatGPT。
4)整合结果:最后,使用ChatGPT整合所有模型的预测,并为用户生成答案
可以看具体的prompt加深理解:
论文地址:
BabyAGI原理介绍
其实你会发现一脉相承,大家的核心思路都是差不多的
BabyAGI核心:1)根据需求分解任务;2)对任务排列优先级;3)执行任务并整合结果;
核心prompt
AutoGPT原理解析
到这里,相信你直接看prompt就能知道怎么回事了
链接:
三、LLM目前使用外部工具的局限是什么?
大家都惊叹于AutoGPT可以自动完成比较复杂的任务。
但是如果要变成畅想的那样,我们会拥有一个帮我解决大部分问题的智能助手,到最后Allin one chatbot。
至少会有以下三个问题需要解决:
1、大模型的上下文限制,限制了LLM可以选择的工具范围
一方面,数字世界为解决人类需求创造出来的工具(APP)茫茫多。现在这种方式,让LLM选择用什么工具,必须要要提供给模型的是工具的描述和工具的使用手册(API文档)。
想想你自己手机里装了多少个APP,很显然在现在的框架下,是无法让LLM大范围去选择工具的。
OpenAi自己使用插件的时候,看视频也是需要用户自己手动选择要用哪几个插件的,不知道最多可以选多少个,有幸用过的同学可以举个手。
另一方面是,如果提供了海量的工具描述给到LLM,LLM在大范围内能否选择准也是个问题。
2、和大模型交互造成的延迟:这会让LLM帮你去执行工作的新体验价值降低。
举个例子:LLM执行一系列过程到返回结果需要20s,但是你自己找到对应APP操作n下只需要10s。这个时候LLM去帮你完成任务,其实是不如你自己直接去完成任务的。
3、大模型可能会产生幻觉。
换言之,可能不准确。不如用户自己手动操作准确。
如果这个问题不解决,用户只会在失误成本比较低的时候用这个LLM来帮自己完成相应任务。
认清现实后看,我们距离Allinone chatbot 可能还有点路要走。
四、OpenAi-Plugin的数据飞轮
基于上一段其实可以判断:
解决延迟、幻觉,这可能是基础模型要去优化的事情;
突破上下文限制,解决在众多工具中选择合适工具的问题,其实可以参考上文Toolformer的思路
从这个角度,OpenAi的Plugin系统,用户在选择插件,模型在执行过程中,都不断的在为“LLM选择合适的工具”贡献训练数据。
最终OpenAi也许可能会针对“LLM选择合适的工具”这个环节微调出一个专用的模型。
那么,面对海量插件(应用)的时候,LLM选择工具的准确度也是竞争优势的一个重要维度
这和目前的安卓iOS应用生态,就截然不同了。不仅需要拼应用的生态丰富程度,还需要拼选择工具的准确程度。
从这个角度来看,先发者的优势可能会被进一步加强(可能这个生态的终局会是像搜索引擎一样82开,而不是手机操作系统的平分秋色)
从另一个角度来说,做大模型的公司一定是“大模型+应用”并重的。没有应用你就没有数据飞轮优势去改进后续的体验。
---
最后,如果本文对你有帮助,期望多多分享、点赞、在看~感谢~
最近也在考虑LLM领域的机会,如果你的公司在做LLM领域的工作,有产品的hc欢迎联系我。
其他LMM相关的投资创业也欢迎加我交流
———END———
限 时 特 惠:本站每日持续更新海量各大内部创业教程,一年会员只需128元,全站资源免费下载点击查看详情
站 长 微 信:jiumai99
2.本站所有项目来源于投稿或购买自其他第三方,若本站侵犯了您的权益请 联系站长 进行删除处理。