0. 引入

随着 ChatGPT、DeepSeek 等大语言模型的迅速崛起,AI技术已深度融入我们的日常生活与工作场景。对于程序员群体而言,大语言模型在代码生成领域的效率提升尤为显著,拥抱AI技术已成为必然趋势。

那么,究竟什么是大模型?频繁出现的PromptRAGAgent等专业术语又该如何理解?本文将针对大模型及其相关概念进行入门级的介绍,旨在于建立对大模型的基础认知与理解。

1. 基础概念扫盲

在谈到AIArtificial Intelligence,人工智能)时,可能会听到模型、算法、训练、推理等概念。

用一个猫狗分类的例子来简单说明上述概念。例如:给定一张猫或狗的图片,刚出生的小宝宝是无法区分的。

  • 模型:刚出生的小宝宝。

  • 训练教模型认识猫狗的一个过程。给模型展示大量不同的猫狗的图片,并告诉ta猫狗的不同之处,猫狗的特征是什么,如:猫的尾巴、耳朵,狗的鼻子、体型等等。模型就能根据其学到的知识,来做出区分。

  • 算法用什么方法来教模型。训练模型时使用的具体方法技术,训练过程中,算法会知道模型如何学习、处理图片特征。

  • 推理:模型学习完毕后,给模型一张新的猫or狗的图片,模型根据学到的知识区分猫狗。模型解题的过程就是推理

  • 数据集模型学习的知识。一般分为训练集和测试集,训练集用于训练模型;测试集用于验证模型学习的效果。

  • 参数:参数决定了模型如何根据输入数据生成预测或输出结果。模型本质上是一个函数(比如最简单的 y=wx+b),其中的 w(权重)和 b(偏置)就是模型的参数。通过分析大量数据样本(x, y),模型会自动调整这些参数,使得它能够尽可能准确地拟合数据,找到最能解释输入和输出之间关系的参数值。

  • 泛化能力:模型对于未见过的新数据的预测能力。

  • 过拟合:模型对训练数据学习得过于精确。模型变成了“书呆子”,只会死记硬背,不会融会贯通。

  • 神经网络:模拟人脑认知的分层学习系统,通过不断调整各层"神经元"之间的连接参数,从大量数据中逐步学会区分猫狗,最终能对新数据做出智能判断。

2. 关于大模型

2.1 什么是大模型?

大模型(Large Model),或者称为基础模型 (Foundation Model),指的是包含超大规模参数(通常在十亿个以上)的神经网络模型。这些参数使得大模型能够处理和理解复杂的任务,如自然语言处理、图像识别等。

“大” 主要体现在以下几个方面:

  • 参数规模大
  • 架构规模大
  • 训练数据大
  • 算力需求大

以上“大”衍生出模型能力的强大。

我们常说到的大模型,指的是最常用的一类,大语言模型LLM,Large Language Model),如:ChatGPT、DeepSeek等都是大语言模型。

:本文后续的大模型均代指大语言模型LLM)

2.2 大模型两大能力

2.2.1 涌现能力

涌现能力Emergent Abilities):训练数据规模及参数数量的提升,大模型解锁了一系列新的能力,如:上下文学习、常识推理、数据运算、代码生成等能力。脑子突然“开窍”了,不再仅仅是复述知识,而是能够理解知识,并且能够发散思维。

2.2.2 泛化能力

泛化能力Generalization Abilities):在面对未见过的新任务、新领域或新数据时,仍能有效完成任务的能力。这种能力使模型不仅限于复现训练数据中的模式,而是能灵活适应多样化场景。

3. Prompt工程

随着大语言模型(LLM)的出现,提示工程(Prompt Engineering)变得越来越重要。很多人将 Prompt 视为大模型的咒语,其好坏直接影响模型输出的结果。

3.1 什么是Prompt?

Prompt(提示词):发送给大模型的指令,通常以自然语言文本的形式出现。核心目的在于清晰地描述模型应该执行的任务,以引导模型生成特定的文本、图像、音频等内容。

3.2 什么是Prompt工程?

Prompt 提示词很大程度决定生成回答的质量。

Prompt工程Prompt Engineering,提示工程):专注于如何编写Prompt的技术。

一个高质量的Prompt包含以下基本要素:

  • 任务说明:向模型明确提出具体的任务要求。任务说明应当清晰、直接,并尽可能详细地描述期望模型完成的任务。

  • 上下文:向模型提供的任务相关背景信息,用以增强模型其对任务的理解以及提供解决任务的思路。如:特定的知识前提、目标受众的背景、相关任务的示例等。

  • 问题:向模型描述用户的具体问题或需要处理的信息。

  • 输出格式:期望模型给出的回答的展示形式。包括输出的格式,以及任何特定的细节要求,如简洁性或详细程度。

3.3 如何编写一个好的Prompt

核心技巧:把大模型当人看

3.3.1 编写规范的Prompt

编写规范的Prompt是与大语言模型进行有效沟通的基础。

