Hemmingway-1 为什么“快“:MTP 推测解码与模板裁剪里的 token 经济学 Hemmingway-1 为什么快MTP 推测解码与模板裁剪里的 token 经济学【免费下载链接】Hemmingway-1项目地址: https://ai.gitcode.com/hf_mirrors/Altworld/Hemmingway-1一个只有 27B 参数的模型凭什么在 CommunicationBench 上以 1026 分压过 Fable 5.1、Kimi K3 乃至 GPT-6 Astra 整整 50 分社区对它的讨论大多停在写得好、像人话上却忽略了一个更值得工程师深挖的问题它为什么快以及快从哪来。快从来不是单一技术的结果。翻开源权重仓库你会发现Hemmingway-1 的每一次加速都被设计成了明确的 token 经济学账本训练时就内置的多 token 预测模块MTP在推理期变成推测解码的草稿模型3:1 的混合注意力把 262K 上下文的 KV 缓存压到纯全注意力模型的四分之一而一个精心裁剪的 chat_template.jinja 则负责在模板层面把思考和冗余输出从 token 账单上抹掉。这篇文章逐层拆开这三笔账。MTP 多 token 预测一次前向输出 N 个 token先看证据。在 config.json 里有这样两行mtp_num_hidden_layers: 1, mtp_use_dedicated_embeddings: false而 model.safetensors.index.json 的权重清单里MTP 模块的 15 组参数被完整地单独存进了model-mtp.safetensorsmtp.fc.weight mtp.pre_fc_norm_embedding.weight mtp.pre_fc_norm_hidden.weight mtp.layers.0.self_attn.{q,k,v,o}_proj.weight mtp.layers.0.mlp.{gate,up,down}_proj.weight mtp.norm.weight这套embedding 与 hidden 分别过 norm、再经 fc 融合、喂给单个共享 Transformer block的结构正是 DeepSeek-V3 系列提出的 MTPMulti-Token Prediction标准形态。它的训练逻辑很直接主模型在位置 i 输出隐藏状态 h_i 后把 h_i 与第 i1 个 token 的 embedding 拼接融合交给那一个共享的 MTP block让它直接预测第 i2 个 token。由于 block 是共享的参数增量只有数亿级相对 26.9B 总参数model.safetensors.index.json 的 metadata 记录为 26,895,998,464几乎可以忽略——这就是训练时用最小代价买一个多步预测能力的账。这笔账在推理期开始回报。MTP 头天然是推测解码speculative decoding的廉价草稿模型它成本极低地草拟出接下来 1~2 个候选 token主模型再单次前向并行验证整条候选序列。关键数字在于无论验证多少候选主模型都只做一次前向、只追加一次 KV而验收通过一个 token 就相当于白赚一个。设单个候选接受率为 α则每步期望产出的 token 数约为 1/(1-α)草稿质量够好时 α 落在 0.6~0.85 区间解码吞吐就能放大到 1.5~1.8 倍。对一个回复往往只有百来个 token 的轻量写作模型来说这部分摊薄的正是最昂贵的逐 token 串行成本。混合注意力3:1 分层KV 缓存只长四分之一长上下文的推理成本大头从来不是算力而是 KV 缓存——序列越长缓存越大单卡装不下还要跨卡搬运。Hemmingway-1 的解法写在 config.json 的layer_types数组里64 层中每隔 4 层才出现一次full_attention其余 48 层全部是linear_attention对应full_attention_interval: 4。也就是说 64 层里只有 16 层全注意力、48 层线性注意力正好 3:1 混合。线性注意力层不是普通注意力的降采样而是类 Mamba 的状态空间机制从权重名可以看到每层携带conv1d.weight、A_log、dt_bias、in_proj_a/b/qkv/z等状态空间特征参数配合linear_key_head_dim: 128、linear_num_value_heads: 48的配置config.json。这类层把历史压缩为固定大小的隐状态KV 不随序列长度线性增长。于是 262,144 的上下文窗口max_position_embeddingsREADME 也注明 Context 262,144 tokens不再意味着每请求都要吃掉几个 GB 的缓存而是在 80G 单卡A100/H100上就能以 vLLM 原生服务vllm serve Altworld/Hemmingway-1 --max-model-len 262144把等式摆出来就是全注意力层占比降到 1/4 → KV 缓存总量按比例缩到纯 Transformer 的约 1/4 → 相同显存预算下可服务的并发与序列长度同步放大。长上下文没有变成昂贵的地段这就是混合注意力给出的经济学答案。模板里的 token 手术刀思考裁剪与历史推理块回收如果说 MTP 和混合注意力是硬件层的提速那么 chat_template.jinja 里的三处裁剪就是纯软件层面的 token 止血三档思考模式。模板把 reasoning effort 限定为xhigh/medium/low三档默认xhigh切到low时系统指令会变成一句Keep your thinking brief and focused, moving directly to the conclusion without unnecessary elaborationchat_template.jinja 第 51~55 行。而enable_thinkingfalse时生成提示里只塞一个空的think/think占位第 163~169 行——思考块整体从输出 token 里消失。历史思考块回收。模板第 116 行的条件是全文最值得玩味的一行{%- if preserve_thinking is undefined or preserve_thinking is true or loop.index0 ns.last_query_index %} {{- |im_start| message.role \nthink\n reasoning_content \n/think\n\n content }} {%- else %} {{- |im_start| message.role \n content }} {%- endif %}当preserve_thinking关闭时只有最后一条真实用户提问所在轮次之后的思考块会被保留更早的历史think.../think直接在重放上下文时被剥掉只留下干净的正文。注意真实用户提问的判定也不是拍脑袋模板用倒序扫描第 88~101 行把包在tool_response里的工具返回从用户提问中排除保证多步工具调用场景下定位到的是真正的人类诉求而不是把用户的思考历史误伤。这笔账在多轮对话里是复利式的第一轮若产生 200~400 token 的思考第二轮起每轮都把这段历史从输入中剪除——对话越长节省的输入 token 越多且这种节省直接落到 prefill 和注意力计算上。算一笔账同一个写作任务它比同类省多少现在把三笔账合起来落到 README 里那句最尖锐的对比Ask most models for a text to your landlord and you get three options, a preamble, and a paragraph explaining the options. Hemmingway-1 just gives you the text.README.md这不是文案而是被量化过的输出结构差异。charts/wrapped.png 这张图专门测量模型把真正要发的正文埋在注释、选项和说明里的比例Fable 5、GLM-5.3 和 Kimi K3 在超过十分之九的回复里都会这么做。按此估算一个 100 token 的日常写作任务典型助手模型的输出是开场白 三个版本 选项解释约 300~450 token且按行业惯例输出 token 的计价通常数倍于输入Hemmingway-1 直接给出一条 100 token 上下的可用正文。仅输出端就有 3~4 倍的差距。更值得注意的是类别差异——charts/categories-heatmap.png 显示在难开口的请求这类任务上GPT-6 Astra 的类人回答率只有 9%Hemmingway-1 是 72%把整条链路加总输出结构省掉 3 倍左右的生成 tokenlow思考档位或preserve_thinkingfalse把思考块从输入输出两端同时抹掉MTP 推测解码把每步串行解码放大到 1.5~1.8 倍吞吐3:1 混合注意力让 262K 上下文在单卡 80G 上常驻而不必频繁换页。四件事叠加同样一次写作请求的端到端 token 消耗和延迟与那些9 成回复都在裹脚布的同级模型之间已经不是同一量级。这也是 Hemmingway-1 最有意思的地方它没有靠更大的模型、更长的思考来赢得像人的分数而是反过来——把 token 花在刀刃上。MTP 摊薄解码、混合注意力压低缓存、模板裁掉思考与废话每一层都在做同一件事让模型把预算全部投向那一条可以直接复制发送的正文。速度与人味在这里不是 trade-off而是同一笔账的两面。【免费下载链接】Hemmingway-1项目地址: https://ai.gitcode.com/hf_mirrors/Altworld/Hemmingway-1创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考