概念都是个人理解,如有错误欢迎指出。
LLM (大语言模型)
- 定义:LLM是一个参数量巨大的数学模型(统计概率模型);本质上是词语接龙不断去预测下一个字。
- 诞生:分为两个阶段
- 训练
- 推理
- 涌现: 当参数达到一定规模时,AI 会突然获得原本不具备的复杂逻辑推理、代码理解等高级能力。
Token(词元)
- 定义:是LLM(大语言模型)的最小语义单元。
- 本质:token是什么?其实就是代表单词的的编号。
Tokenizer(分词器)
- 作用:把文本切成一个个 token(子词 / 字 / 符号),再将token映射成
token ID(整数编号);最后就变成了一串数字编号。
Embedding(嵌入)
- 定义:Embedding就是大模型自己的语言,注意:embedding模型属于LLM模型中的一部分。
- 作用:把每个 token ID 转换成一个 高维向量。
为什么要引入高维数据向量?
- 主要是为了从更多的维度描述单词。
例如:维度1表示颜色;维度2表示形状;苹果和西瓜在向量坐标中虽然编号不同;但是空间位置很相近。
Function Call(方法调用)
- 本质:工具调用函数。
- 作用:允许模型在需要时调用预定义的函数来获取数据或执行操作。
- 缺点:
- Function Call的平台依赖性强,没有一个统一的标准,不能做到即插即用。
- 一般是本地程序调用,外界无法使用;也因此MCP应运而生。
MCP(模型上下文协议)
什么是MCP?
- 定义:MCP模型上下文协议 定义了应用程序和 AI 模型之间交换上下文信息的方式。
- 作用:主要是为了增强AI的能力,作为使用者通过MCP我们可以轻松接入别人已经写好的服务。
注意:MCP只是一个标准协议,并不提供特定的服务,你可以按照要求编写自己的MCP服务。
MCP架构
分为:客户端、服务端;客户端可以连接多个MCP服务。
Agent Skills (智能体技能)
-
本质:Agent Skills 的本质不是工具,而是:
行为规范 + 专业知识 + 使用时机的组合
-
组成:其实就是一个文件夹(相当于打包好的提示词工程);里面必须有一个 SKILL.md 文件(包含说明和元数据),可选其他资源文件(如脚本、示例、参考文档)。
-
使用:Agent Skills 的关键是渐进式披露,分三层加载:
- 技能发现 :AI 先读取所有技能的元数据(name 和 description),判断任务是否相关,注意:这些元数据始终在系统提示中。
- 加载核心指令 : 如果相关,AI 自动读取 SKILL.md 的正文内容,获取详细指导。
- 加载资源文件 :按需读取,执行脚本。
Agent Skills和MCP的区别?
MCP需要把完整的MCP协议规范告诉AI,占用大量上下文,即使你不去用他,如果你装的MCP多,就没多少可用的上下文了,必须手动控制启用和禁用以节省上下文空间。skills相当于打包好的一套提示词工程,包含提示词、文档、脚本、工具,然后把简单的元数据告诉AI。
简单来讲:
Agent Skills相当于懒加载,一个是按需加载自动决定上下文。
MCP是启动就加载,并且每次请求都会占用上下文。
大模型的幻觉
1.什么是幻觉?
其实就是大模型生成不合理或完全虚构的内容。
2.为什么会出现幻觉?
- 一方面,模型的训练数据中可能包含错误或过时的信息。
- 另一方面,大语言模型本质上是 预测下一个词的概率 模型,它们倾向于生成流畅而未必准确的内容。
RAG(检索增强生成)
-
作用:可以解决大模型的知识时效性限制和幻觉问题。
-
实现步骤:
- 前置准备
- 文档收集和切割
- 向量转换和存储
- 实现增强
- 文档过滤和检索
- 查询增强和关联
注意:RAG进行向量转换的Embedding模型和LLM的Embedding的模型并不一致。LLM的Embedding模型是随着训练一起出来的,而RAG进行向量转换的Embedding模型是需要单独去训练的。
差异:
- RAG Embedding:对整段文本做语义压缩,输出一个向量。
- LLM Embedding:对每个 token 编码,再通过 Transformer 整体理解整句话。
AI Agent(智能体)
- 定义:会自己思考 + 能自己行动的 AI。
- 分类:
- 反应式智能体
- 有限规划智能体
- 自主规划智能体
CoT(思维链)
- 定义:让 AI 像人类一样 “思考” 的技术,帮助 AI 在处理复杂问题时能够先思考后执行。(思维链的实现主要是通过prompt实现)。
Agent Loop(执行循环)
- 定义:智能体在没有用户输入的情况下,自主重复执行推理和工具调用的过程。
React模式(思考 - 行动 - 观察)
- 先思考执行需要哪些工具
- 执行工具
- 根据工具结果判断是否完成该任务
- 循环执行