引言
对于大模型是如何训练生成的问题,相信大家对其背后原理以及训练方式已研究颇多,司内也有很多同学从专业的视角撰写了很多深度好文进行分享,让人受益颇多,例如:《用人话详解语言大模型》
但在我结合业务落地实践过程中,发现只运用大模型本身能力是不够的。真正有效的落地方案,要思考自身业务优势场景,也要结合业务边界约束条件,这样才能实现对业务价值最大化,这是重点也是难点。
在上述场景中结合大模型落地应用,会有各种各样的问题,从产品视角可将问题抽象总结为三个方面:无法结合外部数据、无法结合上下文记忆、无法调用外部工具
当然,太阳底下没有新鲜事,上述问题都是业内探索广泛遇到的,本文将聚焦在解决”无法调用外部工具“的问题上,将学习总结到的方案,以产品视角用综述方式总结分享。
1. 问题研究意义
举个例子:如果把大模型比喻成一个全能人类,它可以口述历史、翻译多国语言、谈笑风声。但如果你饿了让它为你做一顿可口的饭菜,抱歉它最多只能帮你口述菜谱,因为它没有、也不会使用燃气灶、高压锅。
让模型学会外部工具的意义也在于此,只利用模型本身能力落地应用终究空间有限,也无法结合业务本身,只有结合外部工具,才能更好的链接业务目标,发挥更大价值。
2. 业内解决方案
将“如何让大模型调用外部工具?”问题进行拆解,可分为三个环节 :1)大模型如何进行意图识别,分解指令、2)大模型如何将拆解出的指令,找到对应的工具、3)大模型如何学会使用对应的工具
目前领域内:LangChain、Toolformer、HuggingGPT、AutoGPT、BabyAGI 皆对上述拆解的三个环节或其中一环提出了相应解决方案。
2.1 LangChain
LangChain是一个用于开发大语言模型的应用程序框架,全面且强大,具有很多组件,可以解决很多在应用落地时遇到的问题,如:模型(Models)、提示(Prompts)、索引(Indexes)、存储(Memory)、链(Chains)和代理(Agents),其中Agents就是去解决调用外部工具问题的。
简述其实现原理为:
1)先基于用户需求,将Prompt拆解成不同任务
2)在基于任务去寻找适合的工具,并调用工具生成结果。(这里会也会告诉大模型工具API文档,这样大模型可以根据API文档正确调用工具)
3)最后对结果进行整合
上述对LangChain 使用Agent 调用外部工具的流程进行了简化
2.2 Toolformer
Toolformer 是由meta ai提出的一个经过微调的模型,和LangChain思路有相似之处,主要的思想是通过构建一个自监督的方法,教大模型学会自己调用API,并省去大量的标注工作。
通过引入Toolformer,模型可以学会哪些任务需要调用工具、这些工具对应的API是什么、以及API参数正确的组装方式是什么,从而解决大模型无法调用外部工具的问题。
这个过程主要分为三个环节:API调用采样、API调用执行、API过滤;
1)API调用取样
对于每一个API先编写一个Prompt。这部分目的是让模型分析,用户输入的文本指令中,哪些部分需要调用工具以及何种工具,并将需要调用的API插入对应的位置。
(论文中示例:问答系统生成API调用的Prompt)
2)API调用执行
根据上一步的任务,去执行所有的API调用,反回文本序列并插入到对应位置。
3)API过滤
通过算法计算出插入的API调用,哪些是真正有用的,哪些是无用的,最后只保留有用的部分。
(论文中示例:输出结果)
2.3 HuggingGPT
HuggingGPT是由浙江大学和微软亚研的研究者提出的一种让 LLM 充当控制器的新方法,让 LLM 使用语言作为通用接口,来管理现有的 AI 模型以解决复杂的 AI 任务的框架。
(原理图-引自论文)
简化的描述就是,HuggingGPT 一端连接着ChatGPT,一端连接着众多领域专精的AI模型,当用户输入自然语言时,可结合ChatGPT将用户的意图拆解,并按需调用对应意图的AI模型,最后再结合生成结果,框架主要流程如下:
1)任务规划
ChatGPT 等 LLM 首先对用户请求进行解析,进行任务分解,并根据其知识规划任务顺序和依赖关系;
2)模型选择
LLM 将解析后的任务分配给专家模型;
3)任务执行
专家模型在推理端点上执行分配到的任务,并将执行信息和推理结果记录到 LLM;
4)响应生成 LLM 对执行过程日志和推理结果进行汇总,并将汇总结果返回给用户。
(工作流程-引自论文)
2.4 Baby AGI
Baby AGI 是一个基于 OpenAI 的 GPT-3.5 或 GPT-4 语言模型构建的 Python 脚本。它接收目标和任务作为输入,并积极地尝试完成这些任务。此外,它还能根据已有目标和完成任务的结果生成新任务,并重新设置任务列表的优先级顺序。
系统的核心理念在于利用先前任务的成果和预设目标来创建任务。然后,它使用GPT按照这些目标生成新任务,并使用 Pinecone(一种存储和检索大量数据的程序)来存储和获取任务结果的上下文,以便帮助模型记住它执行过的操作和将要执行的任务。
Baby AGI 的核心流程遵循以下三个关键步骤,这些步骤与其他类似产品的解决方案有许多相似之处:
1)根据需求拆分任务
2)为任务分配优先级
3)执行任务并整合成果
(核心流程-引自Baby AGI GitHub )
2.5 Auto GPT
实际上,AutoGPT 仍然运用了 GPT 作为其背后的大型语言模型来提供支持。简化来讲,AutoGPT 的工作原理是将用户的自然语言需求转化为一个特定的 Prompt。
然而,这个 Prompt 的目的不是直接生成结果,而是对用户需求进行任务拆解和计划制定。之后,拆解得到的任务和制定的计划将作为新的 Prompt 输入系统。在每个任务和计划的执行过程中,系统会寻找合适的工具并持续循环,直至成功解决问题。
(原理-简化版)
它主要包括三个部分:需求下发、自主运行和结果输出。其中,自主运行是 AutoGPT 的核心模块,它具有如下几个步骤:
1)任务定义
用户通过 Prompt 向 ChatGPT 下发任务。初次下发的任务需包含用户名(Name)、角色(Role)和目标(Goals)。在后续的对话中,ChatGPT 将根据执行结果自动生成新的 Prompt。
2)任务理解
ChatGPT 通过大模型对下发的 Prompt 进行语义理解。这个过程模仿了人类在接收任务时的思考过程,在 AutoGPT 中称为 “Thinking”。
3)方案生成
基于对任务的理解,ChatGPT 输出一个详细的、逐步的解决方案。这部分对应 AutoGPT 中的 “Plan” 环节。
4)指令生成
ChatGPT 对生成的方案进行逻辑判断,选出优先执行的步骤,并生成可执行的操作或指令。这部分在 AutoGPT 中被称为 “Criticism”。生成的指令包括命令和参数,例如浏览某个网站的指令。
这个步骤是 AutoGPT 的核心之一,因为它为 GPT 提供了内置动作和参数的能力,如搜索关键字、抓取网页数据、进行文本数据分析以及文件读写等操作。这让 GPT 具备了联网、记忆等能力。
5)指令执行
AutoGPT 根据生成的指令执行任务,可能涉及访问网站、解析网站、爬取数据和执行电脑指令等操作。此外,它还可以调用 ChatGPT 资源来完成编写代码等任务。
6)结果输出
当指令执行完成后,AutoGPT 将返回执行结果,如网站页面解析结果或数据分析结果等。
7)结果评估
在执行任务后,AI 将对执行结果进行评估,以确定是否达到预期目标或是否需要做出进一步调整。这一评估过程有助于 AI 了解其行动的有效性并做出必要的优化。
需要注意的是,GPT 返回的不再是简单的文本信息,而是一个具有标准 JSON 结构的数据。这种数据结构使得 AutoGPT 能够自主执行任务,体现了其独特的思路精华。
系统将持续循环执行以上过程,直到达到用户定义的所有目标。以上流程描述了 AutoGPT 的整个运行流程。
3. 外部工具使用局限
3.1 工具范围的有限性
上述多种解决方案,所能连接的工具都是有限的,我思考主要受限于几个原因:
1)受限于实现原理
上述方案从实现方式上来看,还是Prompt工程的一部分,随着工具越来越多,会受于上下文token数量的限制;
2)受限于成本
token数量的增加,也会相应的提高成本,如何利用外部工具+多轮对话,对业务侧平衡成本和用户体验也是一个考验;
3)受限于生态发展
大模型刚刚发展,生态的构建也刚刚开始发展,如何让接入的工具方赚钱,如何让更多工具加入被调用的工具list,在模型方、工具方、用户,这三边市场中还没有形成明确的商业模型。
3.2 任务实现的准确性
产生“幻觉”即一本正经的乱回答,仍然是大模型需要解决的问题。虽然GPT-4发布后,已经大大降低了产生幻觉的概率,但仍常有发生。
从准确性和用户价值关系的角度思考:往往越复杂任务(多重任务),越贴近用户真实需求场景,带给用户的价值越高,但实际上任务准确性可能会越低。真正发挥最大化的价值,可能还有一段路要走。
4. 站在业务侧角度的思考
以下两个问题本次不做详细展开,仅阐述部分观点&思路,持续研究大半年以来也有很多思考,给自己挖个坑,后续单独成文进行分享。也欢迎大家随时找我讨论。
1)如何更好的利用大模型结合业务落地,提高产品和用户/客户价值?
- 用户:找到真正的用户/客户需求
- 产品:明确自己产品和业务在大模型时代下真正的优势与劣势
- 技术:对技术保持自己的感悟和判断力,不要因为对技术的不了解和过于了解,限制自己的想象力。
2)大模型若发展成为平台或操作系统,当前业务产品如何更好融入大模型平台,要如何提前准备,如何构建自己的优势?
如何系统的去学习大模型LLM ?
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料
包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
阶段1:AI大模型时代的基础理解
- 目标:了解AI大模型的基本概念、发展历程和核心原理。
- 内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践 - L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
- 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
- 内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例 - L2.2 Prompt框架
- L2.2.1 什么是Prompt
- L2.2.2 Prompt框架应用现状
- L2.2.3 基于GPTAS的Prompt框架
- L2.2.4 Prompt框架与Thought
- L2.2.5 Prompt框架与提示词 - L2.3 流水线工程
- L2.3.1 流水线工程的概念
- L2.3.2 流水线工程的优点
- L2.3.3 流水线工程的应用 - L2.4 总结与展望
- L2.1 API接口
阶段3:AI大模型应用架构实践
- 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
- 内容:
- L3.1 Agent模型框架
- L3.1.1 Agent模型框架的设计理念
- L3.1.2 Agent模型框架的核心组件
- L3.1.3 Agent模型框架的实现细节 - L3.2 MetaGPT
- L3.2.1 MetaGPT的基本概念
- L3.2.2 MetaGPT的工作原理
- L3.2.3 MetaGPT的应用场景 - L3.3 ChatGLM
- L3.3.1 ChatGLM的特点
- L3.3.2 ChatGLM的开发环境
- L3.3.3 ChatGLM的使用示例 - L3.4 LLAMA
- L3.4.1 LLAMA的特点
- L3.4.2 LLAMA的开发环境
- L3.4.3 LLAMA的使用示例 - L3.5 其他大模型介绍
- L3.1 Agent模型框架
阶段4:AI大模型私有化部署
- 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
- 内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
学习计划:
- 阶段1:1-2个月,建立AI大模型的基础知识体系。
- 阶段2:2-3个月,专注于API应用开发能力的提升。
- 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
- 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