随着AI人工智能技术的不断发展,一些领域有关的概念和缩写总是出现在各种文章里,像是Prompt Engineering、Agent 智能体、知识库、向量数据库、RAG 以及知识图谱等等,但是这些技术和概念也的的确确在AI大模型的发展中扮演着至关重要的角色。这些技术元素在多样化的形态中相互协作,共同推动 AI 技术持续向前发展。在这篇文章中,我们将深入探讨包括但不限于以上这些总是与大模型搭配出现的高频词汇,白话了解下这几种技术背后的含义。
以上的技术属于我们先来做个分类,方便大家理解。和大模型技术优化相关的几个概念:Prompt Engineering、RAG、Fine-Tunning、Function Calling、Agent。先来一张简单的类比图,大致体会一下这几种技术的不同定位:
其他的就是AI领域的通用概念:知识库、向量数据库、知识图谱、AGI
Prompt Engineering
纯Prompt技术架构可以看作是最原始、最直观的与大语言模型的交互方式。他在任务效率上也是最高的,有效的Prompt也是可以最大程度的激发模型的好的表现,在小纸条之前的文章中也给大家分享过,它是模型效果优化的两条路径-微调和RAG技术,共同的基础。openAI官网也给出了优化prompt的教程,详情也可以看下小纸条之前的发问。
延展点来讲,Prompt更像是一种激发模型自己内部更好表现的一个指引,因为模型在基于大量数据进行学习时会总结很多in-context-learning的内部规律,而好的Prompt就是可以激发正确的规则去引导模型更好的表现。
在交互上,这也是大语言模型与人类最友好的方式。它就像与一个人对话,你说一句,AI回应一句,简单直接,不需要对模型有什么权重的更新和复杂处理。
Agent
一句话总结,Agent智能体 = 基于大模型的推理结果+结合工具触发下一步行为和交互。
在 AI 大模型时代,Agent可以被抽象的理解为具备基于思考结果并可以与环境进行交互的实产品或能力。我们有时候也叫它“代理”、“智能主体”。
Agent构建在大语言模型的推理能力基础上,对大语言模型的 Planning 规划的方案使用工具执行(Action) ,并对执行的过程进行观测(Observation),保证任务的落地执行。
举个例子来方便理解:
想象一个机器人管家。这个机器人能够理解你的指令,比如“请打扫客厅”,并且能够执行这个任务。机器人管家就是一个agent,它能够自主地感知环境(比如识别哪些地方是客厅),做出决策(比如决定打扫的顺序和方法),并执行任务(比如使用吸尘器打扫)。在这个比喻中,机器人管家是一个能够自主行动和做出复杂决策的实体。
Function Calling
Function calling通常指的是模型调用特定函数的能力,这些函数可以是内置的,也可以是用户自定义的。在执行任务时,模型可能会通过分析问题来决定何时以及如何调用这些函数。例如,一个语言模型在回答数学问题时,可能会使用内部的计算函数来得出答案。Function calling机制允许模型利用外部工具或内部功能来增强其处理特定任务的能力。
Function Calling 机制主要由以下几个关键组件构成:
函数定义:预先定义可调用的函数,包括名称、参数类型和返回值类型等。
函数调用请求:用户或系统发出的调用请求,包含函数名称及所需参数。
函数执行器:实际执行函数的组件,可能是外部的 API 或本地逻辑处理器。
结果返回:函数执行完毕后,返回结果给 ChatGPT,继续对话
举个例子来理解:
想象你正在使用一个智能手机。当你想要拍照时,你会打开相机应用。这个相机应用就是一个Function Calling ,它提供了拍照的功能。你通过点击相机图标来“调用”这个功能,然后你可以拍照、编辑照片等。在这个比喻中,智能手机就是大模型,你想要拍照的行为是大模型判断得到的结论,相机应用就是预定义的函数,而打开相机应用并使用其功能就是基于模型分析结果的Function Calling。
LLM 的 Function Calling 机制极大地扩展了其功能,使其能够在对话中动态调用外部函数,提供实时、个性化和互动的服务。这一机制不仅提升了用户体验,也为开发者提供了强大的工具,帮助他们构建更智能、更强大的对话系统和应用。
Function Calling VS Agent
Function Calling就像是调用一个具体的功能或工具来帮助你完成特定的任务,而Agent则更像是一个能够独立思考和行动的个体,它可以在没有人类直接指导的情况下完成一系列复杂的任务。
在某些高级应用中,Function Calling功能可以视为AI Agent的一种具体行动表现形式,即智能体在执行任务过程中调用外部资源或服务的一种策略。例如,一个具备Function Calling能力的AI Agent在进行对话或解决问题时,能动态地发起函数调用来获取额外的信息或执行特定的操作,从而更好地服务于用户需求。
function_call 更侧重于表示模型直接产生调用函数的具体行为,是模型执行流程中的一个具体步骤或操作。
agent 则是一个更为宽泛的概念,代表的是具有智能行为的整体系统,它包括了感知、推理、决策以及执行等多个环节,而不仅仅是发起函数调用这一动作。
总结来说,function_call 是构建高效、智能Agent的重要组成部分,用于实现Agent对外部世界的操作接口和交互能力,而Agent则是包含了更多复杂逻辑和生命周期管理的完整实体。
RAG(检索增强生成)
一句话总结,RAG就是给大模型它原本数据集中没有的知识。
RAG(Retrieval-Augmented Generation)技术是一种集成检索与生成双重能力的知识增强方案,旨在应对复杂多变的信息查询和生成挑战。在如今的大模型时代背景下,RAG 巧妙地引入非模型训练所使用的外部数据源,比如截止模型训练时使用的数据之后的更为实时的数据,或者是一些没有公开的内部数据等,为大模型赋予了更准确和更实时的信息检索实力,从而显著提升了信息查询和生成的答案的质量。
RAG架构结合了Embeddings和向量数据库技术。Embeddings是将文字转换为向量编码,这些向量存储在向量数据库中,以便于于相似度计算和快速查找。当接收到用户输入时,AI会根据输入向量在数据库中找到最相似的向量,也就是相关的知识片段,随后,这些片段会与大模型的智慧相结合,为用户生成更精确和全面的回答。
Fine-Tuning:深入学习与长期记忆
Fine-tuning(微调)是一种通过特定领域数据对预训练模型进行针对性优化,以提升其在特定任务上的性能的技术。它利用特定领域的数据集对已预训练的大模型进行进一步训练,使模型能够更好地适应和完成特定领域的任务
Fine-tuning的核心原因
定制化功能:微调的核心原因是赋予大模型更加定制化的功能。通用大模型虽然强大,但在特定领域可能表现不佳。通过微调,可以使模型更好地适应特定领域的需求和特征。
领域知识学习:通过引入特定领域的数据集进行微调,大模型可以学习该领域的知识和语言模式,有助于模型在特定任务上取得更好的性能
RAG VS Fine-tuning
知识获取与融合能力:RAG技术为语言模型赋予了无与伦比的知识检索与融合能力,突破了传统Fine-tuning微调方式的局限,使模型的输出质量和知识覆盖面得到了极大的提升。
幻觉减少:RAG系统的设计本质上可以降低其产生幻觉的可能性,因为它基于实际检索到的证据进行响应构建,而Fine-tuning微调虽然可以在一定程度上缓解模型产生幻觉的倾向,但并不能完全消除这一风险
知识库
对于一些垂直领域,或者说企业内部,都不免会遇到需要构建一个符合自身业务特点的垂直或者内部知识库的场景。通过RAG、微调等技术手段,我们可以将通用的大模型转变为对特定行业或者企业内部有着深度理解的“行业专家”,从而更好地服务于特定的业务需求。
知识库的技术架构分为两部分:
离线的知识数据向量化:
知识库的技术架构分为两部分:
1.离线的知识数据向量化:
加载:首先,系统通过文档加载器(Document Loaders)来读取和加载数据或知识库。这可能包括文本文件、PDF、Word文档等格式的文档。
拆分:文本拆分器将大型文档分割成更小的块或段落,这样做的目的是为了让这些小块数据(chunk)能够更容易地被处理和向量化。
向量:对这些拆分后的数据块进行向量化处理,即通过某种算法(如Word2Vec、BERT等)将文本转换为数值向量,这些向量能够捕捉文本的语义信息。
存储:将这些向量化的数据块存储到向量数据库(VectorDB)中。这种数据库专门用于存储和检索向量化的数据,可以高效地进行相似性搜索。
2.在线知识的检索返回:
检索:当用户提出问题时,系统使用检索器根据用户的输入从向量数据库中检索出相关的数据块(Chunk)。检索过程可能涉及到计算用户输入与数据库中向量的相似度,并找出最相关的几个数据块。
生成:检索到的数据块,连同用户的问题一起,作为输入提供给大型语言模型。语言模型根据这些信息生成答案。这个过程会涉及到对检索到的知识进行理解和整合,然后以自然语言的形式回答问题。
向量数据库
向量数据库是一种专门设计用来存储和查询向量数据的系统。这里的向量数据通常是指通过某种算法将原始数据(如文本、语音、图像等)转换成的数值向量形式。
知识库的存储载体往往是向量数据库。在数据存储和检索上,向量数据库以向量空间模型高效存储和检索高维数据,为 AI 大模型和 Agent 智能体提供强有力的数据支持。
向量数据库的定义:
向量数据库是一种专门设计用来存储和查询向量数据的系统。这里的向量数据通常是指通过某种算法将原始数据(如文本、语音、图像等)转换成的数值向量形式。
向量数据库与传统数据库的区别:
传统数据库主要处理结构化数据,例如关系数据库中存储的表格数据。而向量数据库则更擅长处理非结构化数据,这些数据没有固定的格式或结构,例如文本文档、图像文件和音频记录。
向量数据库的应用场景:
在机器学习和深度学习领域,原始数据经常需要被转换成向量形式以便进行进一步的处理和分析。向量数据库在这方面非常有用,因为它们可以高效地处理这些向量化的数据。
向量数据库的优势:
- 高效存储:向量数据库优化了存储机制,可以有效地存储大量的高维向量数据。
- 高效索引:向量数据库使用特殊的索引结构(如KD树、球树等),可以快速定位和检索向量数据。
- 高效搜索:向量数据库能够执行快速的相似性搜索,找到与查询向量最相似的数据点,这对于推荐系统、图像识别和自然语言处理等应用非常重要。
处理复杂数据的能力:
向量数据库在处理包含数值特征、文本嵌入或图像嵌入等复杂数据时表现出色。这些数据在经过向量化处理后,可以利用向量数据库的搜索能力来实现更准确的匹配和检索。
知识图谱
知识图谱本质上是一种叫作语义网络的知识库,即一个具有有向图结构的知识库,图的结点代表实体或者概念,而图的边代表实体/概念之间的各种语义关系。
知识图谱的定义:
知识图谱是一种特殊的数据库,它使用图结构来存储和表示知识。这种数据库基于实体(如人、地点、组织等)和它们之间的关系。
知识图谱的构建过程:
知识图谱本质上是一种叫作语义网络的知识库,即一个具有有向图结构的知识库,图的结点代表实体或者概念,而图的边代表实体/概念之间的各种语义关系。
知识图谱的定义:
知识图谱是一种特殊的数据库,它使用图结构来存储和表示知识。这种数据库基于实体(如人、地点、组织等)和它们之间的关系。
知识图谱的构建过程:
通过语义抽取技术,从文本中识别出实体和它们之间的关系,然后将这些信息组织成树状结构或其他图形结构。
实体具有特定的属性,例如一个人可能有名字、年龄等属性;而关系则描述了实体之间的联系,如“居住在”、“属于”等。
知识图谱的数据模型:
知识图谱采用结构化数据模型,这意味着数据以固定的格式存储,便于管理和查询。每个实体都有其属性和与其他实体的关系。
知识图谱的价值:
知识图谱能够揭示知识领域的动态发展规律,通过数据挖掘、信息处理和图形绘制,它可以展示不同实体之间的复杂联系,不仅能够展示静态的知识结构,还能够揭示知识随时间的演变和发展,在智能推荐、自然语言处理、机器学习等领域都有广泛的应用。尤其在搜索引擎领域,它能够提高搜索的准确性,为用户提供更加精准的搜索结果。AI领域之外,在风控、医疗领域都有很广泛的使用。
实体具有特定的属性,例如一个人可能有名字、年龄等属性;而关系则描述了实体之间的联系,如“居住在”、“属于”等。
AGI
AGI是“Artificial General Intelligence”的缩写,中文意思是“通用人工智能”, 是AI 发展的终极愿景。AGI指的是一种具有广泛认知能力的人工智能系统,它能够像人类一样在多个领域和任务中表现出智能行为,包括但不限于理解、推理、学习、规划、沟通和感知等。
与目前常见的“窄人工智能”(ANI,Artificial Narrow Intelligence)不同,AGI能够处理多种不同的问题,而不仅仅是针对特定任务设计的算法。窄人工智能通常在特定领域内表现出色,例如语音识别、图像识别或棋类游戏等,但它们缺乏跨领域的通用性和适应性。
AGI的关键特征包括:
- 自主学习:AGI能够从经验中学习,并不断改进自己的性能。
- 跨领域能力:AGI能够处理多种不同类型的问题,而不仅仅是单一领域。
- 理解复杂概念:AGI能够理解和处理抽象概念、隐喻和复杂逻辑。
- 自我意识:虽然这一点在学术界有争议,但一些观点认为AGI可能发展出某种形式的自我意识或自我反思能力。
目前,AGI仍然是人工智能研究的前沿领域,尚未实现。许多研究者正在探索如何构建这样的系统,但存在许多技术和伦理上的挑战。