图解AI核心技术:大模型、RAG、智能体、MCP

作者:京东云开发者日期:2025/10/17

简介

本文整理了来自Daily Dose of Data Science最热门或最新的文章,其中极具特色的动图以生动形象的方式,帮助我们更好的理解AI中的一些核心技术,希望能够帮助大家更好的理解和使用AI。

大模型

Transformer vs. Mixture of Experts

混合专家 (MoE) 是一种流行的架构,它使用不同的“专家”来改进 Transformer 模型。
下图解释了它们与 Transformers 的区别。

image.png

  • Transformer 使用前馈网络。
  • MoE 使用专家,它们是前馈网络,但与 Transformer 中的网络相比规模较小。在推理过程中,会选择一部分专家。这使得 MoE 中的推理速度更快。

Fine-tuning LLMs

传统的微调(如下图所示)对于 LLM 来说是不可行的,因为这些模型具有数十亿个参数并且大小为数百 GB,并且并非每个人都可以使用这样的计算基础设施。

image.png值得庆幸的是,今天我们有许多最佳方法来微调 LLM,下面描述了五种流行的技术:

image.png

  • LoRA :添加两个低秩矩阵 A ,以及 B包含可训练参数的权重矩阵。无需进行微调W,只需调整这些低秩矩阵中的更新即可。
  • LoRA-FA :虽然 LoRA 显著减少了可训练参数的总量,但它仍然需要大量的激活记忆来更新低秩权重。LoRA-FA(FA 代表 Frozen-A)会冻结矩阵,A并且仅更新矩阵B。
  • VeRA :在 LoRA 中,每一层都有一对不同的低秩矩阵A和B,并且这两个矩阵都经过训练。然而,在 VeRA 中,矩阵A和B是冻结的、随机的,并在所有模型层之间共享。VeRA 专注于学习较小的、特定于层的缩放向量,记为b和d,它们是此设置中唯一可训练的参数。
  • Delta-LoRA :除了训练低秩矩阵之外,W还会对矩阵进行调整,但不是以传统方式。相反,将两个连续训练步骤中低秩矩阵乘积与之间的差值(或增量)A添加B到W。
  • LoRA+ :在 LoRA 中,矩阵A和B都以相同的学习率更新。作者发现,为矩阵设置更高的学习率B可以获得更优的收敛效果。

RAG(检索增强生成)

传统RAG

传统RAG系统存在以下一些问题:

image.png

  • 这些系统检索一次,生成一次。这意味着如果检索到的上下文不够,LLM就无法动态搜索更多信息。
  • RAG 系统可以提供相关的上下文,但无法通过复杂的查询进行推理。如果查询需要多个检索步骤,传统的 RAG 就显得力不从心了。
  • 适应性较差。LLM 无法根据实际问题调整策略。

Agentic RAG

Agentic RAG 的工作流程如下:

image.png如上所示,我们的想法是在 RAG 的每个阶段引入代理行为。

我们可以把智能体想象成能够主动思考任务的人——规划、调整、迭代,直到找到最佳解决方案,而不仅仅是遵循既定的指令。LLM 的强大功能使这一切成为可能。

让我们逐步理解这一点:

  • 步骤 1-2)用户输入查询,代理重写它(删除拼写错误,简化嵌入等)
  • 步骤 3)另一个代理决定是否需要更多细节来回答查询。
  • 步骤4)如果不是,则将重写的查询作为提示发送给LLM。
  • 步骤 5-8) 如果答案是肯定的,另一个代理会查看其可以访问的相关资源(矢量数据库、工具和 API 以及互联网),并决定哪个资源有用。检索相关上下文并将其作为提示发送给 LLM。
  • 步骤9)以上两条路径中的任意一条都会产生响应。
  • 步骤 10)最后一个代理检查答案是否与查询和上下文相关。
  • 步骤11)如果是,则返回响应。
  • 步骤 12)如果不是,则返回步骤 1。此过程持续几次迭代,直到系统承认它无法回答查询。

这使得 RAG 更加稳健,因为在每一步中,代理行为都能确保个体结果与最终目标保持一致。

Corrective RAG

Corrective RAG(CRAG)是改进 RAG 系统的常用技术。它引入了对检索到的文档进行自我评估的步骤,有助于保留生成的响应的相关性。
以下是其工作原理的概述:

image.png

image.png

  • 首先根据用户查询搜索文档。
  • 使用 LLM 评估检索到的上下文是否相关。
  • 仅保留相关上下文。
  • 如果需要的话,进行网络搜索。
  • 聚合上下文并生成响应。

RAG 的 5 种分块策略

image.png

智能体

5种智能体设计模式

Agentic behaviors允许 LLM 通过结合自我评估、规划和协作来改进他们的输出!
下图展示了构建 AI 代理时采用的 5 种最流行的设计模式。

image.png

反射模式

LLM会审查其工作以发现错误并不断迭代直到产生最终的响应。

工具使用模式