经典的Prompt通常由任务说明上下文问题输出格式等部分中的一个或几个组成以下是规范编写Prompt需要满足的要求。

3.3.1.1 任务说明要明确

清晰、具体的任务说明能够保证模型准确理解任务要求,产生符合预期的输出。

以下是任务编写的技巧:

  • 使用明确的动词:选择能够清晰表达动作的动词。如:“判断”、“生成”等;避免使用模糊的动词,如:“处理”、“操作”等。
  • 具体的名词:使用具体的名词来定义任务的输出或目标
  • 简洁明了:任务说明应简洁且直接,避免冗长或复杂的句子结构,使模型能够快速抓住任务的核心要求。
  • 结构化布局:在较长的 Prompt 中,将任务说明放置在开头和结尾,因为模型通常更关注这些部分的信息。

3.3.1.2 上下文丰富且清晰

丰富且清晰的上下文能够显著提升模型的回答准确率。

丰富体现在:内容可以是与问题直接相关的背景信息、具体的演示示例、或是对话历史等。 清晰体现在:上下文信息必须与问题紧密相关,避免包含冗余或是不必要的信息。

3.3.1.3 输出格式要规范

规范的输出格式对于确保模型的输出的可用性至关重要。

通过指定明确的输出格式,使模型的输出结构化,便于下游任务直接提取、使用生成内容。或者直接提供输出格式的具体示例,使模型按照期望的输出格式输出内容。

3.3.1.4 排版要清晰
  • 使用一致的分隔符:选择并坚持使用一种或集中分隔符来区分不同的prompt部分。如:# - 、 等;

  • 合理使用空白、缩进;增强Prompt可读性,帮助模型区分不同的内容块;

  • 清晰的标题和子标题:帮助模型快速识别每个部分的主题;

3.3.2 合理归纳提问
  • 复杂问题拆解:将复杂问题拆解成更小、更易于理解的子问题,引导模型逐一回答,确保子问题得到充分考虑和解答。随后将子问题的答案汇总,形成全面回答。

  • 追问:根据回答去做追问。

3.3.3 善用心理暗示
  • 角色扮演:为大模型设定一个详尽的角色。在指令中包含具体属性、职责、知识和技能。

  • 情景代入:将特定情境下所需的专业知识、历史背景等信息嵌入到模型的响应中。

 

4. AI Agent

如果最近有关注科技新闻,一定会被一款名为 Manus 的AI Agent刷屏。Manus一经发布,就引起广泛关注,内测资格甚至一度被炒至高价。到底什么是AI Agent?AI Agent与大模型又是什么关系?

4.1 为什么需要AI Agent?

设想一个场景,我们想要规划一次跨国旅行,涉及到机票的预定、酒店的选择、当地天气以及景点推荐等方面。

如果借助大模型帮助我们规划的话,需要我们自己先思考,将任务拆分成订酒店、订机票、推荐景点等任务,然后我们需要根据拆分好的任务,不断输入任务指令,不断调整,才能完成这件事。任务是交互式的,即通过提示词一步一步来回答问题。

如果有一个智能助手,也就是Agent,我们只需要给出“规划一次跨国旅行”的指令,由助手帮助我们拆解任务、执行任务,不需要我们自己动脑子、做格外的操作,我们只关心助手最终反馈的结果。

总结来说,需要Agent的理由如下:

  • 能够处理复杂任务:单一工具(如:LLM)无法直接完成多步骤、多工具协作的任务;
  • 能够自主决策:=能根据用户偏好(如预算、时间)自动调整计划,例如优先选择低价航班或高评分酒店;
  • 能够弥补大模型的不足:大模型无法直接访问实时数据(如最新航班价格),但Agent可以通过API获取。

4.2 什么是AI Agent?

如果查询Agent的中文释义,意思是:代理人,代理商,或是经纪人。

可以将Agent理解为一个中间人的角色,代替别人做事。如:艺人的经纪人帮助艺人去完成商务活动的谈判、对接等工作,无需艺人自己操心,艺人只关心结果。

AI Agent:可以理解为用户和大模型(LLM)之间的中间人,由Agent代替用户去操作大模型。用户只需要给出简单指令,Agent便会自己独立解决问题,而不是“指哪打哪”,整个过程无需用户的干预。

4.2 AI Agent与LLM是什么关系?

Agent = LLM(大模型)+ Planning(规划)+ Memory(记忆)+ Tools(工具)

AI Agent是一种能利用大模型进行自主任务规划决策执行的系统。如果把Agent看作一个人,那么大模型(LLM)就是Agent的大脑

如果说大模型是一本百科全书,而AI Agent就像一个办事能力强的助手。助手会根据需求,把任务拆解成多个步骤,并主动找到资源或工具来完成任务。

