大模型应用之路:从提示词到通用人工智能(AGI)
大模型在人工智能领域的应用正迅速扩展,从最初的提示词(Prompt)工程到追求通用人工智能(AGI)的宏伟目标,这一旅程充满了挑战与创新。本文将探索大模型在实际应用中的进展,以及它们如何为实现AGI铺平道路。
基于AI大模型的推理功能,结合了RAG(检索增强生成)、智能体(Agent)、知识库、向量数据库、知识图谱等先进技术,我们向实现真正的AGI(通用人工智能)迈出了重要步伐。
为了方便大家理解,将AI大模型视作类比人类大脑的存在,我们与之交互,仿佛是在与一个能够理解并使用人类语言的智能体沟通。这样的AI大模型能够接收信息、生成回应,并且提供答案。然而,就像人类也会犯错一样,AI大模型提供的答案也可能不完全准确。下面分别对提示词工程,RAG,AI Agent, Fine-tuning,Function calling ,知识库,知识图谱等应用进行详细介绍。
一、提示词工程(Prompt Engineering)
提示词工程涉及设计和使用特定的提示词或问题构造来引导语言模型生成期望的输出或执行特定的任务。提示词就像是给AI的一把钥匙,用来开启特定知识宝库的大门。
Prompt = 角色 + 任务 + 要求 + 细节【步骤拆解、范例说明,技巧点拨等】
提示词看起来很简单,给出一句话,大模型就会给出问题响应,但要想大模型精准回复问题,是自己想要的答案,还需要有结构化的提示词知识。
1.1 结构化Prompt
结构化Prompt是一种预定义的输入格式,它指导AI对话系统以特定的方式理解和响应用户的查询。与传统的自由形式的Prompt相比,结构化Prompt通过提供清晰的指令和格式要求,帮助AI更准确地捕捉用户的意图。
1.2 结构化Prompt的重要性
1.3 如何设计结构化Prompt
1.4 构建结构化Prompt的要素
结构化Prompt涉及多个关键部分:
二、RAG与知识库
RAG即Retrieval-Augmented Generation,是一种结合检索和生成技术的模型。它通过引用外部知识库的信息来生成答案或内容,具有较强的可解释性和定制能力,适用于问答系统、文档生成、智能助手等多个自然语言处理任务中。RAG模型的优势在于通用性强、可实现即时的知识更新,以及通过端到端评估方法提供更高效和精准的信息服务。
为什么要用 RAG,因为大模型(LLM)的知识存在固有缺陷:
2.1 RAG架构
RAG的工作原理是通过检索大规模文档集合中的相关信息,然后利用这些信息来指导文本的生成,从而提高预测的质量和准确性。
RAG = LLM+知识库
具体而言,RAG通过三个关键部分实现工作:检索、利用和生成。在检索阶段,系统会从文档集合中检索相关信息;在利用阶段,系统会利用这些检索到的信息来填充文本或回答问题;最后在生成阶段,系统会根据检索到的知识来生成最终的文本内容。
通过这一过程,RAG模型能够在各种自然语言处理任务中发挥作用,如问答系统、文档生成和自动摘要、智能助手和虚拟代理、信息检索以及知识图谱填充等。同时,RAG模型具有及时更新、解释性强、高度定制能力、安全隐私管理以及减少训练成本等优点。与微调相比,RAG是通用的,适用于多种任务,并且能够实现即时的知识更新而无需重新训练模型。
2.2 知识库介绍
对于企业而言,构建一个符合自身业务需求的知识库是至关重要的。通过RAG、微调等技术手段,我们可以将通用的大模型转变为对特定行业有着深度理解的“行业专家”,从而更好地服务于企业的具体业务需求。这样的知识库基本上适用于每个公司各行各业,包括:市场调研知识库、人力资源知识库、项目管理知识库、技术文档知识库、项目流程知识库、招标投标知识库等等。
知识库的技术架构分为两部分:
第一、离线的知识数据向量化
第二、在线的知识检索返回
2.3 RAG应用场景
1.问答系统(QA Systems):RAG可以用于构建强大的问答系统,能够回答用户提出的各种问题。它能够通过检索大规模文档集合来提供准确的答案,无需针对每个问题进行特定训练。
2.文档生成和自动摘要(Document Generation and Automatic Summarization):RAG可用于自动生成文章段落、文档或自动摘要,基于检索的知识来填充文本,使得生成的内容更具信息价值。
3.智能助手和虚拟代理(Intelligent Assistants and Virtual Agents):RAG可以用于构建智能助手或虚拟代理,结合聊天记录回答用户的问题、提供信息和执行任务,无需进行特定任务微调。
4.信息检索(Information Retrieval):RAG可以改进信息检索系统,使其更准确深刻。用户可以提出更具体的查询,不再局限于关键词匹配。
5.知识图谱填充(Knowledge Graph Population):RAG可以用于填充知识图谱中的实体关系,通过检索文档来识别和添加新的知识点。
三、智能体(AI Agent)
在 AI 大模型时代,任何具备独立思考能力并能与环境进行交互的实体,都可以被抽象地描述为智能体(Agent)。这个英文词汇在 AI 领域被普遍采纳,用以指代那些能够自主活动的软件或硬件实体。在国内,我们习惯将其译为“智能体”,尽管过去也曾出现过“代理”、“代理者”或“智能主体”等译法。智能体构建在大语言模型的推理能力基础上,对大语言模型的 Planning 规划的方案使用工具执行(Action) ,并对执行的过程进行观测(Observation),保证任务的落地执行。
Agent一词起源于拉丁语中的Agere,意思是“to do”。在LLM语境下,Agent可以理解为在某种能自主理解、规划决策、执行复杂任务的智能体。
AI Agent是由人工智能驱动的程序,当给定目标时,它们能够自己创建任务、完成任务、创建新任务、重新确定任务列表的优先级、完成新的顶级任务,并循环直到达到目标。
Agent = LLM+Planning+Tool use+Feedback
Agent 是让 LLM 具备目标实现的能力,并通过自我激励循环来实现这个目标。
3.1 PDCA思维模型
PDCA思维模型大家应该都了解,我们可以把智能体执行过程比作PDCA思维模型,我们可以将完成一项任务进行拆解,按照作出计划、计划实施、检查实施效果,然后将成功的纳入标准,不成功的留待下一循环去解决。目前,这是人们高效完成一项任务非常成功的经验总结。
3.2 智能体架构
PDCA 循环是人日常做事思维模型,大模型是否可以像人一样,让大模型代替人的工作。因而,智能体应运而生,让大模型具备执行能力。
要让LLM替代人去做事,我们可以基于PDCA模型进行规划、执行、评估和反思。
规划能力(Plan):智能体(Agent)的大脑能够将复杂的大任务细分为小的、可操作的子任务,这种能力对于高效、有序地处理大型任务至关重要。
执行能力(Do):智能体能学会在内部知识不足时调用外部API,例如获取实时信息、执行代码或访问专有知识库。这需要构建一个平台加工具的生态系统,鼓励其他厂商提供更多工具组件,共同形成繁荣的生态系统。
评估能力(Check):任务执行后,智能体需要判断结果是否达到预期目标,并在出现异常时进行分类、定位和原因分析。这种能力通常不是通用大模型所具备的,需要针对特定场景进行定制化的小模型训练。
反思能力(Action):基于评估结果,智能体能够及时结束任务或进行归因分析,总结成功的关键因素。如果出现异常或结果不符合目标,智能体会提出应对策略,重新规划并启动新的循环过程,这是整个任务管理流程的核心部分。
下图是智能体架构典型的架构,在很多智能化介绍文档都有引用。
LLM作为一种智能代理,引发了人们对人工智能与人类工作的关系和未来发展的思考。它让我们思考人类如何与智能代理合作,从而实现更高效的工作方式。而这种合作方式也让我们反思人类自身的价值和特长所在。
3.3 智能体开发框架
智能体是当前大模型最火热的话题,如何快速开发智能体,智能体开发框架少不了。当下主流的智能体开发框架有Langchain,metaGPT。
1、Langchain
LangChain是一个用于开发由语言模型支持的应用程序的框架。它使应用程序能够:
LangChain框架有以下几个核心组成部分:
2、MetaGPT
MetaGPT是一个创新框架,将人类工作流程作为元编程方法整合到基于LLM的多智能体协作中。它使用标准化操作程序(SOP)编码为提示,要求模块化输出,以增强代理的领域专业知识并减少错误。实验表明,MetaGPT在协作软件工程基准上生成了更连贯和正确的解决方案,展示了将人类知识整合进多智能体系统的潜力,为解决复杂问题提供了新机会。
在MetaGPT看来,可以将智能体想象成环境中的数字人,其中
智能体 = 大语言模型(LLM) + 观察 + 思考 + 行动 + 记忆
这个公式概括了智能体的功能本质。为了理解每个组成部分,让我们将其与人类进行类比:
四、向量数据库
向量数据库是专注于存储和查询向量的系统,其向量源于文本、语音、图像等数据的向量化表示。相较于传统数据库,向量数据库更擅长处理非结构化数据,比如:文本、图像和音频。在机器学习和深度学习中,数据通常以向量形式存在。向量数据库凭借高效存储、索引和搜索高维数据点的能力,在处理比如:数值特征、文本或图像嵌入等复杂数据时表现出色。
GPT 彰显了卓越的智能性能,其成功归功于众多要素,但在工程实现上,一个决定性的突破在于:神经网络与大型语言模型将语言问题转化为数学问题,并以高效工程方法解决了这一数学挑战。
在人工智能领域,知识与概念的内在表示均采用数学向量。这个过程,即将词汇、文本、语句、段落、图片或音频等对象转换为数学向量,被称为嵌入(Embedding)。
以 OpenAI 为例,它采用一个 1536 维的浮点数向量空间。当你向 ChatGPT 提出疑问时,输入的文本首先被编码并转换成一个数学向量,随后作为神经网络的输入。神经网络产生的直接输出也是一个向量,该向量随后被解码回人类的自然语言或其他形式,最终呈现给你。
人工智能大模型的"思考"过程,本质上是一系列涉及向量和矩阵的数学运算,包括加法、乘法以及它们的逆运算。这些运算对于人类来说非常抽象,难以直观理解。然而,这种数学形式非常适合通过专用硬件如GPU(图形处理单元)、FPGA(现场可编程门阵列)或ASIC(专用集成电路)来高效执行,从而为AI提供了一个基于硅的仿生"大脑"。这个"大脑"拥有庞大的神经元网络、迅捷的处理速度、先进的学习算法,能够展现出令人惊叹的智能水平,并且具备快速自我复制和理论上的持久运行能力。
语言大模型处理的是编码、运算到输出的整个流程。但是,单纯的计算并不足以支撑其智能行为,记忆同样是关键组成部分。大型模型可以被看作是对人类公开数据集进行压缩和存储的一种形式,其中包含的丰富知识通过训练过程被编码进模型,体现在模型的权重参数中。为了实现更高精度、更长期、更过程化的大容量记忆存储,就需要借助向量数据库技术。这些数据库专门设计来高效存储和检索高维向量,它们是大模型记忆功能的重要支撑,使得AI系统能够更精准地回忆和利用已学习的知识。
五、知识图谱
知识图谱是一种以图形式存储和管理知识的数据库,它基于实体和它们之间的关系来构建。这种结构化的数据库设计用于高效地组织和呈现人类知识的各个方面。
知识图谱通过语义分析抽取信息,建立实体之间的联系,构建出层次化的网络结构。在这个网络中,实体如人物、地点、机构等,不仅被赋予了特定的属性,还通过各种关系与其他实体相连。通过先进的数据挖掘技术、信息处理方法和图形化展示手段,知识图谱能够揭示知识领域的演变趋势,为学术研究提供有力的数据支持。
知识图谱在反欺诈领域应用广泛,通过分析实体间关系网络识别潜在欺诈行为。它整合多源数据,实现多维度风险评估和异常检测,提高预警准确性。知识图谱的可视化分析助力快速识别欺诈模式,同时辅助制定和优化反欺诈策略。此外,它还用于贷后管理和案件调查,提升金融风控效率和效果。随着技术发展,知识图谱在反欺诈中的作用日益凸显。
知识图谱与智能体(AI Agent)结合,提供了丰富的背景知识与实体关系,增强了智能体的决策和理解能力。这种结合使得智能体能够执行个性化服务、自动化任务、复杂问题解决等,同时提高了学习和适应能力。智能体通过知识图谱进行上下文理解,实现精准的交互和响应,优化了用户体验,并提升了服务效率和准确性。
六、微调(Fine-tuning)
6.1 什么是微调(Fine-tuning)
大模型微调是提升AI应用性能的有效手段,主要基于以下几点考虑:
首先,大模型由于参数众多,训练成本极高,不适宜每家公司都从头开始训练。微调可以在现有模型基础上进行,性价比更高。
其次,虽然Prompt Engineering是一种易于上手的大模型使用方式,但它存在明显缺陷。大模型通常对输入序列长度有限制,而Prompt Engineering可能导致输入过长,增加推理成本,甚至因超长被截断,影响输出质量。对企业而言,微调可以更有效地控制推理成本。
第三,当Prompt Engineering效果不佳,而企业又拥有高质量的自有数据时,微调可以显著提升模型在特定领域的性能。
第四,微调支持个性化服务。企业可以针对每个用户的数据训练轻量级的微调模型,提供定制化服务。
最后,数据安全也是微调的重要原因。对于不能共享给第三方的数据,企业需要自行微调开源大模型,以满足业务需求并保障数据安全。
综上所述,大模型微调可以降低训练成本,提升特定领域性能,支持个性化服务,并保障数据安全,是企业利用AI技术的重要策略。通过微调,企业可以更高效、更安全地利用大模型,推动业务发展。
6.2 如何微调(Fine-tuning)
在参数规模上,大模型微调主要有两种方法:全量微调(FFT)和参数高效微调(PEFT)。
FFT通过用特定数据训练模型,将权重矩阵W调整为W',从而在相关领域提升性能。然而,FFT存在两个主要问题:一是训练成本高,因为微调的参数量与预训练相同;二是灾难性遗忘,即微调可能削弱模型在其他领域的表现。
PEFT旨在解决FFT的这些问题,是目前更流行的微调方法。从训练数据来源和方法来看,PEFT包括几种技术路线:
不同的微调方法侧重点不同,实际操作中可以结合多种方案,以达到最佳效果。
七、Function Calling
ChatGPT引入了一个名为Function Calling的新功能,它允许用户在API调用中向模型gpt-3.5-turbo-0613
和gpt-4-0613
描述函数,并让模型智能选择输出一个包含调用这些函数参数的JSON对象。不过,Chat completions API本身并不直接调用这些函数,而是生成一个JSON,供用户在自己的代码中调用这些函数。
function calling从本质上并不是严格的工具调用, 而是作为工具调用的前奏,它通过更加结构化的方式指导LLM输出,为在本地执行具体函数提供了参数,铺平了道路。
以“股票价格查询”为例,可以定义一个名为get_stock_price
的函数,该函数接收股票代码作为参数。LLM根据用户的问题,如“请查询股票代码为AAPL的价格”,识别出需要调用get_stock_price
函数,并从问题中提取出参数值“AAPL”。
开发者随后可以根据这个JSON参数,在后端用实际的代码实现查询股票价格的功能,并将查询结果传递回LLM,最终由LLM将信息呈现给用户。
ChatGLM3通过在模型输入中嵌入函数描述的逻辑来实现工具调用,这涉及到对输入的prompt进行一些调整,使得模型能够识别和响应函数调用的需求。
总之,工具调用为LLM提供了调用外部工具的能力,扩展了其应用范围,开发者可以定义各种功能的函数,帮助LLM完成更复杂的任务。
八、AGI
AGI即通用人工智能(Artificial General Intelligence)。按照维基百科的定义,通用人工智能是具备与人类同等智能、或超越人类的人工智能,能表现正常人类所具有的所有智能行为。
AGI(通用人工智能)代表着人工智能发展的顶峰,旨在创造能够理解并处理各类复杂任务的智能系统,与人类智能相匹敌。在通往这一宏伟目标的征途上,一系列关键技术发挥着不可或缺的作用。
AI大模型通过其庞大的数据和模型参数,为理解和生成语言提供了基础。Prompt Engineering则通过精心设计的提示,引导AI模型产生准确的响应。Agent智能体技术赋予了AI自主行动和决策的能力,而知识库和向量数据库则为AI提供了丰富的信息资源和高效的数据检索能力。
RAG(Retrieval-Augmented Generation)模型结合了检索和生成,进一步提升了AI处理任务的灵活性和准确性。知识图谱则通过结构化的方式,将知识以图的形式表示,增强了AI的推理和关联能力。
这些技术相互配合,形成了一个多元化、高度协作的AI生态系统。它们共同推动着AI技术的持续进步,为实现AGI的终极目标打下了坚实的基础。随着技术的不断发展和创新,我们离实现真正的通用人工智能的愿景越来越近。