大模型应用之路:从提示词到通用人工智能(AGI)
导读
大模型在人工智能领域的应用正迅速扩展,从最初的提示词(Prompt)工程到追求通用人工智能(AGI)的宏伟目标,这一旅程充满了挑战与创新。本文将探索大模型在实际应用中的进展,以及它们如何为实现AGI铺平道路。基于AI大模型的推理功能,结合了RAG(检索增强生成)、智能体(Agent)、知识库、向量数据库、知识图谱等先进技术,我们向实现真正的AGI(通用人工智能)迈出了重要步伐。为了方便大家理解,将AI大模型视作类比人类大脑的存在,我们与之交互,仿佛是在与一个能够理解并使用人类语言的智能体沟通。这样的AI大模型能够接收信息、生成回应,并且提供答案。然而,就像人类也会犯错一样,AI大模型提供的答案也可能不完全准确。下面分别对提示词工程,RAG,AI Agent, Fine-tuning,Function calling ,知识库,知识图谱等应用进行详细介绍。
导读
大模型在人工智能领域的应用正迅速扩展,从最初的提示词(Prompt)工程到追求通用人工智能(AGI)的宏伟目标,这一旅程充满了挑战与创新。本文将探索大模型在实际应用中的进展,以及它们如何为实现AGI铺平道路。基于AI大模型的推理功能,结合了RAG(检索增强生成)、智能体(Agent)、知识库、向量数据库、知识图谱等先进技术,我们向实现真正的AGI(通用人工智能)迈出了重要步伐。为了方便大家理解,将AI大模型视作类比人类大脑的存在,我们与之交互,仿佛是在与一个能够理解并使用人类语言的智能体沟通。这样的AI大模型能够接收信息、生成回应,并且提供答案。然而,就像人类也会犯错一样,AI大模型提供的答案也可能不完全准确。下面分别对提示词工程,RAG,AI Agent, Fine-tuning,Function calling ,知识库,知识图谱等应用进行详细介绍。
01
提示词工程(Prompt Engineering)
在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了!
提示词工程涉及设计和使用特定的提示词或问题构造来引导语言模型生成期望的输出或执行特定的任务。提示词就像是给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):开始时的对话,重申关注的重点。02
RAG与知识库
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将
RAG即Retrieval-Augmented Generation,是一种结合检索和生成技术的模型。它通过引用外部知识库的信息来生成答案或内容,具有较强的可解释性和定制能力,适用于问答系统、文档生成、智能助手等多个自然语言处理任务中。RAG模型的优势在于通用性强、可实现即时的知识更新,以及通过端到端评估方法提供更高效和精准的信息服务。
为什么要用 RAG,因为大模型(LLM)的知识存在固有缺陷:
知识不新:由于训练的时间和成本,大模型的知识往往是旧的,如 GPT-4 Turbo 的知识库截至时间是 2023 年 4 月
知识不全:缺少专业的领域知识或私有的业务知识
2.1 RAG架构
RAG的工作原理是通过检索大规模文档集合中的相关信息,然后利用这些信息来指导文本的生成,从而提高预测的质量和准确性。
RAG = LLM+知识库
通过这一过程,RAG模型能够在各种自然语言处理任务中发挥作用,如问答系统、文档生成和自动摘要、智能助手和虚拟代理、信息检索以及知识图谱填充等。同时,RAG模型具有及时更新、解释性强、高度定制能力、安全隐私管理以及减少训练成本等优点。与微调相比,RAG是通用的,适用于多种任务,并且能够实现即时的知识更新而无需重新训练模型。
2.2 知识库介绍
第一、离线的知识数据向量化
加载:通过文档加载器(Document Loaders)加载数据/知识库。
拆分:文本拆分器将大型文档拆分为较小的块。便于向量或和后续检索。
向量:对拆分的数据块,进行 Embedding 向量化处理。
存储:将向量化的数据块存储到向量数据库 VectorDB 中,方便进行搜索。
检索:根据用户输入,使用检索器从存储中检索相关的 Chunk。 生成:使用包含问题和检索到的知识提示词,交给大语言模型生成答案。
2.3 RAG应用场景
03
智能体(AI Agent)
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将
Agent = LLM+Planning+Tool use+Feedback
Agent 是让 LLM 具备目标实现的能力,并通过自我激励循环来实现这个目标。
3.1 PDCA思维模型
PDCA思维模型大家应该都了解,我们可以把智能体执行过程比作PDCA思维模型,我们可以将完成一项任务进行拆解,按照作出计划、计划实施、检查实施效果,然后将成功的纳入标准,不成功的留待下一循环去解决。目前,这是人们高效完成一项任务非常成功的经验总结。
3.2 智能体架构
PDCA 循环是人日常做事思维模型,大模型是否可以像人一样,让大模型代替人的工作。因而,智能体应运而生,让大模型具备执行能力。
下图是智能体架构典型的架构,在很多智能化介绍文档都有引用。
3.3 智能体开发框架
LangChain是一个用于开发由语言模型支持的应用程序的框架。它使应用程序能够:
感知上下文:将语言模型连接到上下文源(提示说明、小样本示例、响应的内容等)
推理:依靠语言模型进行推理(关于如何根据提供的上下文进行回答、采取什么操作等)
LangChain框架有以下几个核心组成部分:
LangChain库:Python和JavaScript库。包含无数组件的接口和集成、将这些组件组合成链和Agent的基本运行时,以及链和Agent的现成实现。
LangChain模板:一系列易于部署的参考架构,适用于各种任务。
LangServe:用于将LangChain链部署为RESTAPI的库。
LangSmith:一个开发者平台,可让您调试、测试、评估和监控基于任何LLM框架构建的链,并与LangChain无缝集成。
在MetaGPT看来,可以将智能体想象成环境中的数字人,其中
智能体 = 大语言模型(LLM) + 观察 + 思考 + 行动 + 记忆
这个公式概括了智能体的功能本质。为了理解每个组成部分,让我们将其与人类进行类比:
1.大语言模型(LLM):LLM作为智能体的“大脑”部分,使其能够处理信息,从交互中学习,做出决策并执行行动。
2.观察:这是智能体的感知机制,使其能够感知其环境。智能体可能会接收来自另一个智能体的文本消息、来自监视摄像头的视觉数据或来自客户服务录音的音频等一系列信号。这些观察构成了所有后续行动的基础。
3.思考:思考过程涉及分析观察结果和记忆内容并考虑可能的行动。这是智能体内部的决策过程,其可能由LLM进行驱动。
4.行动:这些是智能体对其思考和观察的显式响应。行动可以是利用 LLM 生成代码,或是手动预定义的操作,如阅读本地文件。此外,智能体还可以执行使用工具的操作,包括在互联网上搜索天气,使用计算器进行数学计算等。
5.记忆:智能体的记忆存储过去的经验。这对学习至关重要,因为它允许智能体参考先前的结果并据此调整未来的行动。
04
向量数据库
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将
向量数据库是专注于存储和查询向量的系统,其向量源于文本、语音、图像等数据的向量化表示。相较于传统数据库,向量数据库更擅长处理非结构化数据,比如:文本、图像和音频。在机器学习和深度学习中,数据通常以向量形式存在。向量数据库凭借高效存储、索引和搜索高维数据点的能力,在处理比如:数值特征、文本或图像嵌入等复杂数据时表现出色。
以 OpenAI 为例,它采用一个 1536 维的浮点数向量空间。当你向 ChatGPT 提出疑问时,输入的文本首先被编码并转换成一个数学向量,随后作为神经网络的输入。神经网络产生的直接输出也是一个向量,该向量随后被解码回人类的自然语言或其他形式,最终呈现给你。
语言大模型处理的是编码、运算到输出的整个流程。但是,单纯的计算并不足以支撑其智能行为,记忆同样是关键组成部分。大型模型可以被看作是对人类公开数据集进行压缩和存储的一种形式,其中包含的丰富知识通过训练过程被编码进模型,体现在模型的权重参数中。为了实现更高精度、更长期、更过程化的大容量记忆存储,就需要借助向量数据库技术。这些数据库专门设计来高效存储和检索高维向量,它们是大模型记忆功能的重要支撑,使得AI系统能够更精准地回忆和利用已学习的知识。
05 知识图谱
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将
知识图谱在反欺诈领域应用广泛,通过分析实体间关系网络识别潜在欺诈行为。它整合多源数据,实现多维度风险评估和异常检测,提高预警准确性。知识图谱的可视化分析助力快速识别欺诈模式,同时辅助制定和优化反欺诈策略。此外,它还用于贷后管理和案件调查,提升金融风控效率和效果。随着技术发展,知识图谱在反欺诈中的作用日益凸显。
06
微调(Fine-tuning)
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将
6.1 什么是微调(Fine-tuning)
6.2 如何微调(Fine-tuning)
PEFT旨在解决FFT的这些问题,是目前更流行的微调方法。从训练数据来源和方法来看,PEFT包括几种技术路线:
1.监督式微调(SFT),使用人工标注数据,通过监督学习进行微调。
2.基于人类反馈的强化学习微调(RLHF),将人类反馈通过强化学习引入微调,使模型输出更符合人类期望。
不同的微调方法侧重点不同,实际操作中可以结合多种方案,以达到最佳效果。
07
Function Calling
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将
gpt-3.5-turbo-0613
和gpt-4-0613
描述函数,并让模型智能选择输出一个包含调用这些函数参数的JSON对象。不过,Chat completions API本身并不直接调用这些函数,而是生成一个JSON,供用户在自己的代码中调用这些函数。get_stock_price
的函数,该函数接收股票代码作为参数。LLM根据用户的问题,如“请查询股票代码为AAPL的价格”,识别出需要调用get_stock_price
函数,并从问题中提取出参数值“AAPL”。总之,工具调用为LLM提供了调用外部工具的能力,扩展了其应用范围,开发者可以定义各种功能的函数,帮助LLM完成更复杂的任务。
08 AGI
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将
这些技术相互配合,形成了一个多元化、高度协作的AI生态系统。它们共同推动着AI技术的持续进步,为实现AGI的终极目标打下了坚实的基础。随着技术的不断发展和创新,我们离实现真正的通用人工智能的愿景越来越近。
探索大语言模型:理解Self Attention
大模型应用之基于Langchain的测试用例生成
服务粒度的艺术 - 简化架构与避免服务泛滥