工具允许 LLM 通过以下方式收集更多信息:

  • 查询矢量数据库
  • 执行 Python 脚本
  • 调用API等

这很有帮助,因为 LLM 不仅仅依赖于其内部知识。

ReAct(Reason and Action)模式

ReAct 结合了以上两种模式:

  • 代理可以反映生成的输出。
  • 它可以使用工具与世界互动。

这使得它成为当今使用最强大的模式之一。

规划模式

AI 不会一次性解决请求,而是通过以下方式创建路线图:

  • 细分任务
  • 概述目标

这种战略思维可以更有效地解决任务。

Multi-agent模式

在此设置中:

  • 我们有几个agent。
  • 每个agent都被分配了专门的角色和任务。
  • 每个agent还可以访问工具。

所有agent共同努力以交付最终结果,同时在需要时将任务委派给其他agent。

智能体系统的5个等级

Agentic AI 系统不仅仅生成文本;它们还可以做出决策、调用函数,甚至运行自主工作流程。
该图解释了人工智能代理的 5 个级别——从简单的响应者到完全自主的代理。

image.png

  1. 基本响应器仅生成文本
  2. 路由器模式决定何时采取路径
  3. 工具调用选择并运行工具
  4. 多代理模式管理多个代理
  5. 自主模式完全独立运作

MCP

Function calling & MCP

在 MCP 成为主流(或像现在这样流行)之前,大多数 AI 工作流程依赖于传统的函数调用。
现在,MCP(模型上下文协议)正在改变开发人员为代理构建工具访问和编排的方式。
以下是解释函数调用和 MCP 的视觉说明:

image.png

Function calling(函数调用)

函数调用是一种机制,它允许 LLM 根据用户的输入识别它需要什么工具以及何时调用它。
它通常的工作方式如下:

  • LLM 收到来自用户的提示。
  • LLM 决定其所需的工具。
  • 程序员实现程序来接受来自 LLM 的工具调用请求并准备函数调用。
  • 函数调用(带有参数)被传递给处理实际执行的后端服务。

MCP(模型上下文协议)

函数调用关注的是模型想要做什么,而 MCP 关注的是如何让工具变得可发现和可用——尤其是跨多个代理、模型或平台。
MCP 无需在每个应用程序或代理中都安装硬接线工具,而是:

  • 标准化工具的定义、托管和向 LLM 公开的方式。
  • 使 LLM 能够轻松发现可用的工具、了解其模式并使用它们。
  • 在调用工具之前提供批准和审计工作流程。
  • 将工具实施与消费的关注点分开。

MCP & A2A

Agent2Agent (A2A) 协议让 AI 代理可以连接到其他代理。

image.png

  • MCP 为代理提供访问工具的权限。
  • 而 A2A 允许代理与其他代理连接并以团队形式协作。

image.png

Next thing

在代理领域:

  • MCP 标准化了代理到工具的通信。
  • Agent2Agent 协议标准化了 Agent 到 Agent 的通信。

但还缺少一件东西……

image.pngAG-UI(代理-用户交互协议)标准化了后端代理和前端 UI 之间的交互层(下图绿色层)。

image.png


图解AI核心技术:大模型、RAG、智能体、MCP》 是转载文章,点击查看原文


相关推荐


一次慢接口背后,竟藏着40+种可能!你中过几个
uzong2025/10/16

从客户端到数据库的全链路性能瓶颈系统性排查指南 本文系统梳理了导致接口响应缓慢的40余种潜在原因,涵盖网络、网关、JVM、数据库、中间件等多个层面,旨在帮助开发者建立完整的性能问题排查思维模型,适用于线上故障定位与技术面试准备 作者:面汤放盐(公众号) || uzong 时间:2025-10-15 转载请备注声明 为什么会问这个问题 问题:现在生产上有一个慢接口,请分析一下这个慢接口,可能是系统中哪些环节导致的,大致原因是什么,可以是一些很细的案例,系统性的分析一下,越多越好,注意仅从理论


本地搭建 Jekyll 环境
爪娃侠2025/10/15

1、安装依赖 Windows:安装RubyInstaller(勾选「Add Ruby to PATH」)Mac:自带 Ruby,需更新 gem:sudo gem update --systemLinux:sudo apt-get install ruby-full 我个人Mac电脑安装时出现版本报错: 原因: macOS 系统自带的 Ruby 版本过低(当前是 2.6.10),而新版rubygems-update要求 Ruby 版本≥3.2.0,导致直接更新失败。 解决:用Ruby 版本管理工具


Hello 算法:让前端人真正理解算法
灵感__idea2025/10/13

每个系列一本前端好书,帮你轻松学重点。 本系列来自上海交通大学硕士,华为高级算法工程师 靳宇栋 的 《Hello,算法》 程序员圈儿有两种怪象: 1、人人称工程师,但少有人能真正担起一项“工程”。 2、掌握算法本是理所应当,实际寥寥无几。 一直以来,算法好像跟前端开发没多少关联,顶多用来应付面试。 本系列要做的,就是同大家一起啃下这块硬骨头,真正理解算法。 算法是什么 算法是什么,没有标准答案。 先看几个实际案例: 查字典 在字典里,每个汉字都对应一个拼音,而字典是按照字母顺序排列的。 查找”


