
大模型基础Transformer、Tokenizer 与上下文成本模型引言Agent 岗的面试很少要求你手推反向传播但几乎一定会问“为什么大模型都用 Decoder-only”“长上下文为什么这么贵”“你们的 token 成本怎么算”这三个问题指向同一件事——你是否理解模型在推理时到底发生了什么。不理解这一点上下文工程、缓存优化、成本治理都只是背下来的术语。本文用三个层次重建这幅图景Transformer 的结构与推理过程、Tokenizer 与 token 预算、以及从结构推导出来的成本与延迟模型。读完后你应该能自己算出一次 Agent 任务大概花多少钱、慢在哪。一、Transformer结构与推理的两个阶段1.1 一个 Block 里发生了什么现代大模型由数十个相同的 Block 堆叠而成每个 Block 包含四个部件多头自注意力Multi-Head Self-Attention。输入序列经线性映射得到 Q、K、V计算Attention(Q, K, V) softmax(QKᵀ / √dₖ) · V除以 √dₖ 是为了防止维度过大时点积数值过大、softmax 落入饱和区导致梯度消失。多头指把 d 维切成 h 个子空间并行计算注意力让模型能同时关注不同关系如语法依存与指代关系。直觉理解注意力是一次全局的信息混洗——每个位置都能直接看到所有其他位置这也是它相比 RNN 的核心优势无长程衰减、可并行训练。代价是时间与空间复杂度都是 O(n²)。前馈网络 FFN。两层 MLP中间维度通常放大 4 倍。研究表明 FFN 承担了大量知识存储功能——它像是模型的可寻址记忆库。残差连接与 LayerNorm。残差让梯度能直接回传使几十层的网络可训练LayerNorm 稳定激活分布。现代模型普遍采用 Pre-LN归一化放在残差支路之前训练更稳定、对学习率更鲁棒。位置编码。注意力本身对顺序无感知打乱输入顺序输出只是相应置换必须显式注入位置信息。从绝对位置编码到相对位置再到当前主流的 RoPE旋转位置编码——它通过对 Q、K 施加与位置相关的旋转来表示相对距离天然支持相对位置建模且便于长度外推。1.2 三种架构取向Encoder-onlyBERT 系双向注意力每个位置都能看到前后文适合理解类任务分类、向量化、检索嵌入Encoder-DecoderT5、翻译模型编码器理解输入、解码器生成输出适合序列到序列Decoder-onlyGPT、LLaMA、Qwen 系因果掩码每个位置只能看左侧训练目标统一为预测下一个 token。面试题为什么 LLM 都用 Decoder-only的标准答案① 训练目标统一纯语言建模可规模化② 零样本泛化能力强所有任务都能表述为续写③ 工程上 KV Cache 复用友好④ 参数效率更高不需要为 Encoder 单独分配容量。1.3 Prefill 与 Decode理解延迟的关键推理分为两个阶段它们的瓶颈完全不同Prefill预填充一次性处理整个输入序列计算所有位置的 K/V 并缓存。这是算力密集型大矩阵乘法时间大致与输入长度成正比。Decode解码逐个生成 token每生成一个新 token 都要读取全部 KV Cache。这是显存带宽密集型时间大致与已生成长度 × 层数 × 维度成正比。这个区分解释了很多工程现象为什么输入长主要增加首 token 延迟TTFT为什么输出长主要增加整体耗时为什么 batch 化能大幅提升吞吐把带宽瓶颈转化为算力瓶颈。二、Tokenizer 与上下文窗口2.1 分词机制与实践含义主流分词算法是 BPE / BBPE字节对编码从字符级开始反复合并最高频的相邻单元形成子词词表。实践含义有三条中文更贵。 常见模型下 1 个汉字约消耗 1–1.5 个 token而英文 1 个 token 约对应 4 个字符 / 0.75 个单词。同等语义的中文内容token 数通常高于英文。代码、数字、罕见符号很碎。 user_id_10293 可能被切成 6–8 个 token而它是整体才有意义的标识符。这直接影响工具参数设计与检索策略专有名词必须用关键词检索见第 16 篇。不同模型词表不兼容。 换模型token 数与成本都会变。任何成本估算都必须用目标模型的真实 tokenizer 计算不能用字符数除以一个经验系数。2.2 标称窗口 ≠ 有效窗口模型宣称支持 128K 上下文不等于它在 128K 上还能稳定工作。三个常见退化大海捞针Needle in a Haystack关键信息放在上下文开头或结尾时召回率高放在中间时显著下降。这直接指导上下文布局——重要内容别埋在中间。上下文腐化Context Rot随着上下文变长指令遵循能力、推理质量整体下降表现为忽略规则、重复已完成的动作、被早期错误锚定第 6 篇详述。成本与延迟上升Prefill 成本与长度成正比Decode 阶段每步要读取全部 KV Cache长上下文会持续拖慢生成。因此工程上要做有效上下文门禁用能力 × 长度的二维矩阵测试模型在不同长度下的真实表现找出可靠的有效窗口而不是按标称值设计系统。2.3 Chat Template被忽视的细节对话模型底层处理的其实是一段带特殊标记的纯文本例如|im_start|system 你是一个助手|im_end| |im_start|user 你好|im_end|不同厂商的模板不同它会影响① 实际 token 数特殊标记也计费② 缓存前缀的边界③ 历史思考内容reasoning是否回传。自己拼字符串时最容易在这里出错——应用层应使用官方 SDK 或严格复刻模板。三、成本与延迟模型3.1 三个层级的成本公式单次调用成本 输入 token × 输入单价 输出 token × 输出单价命中缓存部分按折扣价通常显著低于输入价。单任务成本 轮数 × 平均上下文长度 × 单价。注意这里的关键变量是轮数——Agent 每轮都要重送累积上下文10 轮任务的成本远不止单次调用的 10 倍而是近似按上下文长度累加。单位成功成本 任务平均成本 ÷ 成功率。这是最诚实的指标一个成功率 50%、需要重试的系统实际成本是单次成功的两倍。3.2 延迟从哪来端到端延迟 ≈ 首 token 延迟Prefill 时间 生成 token 数 × 单 token 生成时间 工具执行时间 × 轮数 网络往返。在 Agent 场景工具执行与轮数往往是主要贡献者而不是模型生成本身。这也说明为什么减少轮数比换更快的模型更能改善体验。3.3 优化清单按性价比排序稳定前缀提高缓存命中系统提示与工具定义固定放前面命中部分通常便宜数倍减少轮数更好的规划、更高的首次成功率裁剪工具返回摘要 分页 显式截断分层模型路由、分类、抽取用小模型决策与生成用大模型压缩历史四、面试考点与答题框架4.1 高频真题Q1自注意力的复杂度是多少有哪些优化答时间与空间均为 O(n²)。优化包括 FlashAttentionIO 感知的精确注意力减少显存读写、稀疏/滑动窗口注意力、MQA/GQA多个 Query 头共享 K/V 头大幅降低 KV Cache 显存。Q2KV Cache 为什么能加速代价是什么答避免每生成一个 token 就重算整个前缀把重复计算换成一次存储。代价是显存占用随序列长度、batch、层数线性增长长上下文场景下 KV Cache 可能成为显存的主要消耗第 7 篇展开。Q3怎么估算一个 Agent 功能的成本答先估算单轮平均上下文长度与输出长度再乘以预期轮数与 QPS得到每请求成本与日成本务必把失败重试计入除以成功率并用真实 tokenizer 采样验证估算偏差。4.2 答题加分点能区分 Prefill算力密集与 Decode带宽密集并据此分析延迟知道标称窗口要打折用能举大海捞针测试作为证据成本估算时能主动除以成功率体现真实工程经验。小结三个必须记住的数字与一句话结论中文约 1 字 ≈ 1–1.5 token英文约 4 字符 ≈ 1 token标称窗口要打折用。而一句话结论是——Agent 的成本与延迟主要由轮数和上下文累积决定而不是单次调用单价。理解了这一点后面所有上下文与缓存优化的动机都会自动成立。最后说一句技术成长不只是写代码职业规划和自我包装同样重要。我整理了一份简历、面试和职业规划的学习资料适合想在职场上走得更远的朋友看看。资料展示下面是我整理的AI大模型学习资料和工具包预览适合收藏后按主题逐步学习。如果你想看完整资料目录可以在评论区留言「资料」也欢迎告诉我你更关注AI大模型里的哪类内容。