从Manus说起:大模型核心架构与训练推理全流程

发布时间:2026/10/21 16:37:38
从Manus说起:大模型核心架构与训练推理全流程 如果你刚接触大模型又是个“能调 API、能跑通 demo但一说到内部结构就心虚”的程序员那这篇内容会比较对胃口。我拿 Manus 作为拆解对象不是为了讲一堆“模型很强”“谁评了高分”之类的场面话而是帮你把大模型的核心架构和工作原理在脑子里搭出一个真正的框架。以后看代码、读论文、甚至自己动手微调至少不会看到data_collator、attention_mask、KV cache这些词就发怵。Manus 并不是一个凭空蹦出来的黑盒。它走的路和市面上主流大模型非常相似先从海量文本里学会语言规律再做指令对齐最后通过人机反馈把回答调到符合直觉。所谓“理解架构”本质上就是搞清楚这三件事分别发生在哪里、为什么顺序不能换、以及每一步里那些张量到底在干嘛。1. 先看整体Manus 到底是什么“形状”的系统1.1 别急着看书先建立一张“宏观地图”很多小白上来就啃 Transformer 论文结果注意力公式看到第二遍就劝退了。我建议你先在脑子里放一张系统整体的地图任何一个像 Manus 这样的大模型跑起来其实是三个独立但串在一起的工序。第一道工序是“文本切碎”。模型不可能直接读文章它得把文字变成数字。这一步叫 tokenization也就是分词。Manus 这类模型通常用的是字节对编码BPE或其变体把常见词汇、子词、甚至字符切成一个又一个 token每个 token 对应词典里的一个 ID。比如“我爱 coding”这个短句可能会被切成“我”“爱”“coding”三个 ID,也可能把“coding”切成“cod”和“ing”,一切取决于词典构造时的统计结果。第二道工序是“语义压缩”。一段话变成一堆 ID 之后模型要把这些 ID 转成高维向量再通过一摞神经网络层反复做信息混合。这个阶段的目标非常直白让每个 token 的向量不仅包含它自己的含义还能通过注意力机制吸收上下文伙伴的信息。最后输出的向量里“苹果”是水果还是手机品牌才真正有了语境。第三道工序是“概率选择”。最后一个 transformer 层输出的向量会被映射回整个词典的大小变成一个概率分布。模型根据这个分布采样挑出或者逐步挑出下一个 token 的 ID。之所以大模型都是“一个 token 接一个 token”地生成就是因为原则上它只能做这种自回归的预测不存在一口气生成一大段文字的特异功能。这三道工序放在工程里分别对应分词器、权重文件、推理服务三个模块。你看到的tokenizer.encode()、model.generate()其实就是在把这三个模块串起来。Manus 的架构再花哨也逃不开这个框架。1.2 为什么说它是“概率系统”而不是“规则系统”老式系统靠人写规则比如“遇到主语是单数动词加 s”。这种方法的优点是可控缺点是规则之间一旦打架系统就彻底崩盘。Manus 这类大模型走的是另一条路不写显式规则只学习参数。你可以把其中的参数想象成几亿个旋钮。训练时系统每猜错一次就把旋钮往“正确方向”拧一点点。拧的次数多了这些旋钮里就隐式编码了语法、语义、事实、甚至逻辑推理的倾向。可问题是这种“拧出来”的知识并不是 100% 确定的所以模型偶尔会一本正经地胡说八道。这解释了为什么任何大模型都需要配合采样温度和 top-p 这些参数来控制输出也解释了为什么“它答错了”不一定是 bug而是概率分布天然自带的行为。理解了这一点你就不会再用“为什么它不能像数据库一样精确”去苛求模型也不会在推理阶段遇到随机结果时手忙脚乱。2. 核心架构拆解Manus 的积木长什么样2.1 主角依然是 Transformer坦白讲Manus 的官方技术细节不会全部公开但根据现在大模型圈子的通有结构它内部一定跑着若干层 transformer。你不需要把整个结构背下来记住三个核心部件就够了注意力层、前馈网络、归一化层。注意力层负责找关系。它给每个 token 生成三份映射向量分别叫 Query、Key、Value。用一个通俗的类比Query 是你手里的便签“我要找什么”Key 是书架上每本书的索引标题Value 是书的具体内容。模型会计算你的便签和所有索引的相似度相似度高的书权重就大最后按权重把几本书的内容混合起来送给你一份“综合情报”。正是这个机制让“它”能准确指向前文出现的“苹果”。前馈网络负责变抽象。注意力层把信息汇集回来后前馈网络会对每个 token 独立做两次线性变换中间夹一个非线性激活函数。简单说它负责把“汇集到的信息”进行某种特征加工把低级模式往上抽象。你可以把它想成一个个加工车间原材料进来经过切割、打磨变成更规整的零件。归一化层负责稳住训练。深度学习最怕激活值忽大忽小要么梯度爆炸要么梯度消失。现代模型都会在注意力层之前或之后加入 LayerNorm 或 RMSNorm把激活值的尺度拉回稳定范围。2.2 QKV 的计算到底在算什么这段可能是小白最容易绕晕的地方所以我直接写一遍流程。假设输入序列长度为 L每个 token 的向量维度是 d。模型把输入矩阵 X 分别乘以三个权重矩阵 Wq、Wk、Wv得到 Q、K、V 三个矩阵。然后计算注意力分数scores Q * K^T / sqrt(d_k) weights softmax(scores, dim-1) output weights * V其中除以sqrt(d_k)是为了防止点积值过大把 softmax 推入饱和区导致梯度很小。这个过程就是“自注意力”每个 token 都去和其他所有 token 算相似度再按相似度去取它们的 Value。如果上下文特别长这个计算量会非常大因为 QK^T 的复杂度是 O(L^2)。这也是为什么长文本上下文窗口都用了一些类似滑动注意力、稀疏注意力或者 FlashAttention 的优化手段。Manus 如果宣称支持很长的上下文那它一定在这些地方做了工程优化否则显存早就烧穿了。2.3 多头注意力到底“多”在哪所谓多头就是把维度 d 切成了 h 份每份分别做一次 QKV 变换最后再把 h 份结果拼接回去。为什么要这么干一个头只有一个“注意力视角”容易漏掉不同类型的关系一个头可能专注意义关系一个头专门追踪位置关系一个头专门去查指代关系。多头就是把多个视角同时铺开最后拼成一个更丰富的表示。你也可以用工会比喻单个人谈判容易顾此失彼多个人各管一摊最后汇总意见能更好地覆盖全局。实践中Manus 一类的模型一般设置 32 到 64 个头具体数值要看模型尺寸定义。2.4 你可能听过的 MoE是一种“内部分工”现在不少大模型都不再用单一稠密 transformer而把前馈网络拆成多个“专家”然后用一个路由网络决定每个 token 调用哪几个专家。这就是混合专家MoE设计。如果 Manus 也采用类似结构那它的计算量和参数量就是不对等的总参数量很大但每个 token 只需要激活少数专家推理速度能快不少。这个设计很像一家大公司名义上有几万个员工参数但具体到你的需求只有十几个相关的部门专家在干活。好处是省钱省时坏处是路由如果学歪了某些专家会被闲置某些专家又会过载训练时还需要额外加一个负载均衡的损失来控制分配。3. 训练流程Manus 是怎么“学坏学好”的3.1 数据清洗是隐藏的第一战场很多小白以为训练大模型最重要的操作是“把数据喂进去”其实数据预处理占掉的精力远超想象。Manus 这类模型的训练数据来自互联网网页、论文、代码仓库、论坛问答。这些数据不是拿来就能用得经过一套流水线处理。第一步是去重。一模一样或者高度相似的文本会反复出现如果不清理模型会把“这段话看过一万遍”当成“这段话是真理”造成严重的重复输出和记忆过拟合。细致的话要用 minhash 之类的算法做模糊去重而不是简单比较字符串。第二步是过滤。广告、跟踪代码、乱码、色情和暴力内容都得被筛掉至少系统层面要让主流价值观来把关。通常会先给每条样本打分低于阈值的直接丢弃。第三步是语言配比。如果某个语言比例过高模型答其他语言时就会变笨所以工程师要手动控制不同语料的采样权重让模型能平衡不同语言的回答质量。数据阶段花的时间经常占到整个训练项目的一半以上。模型能力上限很大程度上是数据质量决定的后面无论吃多少处理器都补不回垃圾数据挖下的坑。3.2 预训练海量文本上的“猜词游戏”这部分就是前面说的核心训练给模型一段被截断的文本让它预测下一个 token 是谁然后拿真实的下一个 token 做比对算交叉熵损失反向传播更新权重。如果你看过训练日志你会看到 loss 在稳步下降比如从 3.2 降到 2.7、2.3。loss 单位是自然对数意思是模型平均在每个 token 上的不确定性在下降。但要注意大模型预训练的 loss 永远不可能降到 0因为自然语言本身有内在随机性同一个上文可以接无数种合理的下文。如果你的 loss 真的逼近 0基本可以断定训练集被反复训过太多次了这时候模型会出现很僵硬、很套路的输出。预训练阶段是纯粹“学语言规律”不涉及“回答问题”和人设。这个阶段的模型如果直接丢给用户它大概率不会乖乖回答你的问题只会顺着文本继续续写。所以后面还需要对齐。3.3 后训练从“会说话”到“像助手”先说监督微调SFT。做法是收集一批高质量的指令和回答对让模型模仿这些标准答案。这一步让模型从“续写狂魔”变成“问什么答什么”的形态。数据大多是人工编写或者从高质量来源整理出来数量不需要和预训练一样多但质量非常敏感。再说强化学习。更进阶的一步是让模型自己生成多份回答再让奖励模型reward model打分用强化学习算法更新权重。这其中的核心绕不开 RLHF或者今天更常用的直接偏好优化DPO。它们本质上都在做同一件事让模型的输出更合人类胃口而不是仅仅“合理续写”。这里有一个容易踩的坑如果奖励模型只奖励“流畅漂亮”的回答模型就会学会写一些内容空洞但语言华丽的官腔。所以奖励函数里通常要加多条维度分别考虑正确性、有帮助性、无害性。实际落地时更常见的是让多个模型交叉打分尽量减少单点偏好带来的失衡。3.4 训练中那些“玄学”超参数新手看别人训练常常只盯着学习率。我简单列一个常见配置帮你建立概念预热步数通常占总步数的 1% 到 3%学习率峰值在 1e-4 到 3e-4 之间取决于总批次大小和模型规模权重衰减取 0.1 左右。批次大小则讲究“越大越好但要显存允许”。训练损失下降越快不代表模型越好因为有可能只是词频高的 token 被先学会了。真正判断模型好坏得看它在验证集上的表现以及下游任务的实际测试效果。如果只盯训练 loss你很容易被表面成功骗过去。4. 推理过程模型生成一个 token 的细节叙事4.1 从“前向一张图”到“前向一长串”训练时模型一次处理整个句子推理时却是一个 token 一个 token 地蹦。每次把当前所有 token 全部重新过一遍庞大的计算就太过浪费了前一步算过的东西其实可以缓存下来。这就是 KV cache 存在的原因。K 和 V 矩阵在前几层已经算过我们可以把它们存进显存下次生成新 token 时只需要计算新增 token 的 Query再用之前的 K、V 来做注意力省掉了全量重算。按常规体验KV cache 往往要占到整块显存的一半左右所以上下文越长KV cache 越大这也是为什么长文本推理总会越到后面越吃力。4.2 温度、top-p 和贪婪解码如果你直接用max_new_tokens100去生成你会拿到默认的贪婪解码每次选概率最大的 token。这个方案在任务明确、答案唯一时比较合适比如代码补全、文字提取。但如果你想让它讲故事或者发散思考就必须引入随机采样。温度参数直接改变 logits 的缩放。温度越高概率分布越平滑低概率 token 也有机会被选中温度越低选择越集中在高概率 token。top-p 则是在累积概率超过 p 的最小 token 集合里采样把尾部长尾噪声截掉。实际我试过代码场景温度设 0.1 到 0.3 比较稳妥创意场景可以拉到 0.8 以上但也要接受它偶尔发疯。4.3 并发与批处理网站背后怎么抗住流量Manus 如果接入产品不可能只有一个用户。真实推理服务会把多个用户请求拼成一个批次一次前向同时算多句话让 GPU 利用率跑满。开多个副本时还需要一套调度系统把长请求和短请求错开防止某个大 batch 把显存挤爆。你不需要立刻掌握每块细节但至少该知道模型服务不只是“加载权重等用户来”它的瓶颈往往在显存、带宽和调度策略上。5. 小白入门时最容易踩的五个认知坑5.1 堆数据就是堆质量其实不是。模型如果反复见过同一模式它只会在表面现象上过度自信。所以我做项目时每轮训练前都会用脚本统计重复率一旦过高就重新采样。5.2 “Loss 降了”并不代表模型就好大模型 loss 受数据分布影响很大。如果训练数据和验证数据分布不一致loss 降得再低换一个场景照样拉胯。接地气的比喻是一个人专靠北京模拟卷考上高分不代表他能直接去考四川卷。5.3 输出随机不代表出 bug很多新手第一次部署大模型看到前后两次生成内容不一样就慌了。其实这正是概率模型的本性。排除问题时先固定温度、top-p 和随机种子再去看是不是代码逻辑出了错。5.4 上下文窗口不等于有效记忆上下文窗口只是硬件允许的上限。模型在几万 token 的长序列里注意力依然可能丢失早期的关键信息。很多产品宣称“支持 128K 上下文”实际效果往往不如针对性的 RAG 检索方案。5.5 安全审核不是“可选项”大模型的内容安全是产品生命线不只是加一句“请合法合规”就能解决的问题。实际部署时需要在输入、输出两侧都加内容审核模块还要设计兜底话术。这个环节花费的成本经常比模型本身还高。6. 从架构理解到动手落地的建议路线6.1 适合小白的上手顺序我建议你按“黑盒调用 → 局部微调 → 部署服务 → 重读论文”的顺序前进而不是一上来就啃全部代码。先跑通 API 调用感受输入输出再用开源工具用几千条数据做一个小领域的微调实验然后把模型打包成接口观察 KV cache 和并发带来的显存变化最后再回头读相关论文你会发现很多公式不再是天书。6.2 值得养成的好习惯我在实际踩坑中养成的最重要习惯是每步操作都留一套可复现的 log。比如记录模型版本、数据 hash、超参数、训练时长、验证集结果。大模型训练中最怕的就是“昨天明明很好今天重开一版全变了”如果没有记录你根本无从排查。6.3 从 Manus 案例延伸出去Manus 给我的启发不在某个具体模型权重而是它把“语言模型 任务工具调用 记忆管理”组合成了更完整的智能体雏形。你在其他模型上也会看到智能体能力比如分步推理、调用外部搜索、读文档总结。架构上无非就是在生成外部循环里增加工具接口、状态记录和任务规划这些对普通程序员而言完全是可以通过 API 组合动手搭建的。7. 我的个人体会做模型相关项目这几年最明显的感觉是大模型并没有让编程变简单而是把门槛从一个地方搬到了另一个地方。过去难在写出正确的规则现在难在如何正确描述问题、如何设计数据、如何限定模型的输出边界。Manus 这类系统让我意识到真正值钱的不是学会了哪个网络结构而是你能不能快速在脑内模拟出一个“输入到输出”的完整回路明白哪个环节在影响质量、哪个环节在消耗速度、哪个环节该加安全防线。如果你是小程序入口级程序员我觉得你现在最该做的不是急着去复现一套训练代码而是先拿一个开源模型跑通 MaaS 风格的全流程从加载权重、调用/generate接口到观察显存占用再到部署成一个能并发响应的服务。把这条链路跑通了再回头看这篇内容里说的每个名词你会觉得自然而然就通了。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询