Agent关键组成部分如下:

  • 规划(PlanningAgent 通过规划来决定如何实现目标,把大任务拆解为子任务,并规划执行任务的流程;并在任务执行的过程中进行思考和反思,决定是继续执行任务,或判断任务完结并终止运行。

  • 记忆(MemoryAgent 拥有的存储器,可用来存储短期记忆或长期记忆。

    • 短期记忆:执行任务过程中的上下文,会在子任务的执行过程产生和暂存,在任务完结后被清空;
    • 长期记忆:如记录使用者的任务历史、个人信息、兴趣偏好等,长时间保留的信息,一般存到外部数据库。
  • 工具(ToolsAgent 的手脚。可以自动调用各种工具API,例如:计算器、搜索工具、代码执行器、数据库查询工具等。有了这些工具API,可以扩展Agent的能力,执行任务。

  • 行动(Action:智能体根据规划的结果采取的实际行动。

总结来说:LLM 扮演了 Agent 的 “大脑”,在 Agent 这个系统中提供推理、规划等能力。

5. 检索增强生成(RAG)

5.1 为什么需要RAG?

举个常见的例子:让大模型比较13.8和13.11哪个大,它可能会很自信地告诉你13.11更大。这种明显违背数学常识的回答,暴露了大模型在回答某些问题时,可能会存在一本正经胡说八道的情况。

正如上述例子展示的那样,大模型并非无所不能,有些时候会胡言乱语,即产生“幻觉”。可以从两方面去理解幻觉:

  • 模型自身导致的“幻觉”。大模型实际上是依赖于统计概率来预测下一个最可能的词语,而非基于事实查询。由于训练数据和参数学习上的不足,可能会出现“幻觉”,即生成看似合理实则逻辑混乱或者违背事实的回答。

  • 训练数据导致的“幻觉”。大模型的回答都是从已有的知识(数据)中学习到的,而知识可能存在以下问题:

    • 知识过时:训练模型时所用的数据是过时的数据;

    • 知识边界:垂直领域或者私有的知识,大模型可能不清楚;

    • 知识偏差:训练数据的正确性无法保证,可能存在错误的知识。

针对大模型存在的“幻觉”问题,可以通过增强检索生成RAG)技术来补足短板,从而提高大模型的回答质量。

5.2 什么是RAG?

RAGRetieval-Augmented Generation,检索增强生成):建立一个外部数据库,将大模型不知道的知识存储在外部数据库中,供大模型进行检索调用,用于提高大模型回答的质量。

用户提问后,根据用户的问题到外部数据库中检索得到上下文context),得到的上下文与用户的问题整合后,作为Prompt提示词送入大模型,供大模型搜索答案。

5.3 RAG三大好处

  • 减少大模型的幻觉;
  • 为大模型提供最新的知识,帮助大模型生成质量更高的答案;
  • 相较于模型微调,效率更高 、成本更低。

5.4 RAG工作流程

5.4.1 基础概念扫盲
5.4.1.1 向量嵌入

向量嵌入(Vector Embeddings):将复杂数据(如:图像、文本、音频等)转换为数值向量的过程和结果。向量通常是高维的数字数组,向量中可以体现数据间的语义信息,语义相近的数据向量值接近,在向量空间中距离更近。

例如,给定三个词Cat、kitty、Apple,将这三个词转换为向量,可以看到,语义相近的Cat、kitty向量值比较接近,而Apple与其他词值相差较大,体现在向量空间中,语义相近的词距离更近

图源@Jim大表哥-AI讲解

5.4.1.2 嵌入模型

嵌入模型(Embedding Model):将复杂数据(如:词语、句子或文档)等转换为向量的技术。

5.4.1.3 向量数据库

向量数据库(Vector Database):用于存储和检索高维向量数据的数据库,处理与相似性搜索相关的任务,通过语义来搜索。可作为AI的长期记忆库。

向量数据库与传统数据库区别如下:

向量数据库关系数据库
数据类型存储高维向量数据结构化数据
查询方式相似性搜索精确匹配和范围查询
应用场景AI相关管理系统等
代表数据库Milvus、Elasticsearch等MySQL、Oracle等
5.4.1.4 相似性搜索

相似性搜索Similarity Search):利用向量空间中对象间的接近程度来识别和检索相似的对象,这种基于相似度检索的方法,就是相似性搜索。

5.4.2 RAG工作流程详解

总体流程可分为四步;

  • 构建外部知识库:针对知识库中各类格式的文档(如:PDF、Word等)进行处理。对知识库中的文档进行分割(Split),将分割后的文本块(Text Chunk)利用嵌入模型转为嵌入向量,存储到向量数据库中。

    文档分割的质量决定了检索的准确性和生成模型的效果。

  • 检索Retreive): 将用户输入的问题利用嵌入模型转换为向量,到向量数据库中进行相似性搜索,找到相似度最大的向量,输出为上下文(Context)。

  • 增强Augment):上下文与用户问题结合作为提示词(Prompt)送入大模型。

  • 生成Generation):大模型根据提示词(Prompt)生成回答,生成的回答返回给用户。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