从LLM到RAG一文带你搞明白ai的核心概念!
前言:
当前ai可谓是非常非常火呀,那作为程序员的我们也只有顺应时代发展,学会接受ai了,这篇文章就带你了解清楚ai的一些专业词语。
1. LLM(大语言模型)
定义
LLM 是一种基于 Transformer 架构的巨型神经网络,通过在海量文本(互联网、书籍、代码等)上进行自监督学习,掌握了语言的语法、知识、推理和上下文理解能力。它可以接收文本输入(prompt),并生成连贯的、有意义的文本输出。
实现方式
-
预训练:使用自回归目标(预测下一个 token)在 TB 级语料上训练,学习语言统计规律和世界知识。
-
指令微调:用“指令-回答”对进一步训练,让模型学会遵循人类指令。
-
对齐:利用人类反馈强化学习,使模型输出更符合人类偏好(如安全性、有用性)。
-
推理:部署时,模型接收 token 序列,通过多次前向传播,自回归地生成下一个 token,直到满足停止条件。
例子
GPT-4、Claude 3.5、Gemini、Llama 3 等。当你问“介绍一下北京”,LLM 会生成一段介绍文字。
2. Token(词元)
定义
Token 是 LLM 处理文本时的最小单位。它可以是单词、子词(subword,如“ing”)、或字符。文本被切分成 token 后,每个 token 对应一个唯一的数字 ID,模型在 token ID 序列上进行计算。
实现方式
-
分词器(Tokenizer):使用如 Byte Pair Encoding(BPE)、WordPiece 等算法,将原始文本映射为 token 序列。
-
模型内部将所有 token ID 嵌入为向量,然后进行注意力计算。输出也是 token 的概率分布,通过采样得到下一个 token。
例子
句子 “I love AI” 可能被分词为 ["I", " love", " AI"] 三个 token。
中文 “人工智能很棒” 可能被分为 ["人工", "智能", "很棒"] 或更细粒度的 token。
3. Context(上下文)
定义
Context 是 LLM 在当前交互中“能看到”的所有信息的总和。通常包括历史对话记录、系统提示、用户最新输入、工具返回的结果等。模型根据 context 来生成下一步输出。
实现方式
-
在代码层面,context 通常是一个消息列表(如
[{role: "user", content: ...}, {role: "assistant", content: ...}])。 -
在送入模型前,这些消息会被格式化成一个 token 序列,并可能截断至模型支持的最大长度(如 128k tokens)。
-
通过 attention mask 机制,模型可以“看到” context 中所有的 token,从而理解当前状态。
例子
连续对话:
-
用户:北京天气如何?
-
助手:今天晴天,25℃。
-
用户:那上海呢?
此时 context 包含了前两轮对话,所以模型知道“那”指的是天气。
4. Prompt(提示)
定义
Prompt 是用户输入给 LLM 的指令或问题,是触发模型生成内容的起点。它可以是一个简单的问题,也可以是一段复杂的角色设定、示例说明、约束条件等。
实现方式
-
在 API 调用中,prompt 通常作为
messages数组的一部分,或者作为prompt字段直接传入。 -
对于零样本(zero-shot)任务,prompt 只包含指令;对于少样本(few-shot),prompt 会包含几个示例。
-
系统提示(system prompt)也是一种特殊的 prompt,用于设定模型的行为模式。
例子
-
简单 prompt:
“将下面句子翻译成英文:我爱编程。” -
复杂 prompt:
“你是一个资深律师,请分析以下合同条款的风险点,用中文回答。”
5. Tool(工具)
定义
Tool 是一个可以被 LLM 调用的外部函数,用于执行某种具体操作,如查询数据库、调用 API、发送邮件、执行计算等。LLM 本身不执行这些操作,而是通过工具调用来扩展能力。
实现方式
-
在开发时,工具被定义为函数,并配有名称、描述和参数结构(JSON Schema)。
-
当 LLM 判断需要调用工具时,它会输出一个特殊的函数调用 token,包含工具名称和参数。
-
系统负责执行该函数,并将结果返回给 LLM,LLM 再基于结果继续推理。
例子
-
get_weather(city)→ 返回天气信息。 -
send_email(to, subject, body)→ 发送邮件并返回成功/失败状态。
6. MCP(模型上下文协议)
定义
MCP(Model Context Protocol)是一种开放标准,用于统一 LLM 应用与外部工具、数据源之间的交互方式。它定义了一套规范的接口,使得 Agent 可以通过标准化的方式发现并调用任何符合 MCP 的服务器提供的工具。
实现方式
-
MCP 服务器暴露工具列表及调用方法,遵循 JSON-RPC 或 RESTful 规范。
-
MCP 客户端(通常集成在 Agent 中)通过协议与服务器通信,获取工具描述,并执行调用。
-
这样,Agent 无需为每个工具编写专属适配代码,只需支持 MCP 即可调用大量生态工具。
例子
一个 MCP 服务器提供 search_web 和 get_stock_price 两个工具。任何支持 MCP 的 Agent 都能直接使用这些工具,就像使用 USB 设备一样即插即用。
7. Agent(智能体)
定义
Agent 是一个自主的、基于 LLM 的系统,它能够感知环境(通过 context),做出决策(通过 LLM 推理),执行动作(通过调用工具),并持续循环,直到完成复杂任务。Agent 通常具备规划、记忆、工具使用和自我反思能力。
实现方式
-
核心是一个主循环:
-
将当前 context(含历史、工具结果)发给 LLM。
-
LLM 决定下一步:是直接回答,还是调用某个工具。
-
如果是工具调用,执行工具,将结果加入 context,回到步骤 1。
-
如果是直接回答,则结束或等待新输入。
-
-
高级 Agent 可能包含工作流引擎、多角色协作、记忆存储等模块。
例子
一个旅行规划 Agent:用户说“帮我规划一个北京三日游”。Agent 会依次调用航班查询、酒店预订、景点推荐、天气查询等工具,最后整合成一份完整行程,并询问用户是否满意。
8. Agent Skill(智能体技能)
定义
Agent Skill 是一组相关工具的封装,形成一个高层次的、可复用的能力单元。Skill 不仅包含工具实现,还包含元数据(描述、触发条件、依赖关系等),使得 Agent 可以更智能地选择和使用能力。
实现方式
-
Skill 通常是一个文件夹或模块,包含:
-
skill.json:描述技能的名称、版本、作者、用途、需要调用的工具列表。 -
工具实现代码(或指向 MCP 服务的配置)。
-
-
Agent 在启动时加载所有可用 Skill,并根据用户意图动态激活合适的 Skill。
例子
-
邮件技能(EmailSkill):包含
send_email、search_email、draft_reply等工具。当用户说“帮我回复昨天那封关于会议的邮件”时,Agent 会激活 EmailSkill,并自动使用其中的工具。 -
数据分析技能:包含
query_database、generate_chart、statistical_analysis等工具。
RAG(检索增强生成)
定义
RAG 是一种结合信息检索与大语言模型生成的技术框架。它的核心思想是:在 LLM 生成答案之前,先从外部知识库中检索与问题相关的信息片段,然后将这些信息作为上下文(context)提供给 LLM,让 LLM 基于真实、最新的外部知识生成回答,而不是仅依赖模型参数中存储的“记忆”。这样可以显著减少模型“幻觉”(编造事实),并让回答更加准确、可溯源。
实现方式
RAG 通常包含两个主要阶段:
-
索引阶段(离线)
-
将知识库中的文档切分成块(chunk)。
-
对每个块用嵌入模型(embedding model) 生成向量(即语义向量)。
-
将这些向量存入向量数据库(如 Pinecone、Milvus、Chroma 等),并建立索引,方便快速检索。
-
-
检索与生成阶段(在线)
-
当用户提出问题时,用同样的嵌入模型将问题转为向量。
-
在向量数据库中检索与问题最相似的 top-k 个文档块(基于余弦相似度等)。
-
将这些检索到的文档块作为上下文,与原始问题一起组合成 prompt,送给 LLM。
-
LLM 根据提供的上下文生成最终答案。
-
此外,现代 RAG 系统还会加入重排序(rerank)、上下文压缩、多轮检索等优化手段,以提升准确性和效率。
例子
假设你是一家公司的内部客服机器人,公司有大量员工手册、HR 政策文档。
-
用户问:“我们公司年假可以结转多少天?”
-
传统 LLM(无 RAG):可能会根据训练数据中的通用劳动法回答“一般年假不可结转”,但实际公司政策可能允许结转 5 天,导致错误。
-
RAG 流程:
-
将问题“年假结转”转为向量。
-
在向量数据库中检索相关文档块,找到公司《考勤制度》中的条款:“当年未休年假最多可结转 5 天至下一年度。”
-
将该条款作为上下文,连同问题一起发给 LLM。
-
LLM 基于该上下文回答:“根据公司规定,年假最多可结转 5 天。”
-
-
结果准确,且可引用具体文档。
我们用一个例子来结束
① 用户发出 Prompt:“今天的天气怎么样?” 这条文本首先被切分成 Token 序列,送入系统。
② Agent 将 Prompt 与历史 Context(初始为空)组合,调用 LLM 进行意图识别。
③ LLM 分析后决定调用 Tool,但它不是硬编码,而是通过 Agent Skill(天气技能包)找到 get_weather 工具,并借助 MCP 协议统一调用外部 API。
④ 天气 API 返回结果(如“北京晴,22℃”),该结果被写回 Context,同时 Agent 再次让 LLM 基于最新 Context 生成自然语言回答。
⑤ 如果需要更个性化的穿衣建议,RAG 会从知识库中检索相关穿搭知识,增强 Context,使回答更贴心。
⑥ 最终回答呈现给用户:“北京今天晴,22℃,建议穿薄外套。” 整个过程中 Token 贯穿所有文本处理环节,Context 不断累积信息,Agent 主导循环调度,Skill 和 MCP 保证工具生态可扩展。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐




所有评论(0)