AI
MCP¶
定义了一种规范:工具的注册与使用,这个交互是mcp server与client的交互。 - 每个mcp server可能提供多个工具tool,提供工具描述和参数说明,让模型知道何时及如何使用此工具。 - 这是一份交互协议,安装mcp的时候client和server进行多轮交互,获取到工具列表以及传参类型。python的fastmcp框架做了这些工作,我们只需关注tool实现。 - 对话的时候,把所有工具带过去。如果需要,大模型会告诉客户端去调用哪个;客户端把调用结果在返给模型。但工具太多会占用太多token显然不合理,工程角度需要处理,可能先用小模型判断对话是否需要工具。
- 通信方式三种
- stdio适合本地工具,server需要本地启动,按需启用,和客户端一对一;类似一个bash命令就是一个server
- sse,以及升级版Streamable HTTP;web服务,例如高德,stack推送服务等
- 这里有个例子分别代理了mcp和模型接口,可以看到agent与他们交互细节,视频
- mcp除了tool,还有prompt,resources等类型,只是用的比较少
RAG(检索增强生成)¶
- 常备用于做私有知识库。
- 一开始可以把知识库全塞到上下文中,但显然知识库可以很大,会塞不下,浪费token,浪费注意力。所以需要先把相关的知识搜出来,然后塞到上下文,类似【联网】工具
- 两个阶段
- 数据准备阶段:数据提取——>文本分割——>向量化(embedding)——>数据入库
- 应用阶段:用户提问——>数据检索(召回)——>(重排再筛选) ——> 注入Prompt——>LLM生成答案
- embedding也是一种专有模型,在LLM热潮早很多。他把离散对象(词、句子、文档等)映射成向量,用向量距离表示语义相似度
- 向量数据库可以存储向量,可以进行相似度搜索
Agent¶
-
比喻:给聪明的大脑,加上手和脚,示例
- 通过system prompt约定大模型严格按照输出格式,并把工具列表给他,把思考方式告诉他。
- 客户端就可以解析返回值,来运行指定工具,结果问大模型,循环,直到大模型觉得结果满意【ReAct模式/思想,客户端和大模型交互协议】
- 工具太多,经常使用小模型先问下相关工具有哪些,避免所有工具直接塞给模型,占用爱多上下文
-
除了ReAct 还有Plan and exectute模式,先规划后执行
ReAct¶
三个词:思考,行动,观察(thought/action/observation) Reasoning and acting 姚顺雨论文
Token¶
- Tokenizer = 预处理规则 + 词表(vocab) + 切分算法
- 预处理规则,如空格规则,Unicode处理等
- 切分算法,常见BPE(Byte Pair Encoding),Unigram
- 词表是词对应tokenId,输入和输出大模型都是id
- Tokenizer 不是词法分析,是基于统计频率的子词压缩算法
- 经常出现的词合并成一个token,例如喜欢,是一个token。一句话,模型的输入会更少,训练和推理效率就会更高
-
BEP不光包括词表,还有merge规则,即merge 是有顺序的,不是贪心最长匹配。如【研究生命起源】,可能会把【研究生】切分,这取决于merge规则顺序,这个和词表大量预料得来的;
- 如 GPT-2 tokenizer,词表约 50k,merge rules ~50k 条,推理时,字节切分,按 5万条 merge 规则逐步合并,时间复杂度非常低。
- 而Unigram通过概率/DP选择一定程度可以避免这种歧义。Unigram 可能计算出:
P(研究)*P(生命)*P(起源) > P(研究生)*P(命)*P(起源)
-
tokenizer 的目标其实不是“语言学正确”,tokenizer 的目标是稳定编码。token 数量尽量少token 越少:推理成本越低。因为 Transformer 复杂度:O(n²)。
- LLM 并不依赖“正确分词”。即使 tokenizer 切成:研究生 / 命 / 起源;仍不影响训练。Transformer 会在更高层建模。
deepseek r1 的意义¶
以前很多人默认,最强 reasoning 模型这件事,只有少数美国闭源实验室能做,而且要靠巨额算力、海量人工标注、封闭数据和不透明配方。R1 之后,这个判断被冲击了。因为它同时证明了几件事: - 中国可以做出顶级的reasoning model,当时媲美o1。reasoning 训练范式的创新 - 开源:把关键成果以 open weights / MIT license 的方式放出来 - 成本:能在受限算力条件下把效率做到很高(当时16元/1M,后来8元,3元...)
说明:中国团队已经不只是跟随做 chatbot,而是在 reasoning 训练范式、开源影响力、成本效率这三个维度,能直接参与定义行业方向了。
所以当时有句话,中国也在AI的牌桌上了
function calling¶
一些模型/API 本身就具备“工具调用意图生成”的原生能力,不需要你再在提示词里手搓协议格式。
但真正调用工具通常还是由外部程序执行;而且是否调用、何时调用、调用哪个,仍然会受提示词、工具描述、模型本身能力影响。