大模型应用之路:从提示词到通用人工智能(AGI)

云上有数芯 2024-06-15 05:53:23

大模型在人工智能领域的应用正迅速扩展,从最初的提示词(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.提高理解力:结构化Prompt通过明确的指令帮助AI更好地理解用户的查询意图。

2.增强一致性:它们确保了对话的一致性,因为AI会以相同的方式处理类似的查询。

3.提升效率:结构化的数据更容易被AI处理,从而提高了对话系统的整体效率。

4.减少歧义:它们减少了用户的输入歧义,降低了AI误解用户意图的可能性。

1.3 如何设计结构化Prompt

1.明确目标:在设计Prompt之前,明确你希望AI执行的任务或回答的问题类型。

2.使用清晰的语法:确保Prompt使用简单、明确的语法,避免模糊或复杂的句子结构。

3.包含关键信息:确保Prompt包含了完成任务所需的所有关键信息。

4.测试和迭代:设计完成后,通过测试来验证Prompt的有效性,并根据反馈进行迭代。

1.4 构建结构化Prompt的要素

结构化Prompt涉及多个关键部分:

1.角色定义(# Role):明确AI角色,增强特定领域的信息输出。

2.作者信息(## Profile):包括作者、版本和描述,增加信息的可信度。

3.目标设定(## Goals):一句话明确Prompt的目的。

4.限制条件(## Constrains):帮助AI“剪枝”,避免无效的信息分支。

5.技能描述(## Skills):强化AI在特定领域的知识和能力。

6.工作流程(## Workflow):指导AI如何交流和输出信息。

7.初始化对话(# Initialization):开始时的对话,重申关注的重点。

二、RAG与知识库

RAG即Retrieval-Augmented Generation,是一种结合检索和生成技术的模型。它通过引用外部知识库的信息来生成答案或内容,具有较强的可解释性和定制能力,适用于问答系统、文档生成、智能助手等多个自然语言处理任务中。RAG模型的优势在于通用性强、可实现即时的知识更新,以及通过端到端评估方法提供更高效和精准的信息服务。

为什么要用 RAG,因为大模型(LLM)的知识存在固有缺陷:

•知识不新:由于训练的时间和成本,大模型的知识往往是旧的,如 GPT-4 Turbo 的知识库截至时间是 2023 年 4 月

•知识不全:缺少专业的领域知识或私有的业务知识

2.1 RAG架构

RAG的工作原理是通过检索大规模文档集合中的相关信息,然后利用这些信息来指导文本的生成,从而提高预测的质量和准确性。



RAG = LLM+知识库

具体而言,RAG通过三个关键部分实现工作:检索、利用和生成。在检索阶段,系统会从文档集合中检索相关信息;在利用阶段,系统会利用这些检索到的信息来填充文本或回答问题;最后在生成阶段,系统会根据检索到的知识来生成最终的文本内容。



通过这一过程,RAG模型能够在各种自然语言处理任务中发挥作用,如问答系统、文档生成和自动摘要、智能助手和虚拟代理、信息检索以及知识图谱填充等。同时,RAG模型具有及时更新、解释性强、高度定制能力、安全隐私管理以及减少训练成本等优点。与微调相比,RAG是通用的,适用于多种任务,并且能够实现即时的知识更新而无需重新训练模型。

2.2 知识库介绍

对于企业而言,构建一个符合自身业务需求的知识库是至关重要的。通过RAG、微调等技术手段,我们可以将通用的大模型转变为对特定行业有着深度理解的“行业专家”,从而更好地服务于企业的具体业务需求。这样的知识库基本上适用于每个公司各行各业,包括:市场调研知识库、人力资源知识库、项目管理知识库、技术文档知识库、项目流程知识库、招标投标知识库等等。

知识库的技术架构分为两部分:

第一、离线的知识数据向量化

•加载:通过文档加载器(Document Loaders)加载数据/知识库。

•拆分:文本拆分器将大型文档拆分为较小的块。便于向量或和后续检索。

•向量:对拆分的数据块,进行 Embedding 向量化处理。

•存储:将向量化的数据块存储到向量数据库 VectorDB 中,方便进行搜索。



第二、在线的知识检索返回

•检索:根据用户输入,使用检索器从存储中检索相关的 Chunk。

•生成:使用包含问题和检索到的知识提示词,交给大语言模型生成答案。



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+FeedbackAgent 是让 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框架有以下几个核心组成部分:

•LangChain库:Python和JavaScript库。包含无数组件的接口和集成、将这些组件组合成链和Agent的基本运行时,以及链和Agent的现成实现。

•LangChain模板:一系列易于部署的参考架构,适用于各种任务。

•LangServe:用于将LangChain链部署为RESTAPI的库。

•LangSmith:一个开发者平台,可让您调试、测试、评估和监控基于任何LLM框架构建的链,并与LangChain无缝集成。

2、MetaGPT

MetaGPT是一个创新框架,将人类工作流程作为元编程方法整合到基于LLM的多智能体协作中。它使用标准化操作程序(SOP)编码为提示,要求模块化输出,以增强代理的领域专业知识并减少错误。实验表明,MetaGPT在协作软件工程基准上生成了更连贯和正确的解决方案,展示了将人类知识整合进多智能体系统的潜力,为解决复杂问题提供了新机会。

在MetaGPT看来,可以将智能体想象成环境中的数字人,其中

智能体 = 大语言模型(LLM) + 观察 + 思考 + 行动 + 记忆



这个公式概括了智能体的功能本质。为了理解每个组成部分,让我们将其与人类进行类比:

1.大语言模型(LLM):LLM作为智能体的“大脑”部分,使其能够处理信息,从交互中学习,做出决策并执行行动。

2.观察:这是智能体的感知机制,使其能够感知其环境。智能体可能会接收来自另一个智能体的文本消息、来自监视摄像头的视觉数据或来自客户服务录音的音频等一系列信号。这些观察构成了所有后续行动的基础。

3.思考:思考过程涉及分析观察结果和记忆内容并考虑可能的行动。这是智能体内部的决策过程,其可能由LLM进行驱动。

4.行动:这些是智能体对其思考和观察的显式响应。行动可以是利用 LLM 生成代码,或是手动预定义的操作,如阅读本地文件。此外,智能体还可以执行使用工具的操作,包括在互联网上搜索天气,使用计算器进行数学计算等。

5.记忆:智能体的记忆存储过去的经验。这对学习至关重要,因为它允许智能体参考先前的结果并据此调整未来的行动。

四、向量数据库

向量数据库是专注于存储和查询向量的系统,其向量源于文本、语音、图像等数据的向量化表示。相较于传统数据库,向量数据库更擅长处理非结构化数据,比如:文本、图像和音频。在机器学习和深度学习中,数据通常以向量形式存在。向量数据库凭借高效存储、索引和搜索高维数据点的能力,在处理比如:数值特征、文本或图像嵌入等复杂数据时表现出色。



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包括几种技术路线:

1.监督式微调(SFT),使用人工标注数据,通过监督学习进行微调。

2.基于人类反馈的强化学习微调(RLHF),将人类反馈通过强化学习引入微调,使模型输出更符合人类期望。

3.基于AI反馈的强化学习微调(RLAIF),与RLHF类似,但反馈来自AI,以提高反馈系统的效率。

不同的微调方法侧重点不同,实际操作中可以结合多种方案,以达到最佳效果。

七、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的终极目标打下了坚实的基础。随着技术的不断发展和创新,我们离实现真正的通用人工智能的愿景越来越近。

作者:京东科技 李良文

来源:京东云开发者社区

0 阅读:0

云上有数芯

简介:感谢大家的关注