深入浅出 C# MVC:从基础实践到避坑指南(附完整代码示例)
William_cl2025/10/12

目录 1. 引言:C# MVC 为何仍是企业级开发的优选?2. C# MVC 核心知识树(附可视化图谱)3. 实战上手:从零搭建学生管理系统(完整代码)3.1 第一步:创建 MVC 项目3.2 Model 层:定义数据实体与验证规则3.3 Controller 层:处理请求与业务逻辑3.4 View 层:渲染页面与用户交互3.4.1 列表页(Index.cshtml)3.4.2 添加表单页(Create.cshtml) 3.5 运行效果 4. 开发必避:5 个高频 “坑点” 及解


【Node】认识一下Node.js 中的 VM 模块
你的人类朋友2025/10/10

前言 今天介绍 Node.js 中的 VM(Virtual Machine)模块的基本概念和使用方法。 很多人不太了解他,比如在下 所以本文也不会过于深入,会偏向入门! 小目标:看完之后向自己解释一下:啥是 VM 模块?它有什么作用? 什么是 VM 模块 VM 模块是 Node.js 内置的模块,用于在 V8 虚拟机上下文中编译和执行 JavaScript 代码。 说人话就是,VM 模块允许你在隔离的环境中运行 JavaScript 代码。 核心功能 这边用代码进行举例子,后面会介绍具体的使用


OSI 七层模型
日更嵌入式的打工靓仔2025/10/9

一、OSI 七层模型的核心定位与价值​ OSI 七层模型(Open Systems Interconnection Reference Model)是国际标准化组织(ISO)于 1984 年制定的网络通信体系结构标准,其核心目标是打破不同厂商设备的通信壁垒,通过分层化设计实现 “功能解耦、接口标准化”。该模型将网络通信的复杂流程拆解为七个逻辑层次,每层通过定义明确的 “服务原语”(Service Primitive)为上层提供服务,并通过 “协议数据单元(PDU)” 与下层交互,确保不同系统间


【前端工程化】脚手架篇 - 模板引擎 & 动态依赖管理脚手架
ObjectX不知名程序员2025/10/7

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣 在日常工作中,我们经常为会遇到需要创建新项目的需求,为了统计代码风格,项目配置,提升效率,我们可以创建一个cli工具,帮助我们实现这样的功能。你也可以搭建一个自己用,毕竟省下来的时间都是自己的 🥑 你能学到什么? 希望在你阅读本篇文章之后,不会觉得浪费了时间。如果你跟着读下来,你将会学到: cli工具的基本搭建流程 如何通过模板引擎实现可选依赖 模板系统如何设计 如何根据模板引擎生成所需项目 熟悉一个组件库的基本结构 熟悉一


在AI技术快速实现创意的时代,挖掘游戏开发框架新需求成为关键
qife1222025/10/6

内容描述 核心功能定位:该项目是一个专为经典游戏主机设计的增强型JavaScript运行环境,旨在为用户提供完整的自制软件开发工具包。它通过简化开发流程,让开发者能够使用JavaScript这一简单语言创建游戏和应用程序,无需编译过程,只需编写脚本即可快速测试。 关键应用场景:主要应用于经典游戏主机的自制软件开发,包括游戏创作、应用程序开发、图形渲染、音频处理、网络通信等多个领域。开发者可以利用该环境快速原型设计和开发各类交互式内容。 功能特性 多模块支持:系统提供丰富的功能模块,


【Matlab】matlab代码实现最小凸包
智慧浩海2025/10/4

实现最小凸包的算法有多种方法,其中一种常见的方法是使用Graham扫描算法。下面是用Matlab实现Graham扫描算法找到最小凸包的示例代码: function [convexHull] = grahamScan(points) % 找到包含所有点的最小凸包 n = length(points); % 找到y坐标最小的点作为起始点 [~,idx] = min(points(:,2)); startPoint = points(idx,:);


【深入浅出PyTorch】--3.1.PyTorch组成模块1
西柚小萌新吖(●ˇ∀ˇ●)2025/10/3

通过本节学习,你将掌握: 机器学习/深度学习任务的整体流程。各个阶段在任务中的作用与实现方式。深度学习与传统机器学习在实现上的关键差异。PyTorch 如何支持深度学习任务的模块化实现。 二、机器学习任务的标准流程 步骤内容说明1. 数据预处理- 统一数据格式 - 清除异常值 - 进行必要的数据变换(如归一化、标准化) - 划分数据集:训练集、验证集、测试集 - 常见方法:按比例随机划分、KFold 交叉验证 - 工具支持:sklearn.model_selection.train_t

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0