THE KNOWLEDGE SHELF

历史文章解释

以下保留旧文章的解释记录及锚点,尚未全部接受为通用知识。通用概念请前往知识页。

573 个知识点
573 项
01
模型架构

阅读范围与比较方法

文章重点是架构组件,并刻意把数据、训练和评测的复杂影响留在讨论之外。因此,它适合作为结构路线图,不足以仅凭某个组件解释模型强弱。正文中的“今年”“目前”属于作者各段写作时间。 本文语境说明;不是已接受的独立知识专题。

文章重点是架构组件,并刻意把数据、训练和评测的复杂影响留在讨论之外。因此,它适合作为结构路线图,不足以仅凭某个组件解释模型强弱。正文中的“今年”“目前”属于作者各段写作时间。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
02
模型架构

DeepSeek:压缩缓存与稀疏专家

MLA 与 MoE 解决不同问题:前者改变键值缓存的表示,后者增加总容量却只计算少量专家。读参数时区分总参数、活跃参数和缓存规模;这里的建模优势属于作者引用的实验,不是所有设置下的保证。 本文语境说明;不是已接受的独立知…

MLA 与 MoE 解决不同问题:前者改变键值缓存的表示,后者增加总容量却只计算少量专家。读参数时区分总参数、活跃参数和缓存规模;这里的建模优势属于作者引用的实验,不是所有设置下的保证。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
03
模型架构

OLMo 2:归一化位置与训练稳定性

Pre-Norm、原始 Post-Norm 和 OLMo 的残差内部后置布局并不相同。作者展示的稳定性曲线同时加入 QK-Norm,因此不能从该图单独量化移动归一化的收益。示例代码展示顺序,未在本次运行。 本文语境说明;…

Pre-Norm、原始 Post-Norm 和 OLMo 的残差内部后置布局并不相同。作者展示的稳定性曲线同时加入 QK-Norm,因此不能从该图单独量化移动归一化的收益。示例代码展示顺序,未在本次运行。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
04
模型架构

Gemma:局部计算与全局信息

局部窗口限制单层读取的历史范围,全局层提供跨远距离的信息路径。窗口大小、局部与全局层比例、归一化和参数流式加载分别影响不同资源,不能统称为同一种省内存技巧。作者关于冗余归一化的评价保留为个人判断。 本文语境说明;不是已接…

局部窗口限制单层读取的历史范围,全局层提供跨远距离的信息路径。窗口大小、局部与全局层比例、归一化和参数流式加载分别影响不同资源,不能统称为同一种省内存技巧。作者关于冗余归一化的评价保留为个人判断。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
05
模型架构

Mistral Small:内存与延迟分开看

作者对低延迟原因使用“可能”“猜测”,并未隔离分词器、层数、缓存和内核的贡献。滑动窗口节省缓存,不自动意味着端到端延迟更低;本文没有提供统一硬件下的延迟复现。 本文语境说明;不是已接受的独立知识专题。

作者对低延迟原因使用“可能”“猜测”,并未隔离分词器、层数、缓存和内核的贡献。滑动窗口节省缓存,不自动意味着端到端延迟更低;本文没有提供统一硬件下的延迟复现。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
06
模型架构

Llama 4:同为 MoE,计算配置仍不同

总参数相近并不代表每步计算量相近。比较时同时看专家大小、激活数量、共享路径和稠密层安排;MLA 与 GQA 的区别还会影响缓存,而不只是专家计算。 本文语境说明;不是已接受的独立知识专题。

总参数相近并不代表每步计算量相近。比较时同时看专家大小、激活数量、共享路径和稠密层安排;MLA 与 GQA 的区别还会影响缓存,而不只是专家计算。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
07
模型架构

Qwen3:稠密与稀疏服务于不同约束

小型模型展示了深度与宽度的取舍,MoE 版本则展示总容量与活跃计算的分离。取消共享专家的原因先是作者猜测,后附开发者回应,应分别理解,不能把猜测当成团队正式结论。 本文语境说明;不是已接受的独立知识专题。

小型模型展示了深度与宽度的取舍,MoE 版本则展示总容量与活跃计算的分离。取消共享专家的原因先是作者猜测,后附开发者回应,应分别理解,不能把猜测当成团队正式结论。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
08
模型架构

SmolLM3:没有显式位置嵌入不等于没有顺序

作者用因果掩码解释仍然存在的顺序方向,并提醒早期 NoPE 实验的模型与上下文都较小。SmolLM3 的局部应用不能直接推广为所有层、所有尺度都可取消位置编码。 本文语境说明;不是已接受的独立知识专题。

作者用因果掩码解释仍然存在的顺序方向,并提醒早期 NoPE 实验的模型与上下文都较小。SmolLM3 的局部应用不能直接推广为所有层、所有尺度都可取消位置编码。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
09
模型架构

Kimi K2:扩大规模与训练方式分开

架构相似、参数增加和优化器变化是三个不同层面的因素。作者没有做因果隔离实验;Thinking 的基准属于发布方报告,本文既不把曲线平滑当作充分证据,也不把开放权重等同于训练全过程透明。 本文语境说明;不是已接受的独立知识…

架构相似、参数增加和优化器变化是三个不同层面的因素。作者没有做因果隔离实验;Thinking 的基准属于发布方报告,本文既不把曲线平滑当作充分证据,也不把开放权重等同于训练全过程透明。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
10
模型架构

gpt-oss:宽度、专家粒度与注意力汇聚

嵌入维度决定主干宽度,头数不能单独定义宽度;专家内部维度是另一项选择。图中 attention sinks 是每头学得的额外 logit,与输入序列里的特殊 token 有区别。代码截图本次未执行。 本文语境说明;不是已…

嵌入维度决定主干宽度,头数不能单独定义宽度;专家内部维度是另一项选择。图中 attention sinks 是每头学得的额外 logit,与输入序列里的特殊 token 有区别。代码截图本次未执行。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
11
模型架构

Grok:常开路径与路由专家

共享专家的要点是每个 token 都经过某条专家路径,而非所有专家都常开。作者把额外 SwiGLU 视作类似共享专家的设计,同时明确它与经典实现不完全相同。 本文语境说明;不是已接受的独立知识专题。

共享专家的要点是每个 token 都经过某条专家路径,而非所有专家都常开。作者把额外 SwiGLU 视作类似共享专家的设计,同时明确它与经典实现不完全相同。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
12
模型架构

GLM-4.5:起始稠密层与专家路由

前几层稠密、之后稀疏是一项分阶段处理选择;作者给出稳定低层表示的解释,但本文没有独立消融其因果贡献。综合榜单均保留来源归属与评测条件限制。 本文语境说明;不是已接受的独立知识专题。

前几层稠密、之后稀疏是一项分阶段处理选择;作者给出稳定低层表示的解释,但本文没有独立消融其因果贡献。综合榜单均保留来源归属与评测条件限制。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
13
模型架构

Qwen3-Next:循环记忆、全局注意力与 MTP

混合模块的 3∶1 是层组合,不是模型中 75% 的参数必然属于某一类。MTP 可提供训练信号,也可服务推测解码,两者应分别说明。Coder-Next 的同构架构并不代表训练内容相同。 本文语境说明;不是已接受的独立知识…

混合模块的 3∶1 是层组合,不是模型中 75% 的参数必然属于某一类。MTP 可提供训练信号,也可服务推测解码,两者应分别说明。Coder-Next 的同构架构并不代表训练内容相同。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
14
模型架构

MiniMax:归一化、稀疏性与局部 RoPE

这里的逐层 QK-Norm 还涉及不同注意力头是否共享缩放参数;局部 RoPE 则指定哪些通道旋转。总参数比例、专家激活数和 token 数是不同量,原文混用措辞处已另行标注。 本文语境说明;不是已接受的独立知识专题。

这里的逐层 QK-Norm 还涉及不同注意力头是否共享缩放参数;局部 RoPE 则指定哪些通道旋转。总参数比例、专家激活数和 token 数是不同量,原文混用措辞处已另行标注。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
15
模型架构

Kimi Linear:近似、状态更新与检索折中

把 n×n 交互改为固定形态记忆,可以降低随长度增长的成本,但会改变信息保存和检索方式。混合层保留全局注意力以弥补折中;不同任务及不同规模的对比不能拼成无条件优越性结论。两处公式保留线性分组与原 MathML。 本文语境…

把 n×n 交互改为固定形态记忆,可以降低随长度增长的成本,但会改变信息保存和检索方式。混合层保留全局注意力以弥补折中;不同任务及不同规模的对比不能拼成无条件优越性结论。两处公式保留线性分组与原 MathML。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
16
模型架构

Olmo 3:继承布局与分规模选择

7B 和 32B 不只改变参数量,注意力方案也不同。YaRN 只应用于图中指定的全局层。作者对中间维度为什么调整的解释明确是猜测,译文保留了这一边界。 本文语境说明;不是已接受的独立知识专题。

7B 和 32B 不只改变参数量,注意力方案也不同。YaRN 只应用于图中指定的全局层。作者对中间维度为什么调整的解释明确是猜测,译文保留了这一边界。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
17
模型架构

DeepSeek V3.2:稀疏选点与缓存压缩

源图把 DSA 的历史位置选择与 MLA 的键值压缩分别画出。它们是不同机制;正文早先把稀疏注意力笼统放进线性路线的说法,不应据此理解为两者定义相同。更完整技术讨论位于作者链接的专文。 本文语境说明;不是已接受的独立知识…

源图把 DSA 的历史位置选择与 MLA 的键值压缩分别画出。它们是不同机制;正文早先把稀疏注意力笼统放进线性路线的说法,不应据此理解为两者定义相同。更完整技术讨论位于作者链接的专文。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
18
模型架构

Mistral 3:架构复用与评测模式

作者比较的 Mistral 指令版与 DeepSeek 思考版模式不同,因此即使模型规模接近,柱状图也不是受控比较。文中从分词器推测从零训练,属于推断而非已核实训练记录。 本文语境说明;不是已接受的独立知识专题。

作者比较的 Mistral 指令版与 DeepSeek 思考版模式不同,因此即使模型规模接近,柱状图也不是受控比较。文中从分词器推测从零训练,属于推断而非已核实训练记录。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
19
模型架构

Nemotron:混合主干、潜在专家与推测解码

Nano 以状态更新块、专家层和少量注意力组合;Super 另外在低维专家空间计算,并把共享权重 MTP 用于推测解码。吞吐量要保留精度、序列长度和推理设置,不能只摘取“快几倍”。 本文语境说明;不是已接受的独立知识专题…

Nano 以状态更新块、专家层和少量注意力组合;Super 另外在低维专家空间计算,并把共享权重 MTP 用于推测解码。吞吐量要保留精度、序列长度和推理设置,不能只摘取“快几倍”。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
20
模型架构

MiMo:窗口大小与参数单位

窗口 128 与 1024 的比较描述局部读取范围,不能直接换算为整模型速度倍数。原文的“15 个活跃参数”与其架构图的 15B 不一致;保留原句并在判断中指出单位问题。 本文语境说明;不是已接受的独立知识专题。

窗口 128 与 1024 的比较描述局部读取范围,不能直接换算为整模型速度倍数。原文的“15 个活跃参数”与其架构图的 15B 不一致;保留原句并在判断中指出单位问题。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
21
模型架构

Trinity:门的位置与残差更新尺度

图中逐元素门作用于注意力输出之后、输出投影之前;这与改变注意力得分或引入完整 DeltaNet 不同。深度缩放归一化控制残差支路初始尺度,不能仅因图中有四个归一化层便认为机制相同。 本文语境说明;不是已接受的独立知识专题…

图中逐元素门作用于注意力输出之后、输出投影之前;这与改变注意力得分或引入完整 DeltaNet 不同。深度缩放归一化控制残差支路初始尺度,不能仅因图中有四个归一化层便认为机制相同。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
22
模型架构

GLM-5:变宽、变浅与更长上下文

总参数增加可来自专家数和层尺寸,即使层数减少仍可扩大模型。作者将更浅结构与并行、延迟联系起来,但未提供独立测量;基准表现与真实任务表现仍需分开。 本文语境说明;不是已接受的独立知识专题。

总参数增加可来自专家数和层尺寸,即使层数减少仍可扩大模型。作者将更浅结构与并行、延迟联系起来,但未提供独立测量;基准表现与真实任务表现仍需分开。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
23
模型架构

发布列表与文章更新痕迹

这篇文章经过多次增补,列表数量、月份和交叉章节编号存在不一致。正文按保存件完整保留;这些编辑痕迹不应通过删除条目或改写原文来掩盖。 本文语境说明;不是已接受的独立知识专题。

这篇文章经过多次增补,列表数量、月份和交叉章节编号存在不一致。正文按保存件完整保留;这些编辑痕迹不应通过删除条目或改写原文来掩盖。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
24
模型架构

Gemma 4 与后续阅读

稠密与 MoE 版本的总参数、活跃参数不能混为一谈。基准图体现具体版本与任务,竞技场分数还受偏好影响。画廊用于快速定位,文末教材与支持邀请属于原作者内容,不是站点推荐或执行指令。 本文语境说明;不是已接受的独立知识专题。

稠密与 MoE 版本的总参数、活跃参数不能混为一谈。基准图体现具体版本与任务,竞技场分数还受偏好影响。画廊用于快速定位,文末教材与支持邀请属于原作者内容,不是站点推荐或执行指令。

本文语境说明;不是已接受的独立知识专题。

回到解读:The Big LLM Architecture Comparison
25
本地导入

微调经验

作者说明自己有超过两年的大语言模型微调经验,为后续技术清单提供个人背景。 本文语境解释,未作为独立知识专题收录。

作者说明自己有超过两年的大语言模型微调经验,为后续技术清单提供个人背景。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
26
本地导入

15 项微调技术

作者将介绍一组用于大语言模型微调的技术,并以个人学习选择的形式呈现。 本文语境解释,未作为独立知识专题收录。

作者将介绍一组用于大语言模型微调的技术,并以个人学习选择的形式呈现。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
27
本地导入

收藏提示

作者建议读者保存这份技术清单,以便之后查阅。 本文语境解释,未作为独立知识专题收录。

作者建议读者保存这份技术清单,以便之后查阅。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
28
本地导入

LoRA

LoRA 通过不更新基础权重、仅训练低秩更新矩阵来降低微调参数量。 本文语境解释,未作为独立知识专题收录。

LoRA 通过不更新基础权重、仅训练低秩更新矩阵来降低微调参数量。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
29
本地导入

QLoRA

QLoRA 将 LoRA 应用于经过 4 位量化的基础模型,结合参数高效微调与量化。 本文语境解释,未作为独立知识专题收录。

QLoRA 将 LoRA 应用于经过 4 位量化的基础模型,结合参数高效微调与量化。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
30
本地导入

前缀调优

该方法在各层注意力机制的键和值之前加入可训练向量,而不更新原有权重。 本文语境解释,未作为独立知识专题收录。

该方法在各层注意力机制的键和值之前加入可训练向量,而不更新原有权重。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
31
本地导入

适配器调优

适配器调优通过在 Transformer 层之间增加小型模块来学习任务相关变化。 本文语境解释,未作为独立知识专题收录。

适配器调优通过在 Transformer 层之间增加小型模块来学习任务相关变化。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
32
本地导入

指令调优

该方法使用指令与对应回答组成的监督数据,使训练目标从普通文本续写扩展到指令遵循。 本文语境解释,未作为独立知识专题收录。

该方法使用指令与对应回答组成的监督数据,使训练目标从普通文本续写扩展到指令遵循。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
33
本地导入

P-tuning

P-tuning 学习连续的提示表示,并借助小型编码器进行优化;作者将其主要应用场景指向自然语言理解任务。 本文语境解释,未作为独立知识专题收录。

P-tuning 学习连续的提示表示,并借助小型编码器进行优化;作者将其主要应用场景指向自然语言理解任务。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
34
本地导入

BitFit

BitFit 将可训练部分限制为偏置参数,以极少的参数参与训练;作者声称其在中小型数据集上的效果接近全量微调。 本文语境解释,未作为独立知识专题收录。

BitFit 将可训练部分限制为偏置参数,以极少的参数参与训练;作者声称其在中小型数据集上的效果接近全量微调。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
35
本地导入

软提示

软提示通过训练连续向量控制一个冻结模型的行为,替代人工编写的离散词元提示。 本文语境解释,未作为独立知识专题收录。

软提示通过训练连续向量控制一个冻结模型的行为,替代人工编写的离散词元提示。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
36
本地导入

RLHF

RLHF 先利用人类对回答的偏好排序训练奖励模型,再通过 PPO 优化模型,使输出更符合这些偏好。 本文语境解释,未作为独立知识专题收录。

RLHF 先利用人类对回答的偏好排序训练奖励模型,再通过 PPO 优化模型,使输出更符合这些偏好。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
37
本地导入

RLAIF

RLAIF 使用大语言模型进行评价,以替代人类标注者生成偏好信号。 本文语境解释,未作为独立知识专题收录。

RLAIF 使用大语言模型进行评价,以替代人类标注者生成偏好信号。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
38
本地导入

直接偏好优化

DPO 直接利用偏好数据对训练模型,不再单独训练奖励模型;作者将其描述为比 PPO 更简单。 本文语境解释,未作为独立知识专题收录。

DPO 直接利用偏好数据对训练模型,不再单独训练奖励模型;作者将其描述为比 PPO 更简单。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
39
本地导入

群组相对策略优化

GRPO 通过比较同一提示下的一组回答,并在组内归一化奖励来进行策略优化。作者还将该方法与 DeepSeek R1 联系起来。 本文语境解释,未作为独立知识专题收录。

GRPO 通过比较同一提示下的一组回答,并在组内归一化奖励来进行策略优化。作者还将该方法与 DeepSeek R1 联系起来。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
40
本地导入

基于可验证奖励的强化学习

RLVR 使用检查器或编译器对答案进行验证并产生奖励,而不是依赖学习得到的奖励模型。作者将其与 R1 的数学和代码训练信号联系起来。 本文语境解释,未作为独立知识专题收录。

RLVR 使用检查器或编译器对答案进行验证并产生奖励,而不是依赖学习得到的奖励模型。作者将其与 R1 的数学和代码训练信号联系起来。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
41
本地导入

多任务微调

多任务微调把多个任务放在同一训练过程中,目标是促进表示共享和跨任务泛化,并降低只适应单一目标的倾向。 本文语境解释,未作为独立知识专题收录。

多任务微调把多个任务放在同一训练过程中,目标是促进表示共享和跨任务泛化,并降低只适应单一目标的倾向。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
42
本地导入

联邦微调

联邦微调让多个客户端在本地处理数据,并交换权重更新而非原始数据,面向数据必须留在设备上的场景。 本文语境解释,未作为独立知识专题收录。

联邦微调让多个客户端在本地处理数据,并交换权重更新而非原始数据,面向数据必须留在设备上的场景。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
43
本地导入

GRPO 与 RLVR 的奖励

该段说明 GRPO 所需的奖励形式,并指出 RLVR 可通过检查器或编译器为数学和代码回答生成单一标量奖励。 本文语境解释,未作为独立知识专题收录。

该段说明 GRPO 所需的奖励形式,并指出 RLVR 可通过检查器或编译器为数学和代码回答生成单一标量奖励。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
44
本地导入

缺少标准答案的任务

作者指出,检索增强生成回答、客服回复和摘要等任务通常难以直接通过标准答案进行逐一比对。 本文语境解释,未作为独立知识专题收录。

作者指出,检索增强生成回答、客服回复和摘要等任务通常难以直接通过标准答案进行逐一比对。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
45
本地导入

手写奖励函数

当缺少可直接验证的标准答案时,作者提出使用人工设计的奖励函数评估回答是否忠实、是否产生幻觉以及是否完整。 本文语境解释,未作为独立知识专题收录。

当缺少可直接验证的标准答案时,作者提出使用人工设计的奖励函数评估回答是否忠实、是否产生幻觉以及是否完整。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
46
本地导入

手写奖励函数的局限

作者列出手写奖励函数的维护问题:校准耗时,权重偏差可能诱导错误行为,系统变化还可能使原有函数不再适用。 本文语境解释,未作为独立知识专题收录。

作者列出手写奖励函数的维护问题:校准耗时,权重偏差可能诱导错误行为,系统变化还可能使原有函数不再适用。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
47
本地导入

RULER

作者提出 RULER 作为上述奖励设计问题的解决方案,并说明它是在 OpenPipe 的开源 ART 中实现的。 本文语境解释,未作为独立知识专题收录。

作者提出 RULER 作为上述奖励设计问题的解决方案,并说明它是在 OpenPipe 的开源 ART 中实现的。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
48
本地导入

RULER 的训练流程

该流程使用评判型 LLM 比较同一训练情境下采样得到的多条轨迹,并依据智能体系统提示生成相对排名和分数。 本文语境解释,未作为独立知识专题收录。

该流程使用评判型 LLM 比较同一训练情境下采样得到的多条轨迹,并依据智能体系统提示生成相对排名和分数。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
49
本地导入

相对排名与组内归一化

作者认为,相对排名的稳定性高于绝对评分;由于 GRPO 会在组内归一化,排名可以直接用于后续流程,并将其与 RLVR 的流程相类比。 本文语境解释,未作为独立知识专题收录。

作者认为,相对排名的稳定性高于绝对评分;由于 GRPO 会在组内归一化,排名可以直接用于后续流程,并将其与 RLVR 的流程相类比。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
50
本地导入

GitHub 仓库

作者提供了 OpenPipe/ART 项目的 GitHub 仓库地址,原文同时包含一个指向该地址的链接。 本文语境解释,未作为独立知识专题收录。

作者提供了 OpenPipe/ART 项目的 GitHub 仓库地址,原文同时包含一个指向该地址的链接。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
51
本地导入

请求收藏项目

作者请求读者在 GitHub 上为该项目点 star,并保留了星星表情。 本文语境解释,未作为独立知识专题收录。

作者请求读者在 GitHub 上为该项目点 star,并保留了星星表情。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
52
本地导入

完整方法分析

作者表示,自己近期撰写了一篇文章,内容涵盖该方法的具体运作方式、训练循环以及代码。 本文语境解释,未作为独立知识专题收录。

作者表示,自己近期撰写了一篇文章,内容涵盖该方法的具体运作方式、训练循环以及代码。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
53
本地导入

引导阅读

作者引导读者继续阅读下方内容,承接前文所述的完整分析文章。 本文语境解释,未作为独立知识专题收录。

作者引导读者继续阅读下方内容,承接前文所述的完整分析文章。

本文语境解释,未作为独立知识专题收录。

回到解读:I have been fine-tuning LLMs for over 2 years now!
54
本地导入

KV 缓存工程概览

本文将介绍 KV 缓存增长的原因、减少缓存的技术及其适用条件。 本文语境解释,未作为独立知识专题收录。

本文将介绍 KV 缓存增长的原因、减少缓存的技术及其适用条件。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
55
本地导入

内存规划起点

模型加载并不等于完成推理阶段的显存规划。 本文语境解释,未作为独立知识专题收录。

模型加载并不等于完成推理阶段的显存规划。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
56
本地导入

缓存会随序列增长

权重通常是相对固定的显存占用,而 KV 缓存会按照生成或保留的 token 数量增长,并按活跃序列分别占用。 本文语境解释,未作为独立知识专题收录。

权重通常是相对固定的显存占用,而 KV 缓存会按照生成或保留的 token 数量增长,并按活跃序列分别占用。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
57
本地导入

长序列的缓存成本

该例用 Llama 3.1 70B 和 128K token 序列说明 KV 缓存的规模,并展示并发序列会带来的额外显存需求。 本文语境解释,未作为独立知识专题收录。

该例用 Llama 3.1 70B 和 128K token 序列说明 KV 缓存的规模,并展示并发序列会带来的额外显存需求。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
58
本地导入

缓存的两类成本

KV 缓存同时影响显存容量和生成期间注意力层的读取工作。 本文语境解释,未作为独立知识专题收录。

KV 缓存同时影响显存容量和生成期间注意力层的读取工作。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
59
本地导入

优化作用于不同环节

KV 缓存优化并非只有一种形式:它们可能改变缓存表示、缓存长度、精度,或改进缓存管理方式。 本文语境解释,未作为独立知识专题收录。

KV 缓存优化并非只有一种形式:它们可能改变缓存表示、缓存长度、精度,或改进缓存管理方式。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
60
本地导入

文章组织方式

文章将十二种技术按节省对象、应用时机和代价进行分类,并计划用示例说明。 本文语境解释,未作为独立知识专题收录。

文章将十二种技术按节省对象、应用时机和代价进行分类,并计划用示例说明。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
61
本地导入

缓存公式

本节将用公式说明 KV 缓存大小由哪些因素决定。 本文语境解释,未作为独立知识专题收录。

本节将用公式说明 KV 缓存大小由哪些因素决定。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
62
本地导入

每个 token 的键值

KV 缓存的基本内容是注意力层针对保留 token 保存的 key 和 value。 本文语境解释,未作为独立知识专题收录。

KV 缓存的基本内容是注意力层针对保留 token 保存的 key 和 value。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
63
本地导入

原始缓存大小

这句话引出单个序列 KV 缓存大小的计算公式。 本文语境解释,未作为独立知识专题收录。

这句话引出单个序列 KV 缓存大小的计算公式。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
64
本地导入

数据类型与字节数

公式中的 2 来自 key 和 value 两类数据;数据类型决定每个值占用的字节数。 本文语境解释,未作为独立知识专题收录。

公式中的 2 来自 key 和 value 两类数据;数据类型决定每个值占用的字节数。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
65
本地导入

按公式分组

缓存公式中的不同维度可以对应不同的优化方向。 本文语境解释,未作为独立知识专题收录。

缓存公式中的不同维度可以对应不同的优化方向。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
66
本地导入

减少 KV 头

这两种方法通过减少用于 KV 的头数量来降低相关缓存规模。 本文语境解释,未作为独立知识专题收录。

这两种方法通过减少用于 KV 的头数量来降低相关缓存规模。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
67
本地导入

减少缓存层

跨层注意力通过让缓存层不再一一对应于所有层,减少需要存储的唯一层数量。 本文语境解释,未作为独立知识专题收录。

跨层注意力通过让缓存层不再一一对应于所有层,减少需要存储的唯一层数量。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
68
本地导入

减少保留 token

这些方法限制或移除部分历史 token,使缓存不必保存全部序列内容。 本文语境解释,未作为独立知识专题收录。

这些方法限制或移除部分历史 token,使缓存不必保存全部序列内容。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
69
本地导入

缩窄存储表示

MLA 的节省方向是降低缓存中每个表示的宽度。 本文语境解释,未作为独立知识专题收录。

MLA 的节省方向是降低缓存中每个表示的宽度。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
70
本地导入

降低每值字节数

量化通过使用更低精度的表示,减少缓存中每个值的存储空间。 本文语境解释,未作为独立知识专题收录。

量化通过使用更低精度的表示,减少缓存中每个值的存储空间。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
71
本地导入

固定大小状态

这类架构不再让缓存随序列持续增长,而是使用固定大小的状态来承载信息。 本文语境解释,未作为独立知识专题收录。

这类架构不再让缓存随序列持续增长,而是使用固定大小的状态来承载信息。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
72
本地导入

减少分配与重复

这两种服务引擎技术分别针对内存分配效率和可共享前缀造成的重复存储。 本文语境解释,未作为独立知识专题收录。

这两种服务引擎技术分别针对内存分配效率和可共享前缀造成的重复存储。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
73
本地导入

稀疏注意力的区别

稀疏注意力减少的是每次读取或计算涉及的 token 数,而不一定减少缓存实际存储的 token 数。 本文语境解释,未作为独立知识专题收录。

稀疏注意力减少的是每次读取或计算涉及的 token 数,而不一定减少缓存实际存储的 token 数。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
74
本地导入

速度不等于容量

优化读取或计算速度不能自动降低缓存的显存占用,因此不一定能增加可容纳的序列数量。 本文语境解释,未作为独立知识专题收录。

优化读取或计算速度不能自动降低缓存的显存占用,因此不一定能增加可容纳的序列数量。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
75
本地导入

技术图谱

本节标题引出对十二种技术的整体对照。 本文语境解释,未作为独立知识专题收录。

本节标题引出对十二种技术的整体对照。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
76
本地导入

十二种技术总览

该图表按缓存结构或管理中的不同维度,对十二种技术的主要节省来源进行并列展示。 本文语境解释,未作为独立知识专题收录。

该图表按缓存结构或管理中的不同维度,对十二种技术的主要节省来源进行并列展示。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
77
本地导入

表格所代表的内容

表格用于概括不同技术各自针对的缓存问题。 本文语境解释,未作为独立知识专题收录。

表格用于概括不同技术各自针对的缓存问题。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
78
本地导入

技术象限分类

本段说明象限图的分类依据,并指出完整技术列表仍可在前文表格中找到。 本文语境解释,未作为独立知识专题收录。

本段说明象限图的分类依据,并指出完整技术列表仍可在前文表格中找到。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
79
本地导入

按表格顺序展开

本段交代后文结构:作者会依照完整表格的顺序解释各项内容。 本文语境解释,未作为独立知识专题收录。

本段交代后文结构:作者会依照完整表格的顺序解释各项内容。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
80
本地导入

GQA 与 MQA 减少缓存头数

本节标题指出,分组查询注意力(GQA)和多查询注意力(MQA)通过减少需要缓存的头来节省缓存。 本文语境解释,未作为独立知识专题收录。

本节标题指出,分组查询注意力(GQA)和多查询注意力(MQA)通过减少需要缓存的头来节省缓存。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
81
本地导入

减少 KV 头数

作者将缓存开销公式中的 KV 头数量视为重要因素,因此认为从架构上减少该数量能够显著降低开销。 本文语境解释,未作为独立知识专题收录。

作者将缓存开销公式中的 KV 头数量视为重要因素,因此认为从架构上减少该数量能够显著降低开销。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
82
本地导入

每个 token 的三种表示

本段引出 Transformer 注意力机制中的查询(Q)、键(K)和值(V)三种表示。 本文语境解释,未作为独立知识专题收录。

本段引出 Transformer 注意力机制中的查询(Q)、键(K)和值(V)三种表示。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
83
本地导入

查询的作用

查询向量表达当前 token 在注意力计算中希望获取的信息。 本文语境解释,未作为独立知识专题收录。

查询向量表达当前 token 在注意力计算中希望获取的信息。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
84
本地导入

键的作用

键向量用于表示此前 token 的可匹配特征,并与当前查询进行比较。 本文语境解释,未作为独立知识专题收录。

键向量用于表示此前 token 的可匹配特征,并与当前查询进行比较。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
85
本地导入

值的作用

值向量承载注意力加权后汇聚并返回给当前计算的信息。 本文语境解释,未作为独立知识专题收录。

值向量承载注意力加权后汇聚并返回给当前计算的信息。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
86
本地导入

查询与缓存键比较

作者说明自回归生成时,当前 token 产生的查询会用于和此前保存的键计算匹配关系。 本文语境解释,未作为独立知识专题收录。

作者说明自回归生成时,当前 token 产生的查询会用于和此前保存的键计算匹配关系。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
87
本地导入

缓存 K 和 V 而不缓存 Q

本段解释 KV 缓存的核心逻辑:查询用于当前步骤的匹配,键和值则被保留,以便后续解码重复使用。 本文语境解释,未作为独立知识专题收录。

本段解释 KV 缓存的核心逻辑:查询用于当前步骤的匹配,键和值则被保留,以便后续解码重复使用。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
88
本地导入

作者姓名

这是所引用内容的作者署名。 本文语境解释,未作为独立知识专题收录。

这是所引用内容的作者署名。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
89
本地导入

作者账号

这是所引用内容显示的社交媒体账号。 本文语境解释,未作为独立知识专题收录。

这是所引用内容显示的社交媒体账号。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
90
本地导入

分隔符

这是作者信息与日期之间的分隔符。 本文语境解释,未作为独立知识专题收录。

这是作者信息与日期之间的分隔符。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
91
本地导入

发布日期

这是所引用内容显示的日期。 本文语境解释,未作为独立知识专题收录。

这是所引用内容显示的日期。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
92
本地导入

为什么缓存 K 和 V 而不是 Q

这段引用提出 KV 缓存为何保存键和值而不保存查询的问题,并以自回归、逐 token 预测作为后续解释的背景。文本在“一次前向传递”处结束。 本文语境解释,未作为独立知识专题收录。

这段引用提出 KV 缓存为何保存键和值而不保存查询的问题,并以自回归、逐 token 预测作为后续解释的背景。文本在“一次前向传递”处结束。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
93
本地导入

GIF 标记

这是原文中对 GIF 媒体或动图内容的标记。 本文语境解释,未作为独立知识专题收录。

这是原文中对 GIF 媒体或动图内容的标记。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
94
本地导入

引用标记

这是原文界面中表示引用内容的标签。 本文语境解释,未作为独立知识专题收录。

这是原文界面中表示引用内容的标签。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
95
本地导入

引用作者姓名

这是引用内容显示的作者署名。 本文语境解释,未作为独立知识专题收录。

这是引用内容显示的作者署名。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
96
本地导入

引用作者账号

这是引用内容显示的社交媒体账号。 本文语境解释,未作为独立知识专题收录。

这是引用内容显示的社交媒体账号。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
97
本地导入

分隔符

这是作者信息与日期之间的分隔符。 本文语境解释,未作为独立知识专题收录。

这是作者信息与日期之间的分隔符。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
98
本地导入

引用日期

这是引用内容显示的日期。 本文语境解释,未作为独立知识专题收录。

这是引用内容显示的日期。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
99
本地导入

内容类型

这是原文界面中对后续内容类型的标注。 本文语境解释,未作为独立知识专题收录。

这是原文界面中对后续内容类型的标注。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
100
本地导入

LLM 中的四类缓存

这是相关文章标题,表明文章将讨论大语言模型中的 KV 缓存、前缀缓存、提示词缓存和语义缓存。 本文语境解释,未作为独立知识专题收录。

这是相关文章标题,表明文章将讨论大语言模型中的 KV 缓存、前缀缓存、提示词缓存和语义缓存。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
101
本地导入

缓存层文章简介

这段简介声称文章将解释输入 token 的重复计算位置、应对方式、四个缓存层及其权衡;原文在“当它们……”处截断。 本文语境解释,未作为独立知识专题收录。

这段简介声称文章将解释输入 token 的重复计算位置、应对方式、四个缓存层及其权衡;原文在“当它们……”处截断。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
102
本地导入

数值

这是原文中的数值片段,单独出现,未提供更多上下文。 本文语境解释,未作为独立知识专题收录。

这是原文中的数值片段,单独出现,未提供更多上下文。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
103
本地导入

注意力头

本句说明注意力表示的结构:整体表示会被划分为多个较小的头。 本文语境解释,未作为独立知识专题收录。

本句说明注意力表示的结构:整体表示会被划分为多个较小的头。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
104
本地导入

查询头的含义

作者区分了查询头与用户输入或模型请求,强调查询头只是词元查询表示的一部分,并可分别建模序列中的关系。 本文语境解释,未作为独立知识专题收录。

作者区分了查询头与用户输入或模型请求,强调查询头只是词元查询表示的一部分,并可分别建模序列中的关系。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
105
本地导入

标准多头注意力

MHA 为每个查询头分别配置键和值头,因此查询头、键头和值头的数量相同;缓存按注意力层分别保存。 本文语境解释,未作为独立知识专题收录。

MHA 为每个查询头分别配置键和值头,因此查询头、键头和值头的数量相同;缓存按注意力层分别保存。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
106
本地导入

多查询注意力

MQA 让多个查询头共同读取一对键和值头,从而减少每层保存的 KV 头数量;这种共享范围限制在单层内。 本文语境解释,未作为独立知识专题收录。

MQA 让多个查询头共同读取一对键和值头,从而减少每层保存的 KV 头数量;这种共享范围限制在单层内。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
107
本地导入

分组查询注意力

GQA 在 MHA 的逐头配置与 MQA 的全头共享之间折中,以查询头分组的方式分配 KV 头。 本文语境解释,未作为独立知识专题收录。

GQA 在 MHA 的逐头配置与 MQA 的全头共享之间折中,以查询头分组的方式分配 KV 头。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
108
本地导入

层内与跨层共享

作者将 MHA、MQA 和 GQA 的层内头共享,与跨层注意力的层间缓存共享区分开来。 本文语境解释,未作为独立知识专题收录。

作者将 MHA、MQA 和 GQA 的层内头共享,与跨层注意力的层间缓存共享区分开来。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
109
本地导入

GQA 的位置

本句用连续布局中的位置概括 GQA:它在每头独立的 MHA 与高度共享的 MQA 之间。 本文语境解释,未作为独立知识专题收录。

本句用连续布局中的位置概括 GQA:它在每头独立的 MHA 与高度共享的 MQA 之间。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
110
本地导入

GQA 的恢复训练

该段描述一种从已有 MHA 检查点转换到 GQA 的训练做法,并比较了训练后模型的质量与速度表现。 本文语境解释,未作为独立知识专题收录。

该段描述一种从已有 MHA 检查点转换到 GQA 的训练做法,并比较了训练后模型的质量与速度表现。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
111
本地导入

头映射示例

示例将比较八个查询头在 MHA、GQA 和 MQA 中的 KV 映射,并计算六个词元需要缓存的标量数。 本文语境解释,未作为独立知识专题收录。

示例将比较八个查询头在 MHA、GQA 和 MQA 中的 KV 映射,并计算六个词元需要缓存的标量数。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
112
本地导入

代码语言标记

这是代码单元前的语言标记,表明后续代码使用 Python。 本文语境解释,未作为独立知识专题收录。

这是代码单元前的语言标记,表明后续代码使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
113
本地导入

KV 头映射与缓存计数代码

代码设置八个查询头、六个词元和每头八个标量,分别计算 MHA、GQA、MQA 中每个查询头对应的 KV 头,以及同时存储键和值时的缓存标量数量。映射通过每个 KV 头承接的查询头数量计算;缓存数量通过键和值数量、KV 头…

代码设置八个查询头、六个词元和每头八个标量,分别计算 MHA、GQA、MQA 中每个查询头对应的 KV 头,以及同时存储键和值时的缓存标量数量。映射通过每个 KV 头承接的查询头数量计算;缓存数量通过键和值数量、KV 头数、词元数和每头大小相乘得到。注释中的输出展示了三种布局的映射和计数。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
114
本地导入

查询头到 KV 头的映射

本句解释上一段代码中的映射列表,比较三种注意力布局如何分配或共享 KV 头。 本文语境解释,未作为独立知识专题收录。

本句解释上一段代码中的映射列表,比较三种注意力布局如何分配或共享 KV 头。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
115
本地导入

缓存计数公式

缓存大小先将键和值都计入,再结合词元数量和每个头的标量数量计算总数。 本文语境解释,未作为独立知识专题收录。

缓存大小先将键和值都计入,再结合词元数量和每个头的标量数量计算总数。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
116
本地导入

Llama 3.1 70B 的缓存规模

该段用具体模型配置和上下文长度说明减少 KV 头数量如何降低 BF16 KV 缓存的存储需求。 本文语境解释,未作为独立知识专题收录。

该段用具体模型配置和上下文长度说明减少 KV 头数量如何降低 BF16 KV 缓存的存储需求。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
117
本地导入

存储比例与质量评估

作者区分了代码能够说明的存储量变化与不能说明的模型质量变化;头共享带来的质量影响需要训练后评测。 本文语境解释,未作为独立知识专题收录。

作者区分了代码能够说明的存储量变化与不能说明的模型质量变化;头共享带来的质量影响需要训练后评测。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
118
本地导入

跨层注意力

这是介绍跨层注意力机制的章节标题。 本文语境解释,未作为独立知识专题收录。

这是介绍跨层注意力机制的章节标题。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
119
本地导入

跨层共享与 GQA

本句对比两种共享维度:GQA 的共享发生在单层内的头之间,而跨层注意力的共享发生在相邻层之间。 本文语境解释,未作为独立知识专题收录。

本句对比两种共享维度:GQA 的共享发生在单层内的头之间,而跨层注意力的共享发生在相邻层之间。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
120
本地导入

共享因子为二

当两个层共同使用一份 KV 缓存时,相对于各自独立保存缓存,独特的层缓存数量减半。 本文语境解释,未作为独立知识专题收录。

当两个层共同使用一份 KV 缓存时,相对于各自独立保存缓存,独特的层缓存数量减半。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
121
本地导入

CLA 的缓存减少

该段转述 CLA 论文的实验报告:在 1B 和 3B 模型上,跨层共享进一步减少 KV 缓存,并以 MQA 作为准确率比较基线。 本文语境解释,未作为独立知识专题收录。

该段转述 CLA 论文的实验报告:在 1B 和 3B 模型上,跨层共享进一步减少 KV 缓存,并以 MQA 作为准确率比较基线。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
122
本地导入

共享缓存分配示例

后续代码用两个层指向同一个缓存对象的方式,表示跨层共享一份缓存分配。 本文语境解释,未作为独立知识专题收录。

后续代码用两个层指向同一个缓存对象的方式,表示跨层共享一份缓存分配。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
123
本地导入

代码语言标记

这是代码单元前的语言标记,表明后续代码使用 Python。 本文语境解释,未作为独立知识专题收录。

这是代码单元前的语言标记,表明后续代码使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
124
本地导入

跨层共享缓存代码

代码设置 32 个词元、2 个 KV 头和每头 8 个标量,先计算一个层独立缓存所需的标量数,再让两个层引用同一个缓存对象,并比较独立缓存与共享缓存的总量。注释中的输出显示,两个独立层缓存需要 2048 个标量,共享一份…

代码设置 32 个词元、2 个 KV 头和每头 8 个标量,先计算一个层独立缓存所需的标量数,再让两个层引用同一个缓存对象,并比较独立缓存与共享缓存的总量。注释中的输出显示,两个独立层缓存需要 2048 个标量,共享一份缓存需要 1024 个标量。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
125
本地导入

独立与共享缓存计数

本句解释示例中的数值:单层缓存包含键和值共 1024 个标量,两个独立层则将这一数量相加。 本文语境解释,未作为独立知识专题收录。

本句解释示例中的数值:单层缓存包含键和值共 1024 个标量,两个独立层则将这一数量相加。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
126
本地导入

共享同一对象

本段说明跨层缓存共享如何减少物理存储:多个逻辑层可以引用同一个缓存对象。 本文语境解释,未作为独立知识专题收录。

本段说明跨层缓存共享如何减少物理存储:多个逻辑层可以引用同一个缓存对象。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
127
本地导入

CLA 与 GQA 的互补节省

本段区分两种节省来源:GQA 针对每层的 KV 头数,CLA 针对模型范围内的层缓存数。 本文语境解释,未作为独立知识专题收录。

本段区分两种节省来源:GQA 针对每层的 KV 头数,CLA 针对模型范围内的层缓存数。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
128
本地导入

标准检查点的独立缓存

本段解释标准模型中层与自身 KV 投影、缓存之间的对应关系,以及跨层重定向可能改变计算。 本文语境解释,未作为独立知识专题收录。

本段解释标准模型中层与自身 KV 投影、缓存之间的对应关系,以及跨层重定向可能改变计算。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
129
本地导入

训练与服务必须匹配

本段说明 CLA 的共享关系是训练阶段模型行为的一部分,因此部署时需要保持相同的缓存归属关系。 本文语境解释,未作为独立知识专题收录。

本段说明 CLA 的共享关系是训练阶段模型行为的一部分,因此部署时需要保持相同的缓存归属关系。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
130
本地导入

CLA 不是通用开关

本段将 CLA 的限制归因于检查点中的层间缓存所有权模式,运行时不能脱离该模式单独启用。 本文语境解释,未作为独立知识专题收录。

本段将 CLA 的限制归因于检查点中的层间缓存所有权模式,运行时不能脱离该模式单独启用。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
131
本地导入

滑动窗口

本节转向另一种 KV 缓存优化:限制选定层所保留的令牌范围。 本文语境解释,未作为独立知识专题收录。

本节转向另一种 KV 缓存优化:限制选定层所保留的令牌范围。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
132
本地导入

两种不同的缓存缩减

本段对比 CLA 与滑动窗口注意力:前者减少缓存层的数量,后者减少某些层中缓存令牌的数量。 本文语境解释,未作为独立知识专题收录。

本段对比 CLA 与滑动窗口注意力:前者减少缓存层的数量,后者减少某些层中缓存令牌的数量。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
133
本地导入

完整注意力的缓存增长

由于完整自注意力保留对所有历史令牌的访问,每层都需要保存整个序列对应的键和值。 本文语境解释,未作为独立知识专题收录。

由于完整自注意力保留对所有历史令牌的访问,每层都需要保存整个序列对应的键和值。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
134
本地导入

固定大小的局部窗口

本段说明窗口达到上限后如何用新令牌替换最旧令牌,使该层的缓存容量保持不变。 本文语境解释,未作为独立知识专题收录。

本段说明窗口达到上限后如何用新令牌替换最旧令牌,使该层的缓存容量保持不变。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
135
本地导入

局部层与全局层

本段定义局部层和全局层的区别:局部层受窗口限制,全局层保留完整历史访问能力。 本文语境解释,未作为独立知识专题收录。

本段定义局部层和全局层的区别:局部层受窗口限制,全局层保留完整历史访问能力。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
136
本地导入

混合局部与全局层

混合设计让多数层使用固定窗口,同时用少量全局层维持远距离上下文访问,从而降低总体缓存增长速度。 本文语境解释,未作为独立知识专题收录。

混合设计让多数层使用固定窗口,同时用少量全局层维持远距离上下文访问,从而降低总体缓存增长速度。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
137
本地导入

Gemma 3 的层模式

本段给出一个具体模式示例,用五个局部层配一个全局层,并列出局部窗口与全局上下文长度。 本文语境解释,未作为独立知识专题收录。

本段给出一个具体模式示例,用五个局部层配一个全局层,并列出局部窗口与全局上下文长度。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
138
本地导入

四令牌窗口示例

本段引出一个小型示例,用于展示滑动窗口如何随新令牌到来而保留位置。 本文语境解释,未作为独立知识专题收录。

本段引出一个小型示例,用于展示滑动窗口如何随新令牌到来而保留位置。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
139
本地导入

Python 示例标记

这是代码块的语言标记,表明后续代码使用 Python。 本文语境解释,未作为独立知识专题收录。

这是代码块的语言标记,表明后续代码使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
140
本地导入

滑动窗口代码

代码将窗口大小设为 4,依次处理位置 0 到 9:每次加入当前位置;如果列表超过窗口大小,就移除第一个位置;随后打印当前保留位置,并打印最大保留位置。注释中的输出展示了窗口从 [0, 1, 2, 3] 逐步滑到 [6, …

代码将窗口大小设为 4,依次处理位置 0 到 9:每次加入当前位置;如果列表超过窗口大小,就移除第一个位置;随后打印当前保留位置,并打印最大保留位置。注释中的输出展示了窗口从 [0, 1, 2, 3] 逐步滑到 [6, 7, 8, 9]。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
141
本地导入

窗口移除最旧位置

本段用位置 4 的到来说明窗口满后如何删除最早保留的位置。 本文语境解释,未作为独立知识专题收录。

本段用位置 4 的到来说明窗口满后如何删除最早保留的位置。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
142
本地导入

环形缓冲区实现

本段说明生产引擎可以用环形缓冲区复用固定槽位,避免每次窗口滑动都移动剩余条目。 本文语境解释,未作为独立知识专题收录。

本段说明生产引擎可以用环形缓冲区复用固定槽位,避免每次窗口滑动都移动剩余条目。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
143
本地导入

窗口逐步前移

本段总结四槽位窗口从位置 0 到 3 逐步前移到位置 6 到 9 的过程,并强调容量不变。 本文语境解释,未作为独立知识专题收录。

本段总结四槽位窗口从位置 0 到 3 逐步前移到位置 6 到 9 的过程,并强调容量不变。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
144
本地导入

节省取决于上下文长度

本段指出,在序列尚未超过局部窗口时,局部布局与完整布局需要保留相同数量的位置;超出窗口后才产生节省。 本文语境解释,未作为独立知识专题收录。

本段指出,在序列尚未超过局部窗口时,局部布局与完整布局需要保留相同数量的位置;超出窗口后才产生节省。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
145
本地导入

多头潜在注意力

本节介绍 MLA,一种通过存储较小潜在表示来降低 KV 缓存需求的方法。 本文语境解释,未作为独立知识专题收录。

本节介绍 MLA,一种通过存储较小潜在表示来降低 KV 缓存需求的方法。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
146
本地导入

MLA 压缩隐藏状态

本段说明 MLA 不直接保存每个注意力头的完整 KV,而是保存压缩后的潜在表示。 本文语境解释,未作为独立知识专题收录。

本段说明 MLA 不直接保存每个注意力头的完整 KV,而是保存压缩后的潜在表示。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
147
本地导入

解码时恢复信息

本段说明模型在生成解码阶段通过训练得到的投影,从潜在表示中取得注意力所需的信息。 本文语境解释,未作为独立知识专题收录。

本段说明模型在生成解码阶段通过训练得到的投影,从潜在表示中取得注意力所需的信息。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
148
本地导入

吸收投影以避免重建

本段描述一种实现方式:把部分投影并入查询和输出路径,减少对完整 KV 张量显式重建的需要。 本文语境解释,未作为独立知识专题收录。

本段描述一种实现方式:把部分投影并入查询和输出路径,减少对完整 KV 张量显式重建的需要。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
149
本地导入

DeepSeek-V2 的 MLA 数据

本段将 MLA 设计归于 DeepSeek-V2,并引用论文报告的 KV 缓存减少比例和最大生成吞吐量提升倍数。 本文语境解释,未作为独立知识专题收录。

本段将 MLA 设计归于 DeepSeek-V2,并引用论文报告的 KV 缓存减少比例和最大生成吞吐量提升倍数。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
150
本地导入

实际 MLA 层

作者指出,真实 MLA 通过学习到的矩阵处理潜在表示,因此其底层缓存差异不一定能从简单示例中直接看出。 本文语境解释,未作为独立知识专题收录。

作者指出,真实 MLA 通过学习到的矩阵处理潜在表示,因此其底层缓存差异不一定能从简单示例中直接看出。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
151
本地导入

单个 token 的存储示例

示例通过缩小维度,直接比较标准 KV 缓存布局和 MLA 布局的存储元素数量。 本文语境解释,未作为独立知识专题收录。

示例通过缩小维度,直接比较标准 KV 缓存布局和 MLA 布局的存储元素数量。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
152
本地导入

代码语言

该单元标识后续代码使用 Python。 本文语境解释,未作为独立知识专题收录。

该单元标识后续代码使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
153
本地导入

KV 缓存存储计算

代码设置标准注意力和 MLA 的示例维度,分别计算每个 token 需要存储的标量数量,并输出二者的示例缩减比例。原文给出的输出显示,标准缓存为 64 个标量,MLA 缓存为 12 个标量,比例为 5.33 倍。 本文语…

代码设置标准注意力和 MLA 的示例维度,分别计算每个 token 需要存储的标量数量,并输出二者的示例缩减比例。原文给出的输出显示,标准缓存为 64 个标量,MLA 缓存为 12 个标量,比例为 5.33 倍。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
154
本地导入

标准注意力的存储量

作者将 key 和 value 分开计数:四个头乘以每头八个标量得到 32 个 key 标量,value 数量相同,合计 64 个。 本文语境解释,未作为独立知识专题收录。

作者将 key 和 value 分开计数:四个头乘以每头八个标量得到 32 个 key 标量,value 数量相同,合计 64 个。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
155
本地导入

MLA 布局的存储量

该段把 MLA 的两类存储量相加,再与标准注意力的 64 个标量相比,得到示例比例。 本文语境解释,未作为独立知识专题收录。

该段把 MLA 的两类存储量相加,再与标准注意力的 64 个标量相比,得到示例比例。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
156
本地导入

示例比例的适用范围

作者明确限制了 5.33 倍这一结果的适用范围,并指出实际模型的相关维度可能不同。 本文语境解释,未作为独立知识专题收录。

作者明确限制了 5.33 倍这一结果的适用范围,并指出实际模型的相关维度可能不同。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
157
本地导入

MLA 需要模型训练

作者强调,MLA 依赖模型训练得到的投影权重及相应缓存布局,不能仅在服务或推理阶段给普通 checkpoint 打开一个开关来实现。 本文语境解释,未作为独立知识专题收录。

作者强调,MLA 依赖模型训练得到的投影权重及相应缓存布局,不能仅在服务或推理阶段给普通 checkpoint 打开一个开关来实现。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
158
本地导入

混合模型与固定状态

本节转向混合架构,讨论如何通过循环层等机制,用固定大小的状态替代随上下文长度增长的缓存。 本文语境解释,未作为独立知识专题收录。

本节转向混合架构,讨论如何通过循环层等机制,用固定大小的状态替代随上下文长度增长的缓存。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
159
本地导入

循环层的固定状态

这类层通过持续更新固定大小的状态来处理更长序列,而不是像标准注意力那样为每个历史 token 保留 key 和 value。 本文语境解释,未作为独立知识专题收录。

这类层通过持续更新固定大小的状态来处理更长序列,而不是像标准注意力那样为每个历史 token 保留 key 和 value。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
160
本地导入

循环模型与完整注意力的取舍

循环结构有近似恒定的内存优势,完整注意力则在一些精确检索任务中更有优势,因此混合模型同时采用两类层。 本文语境解释,未作为独立知识专题收录。

循环结构有近似恒定的内存优势,完整注意力则在一些精确检索任务中更有优势,因此混合模型同时采用两类层。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
161
本地导入

Qwen3-Next 的混合层结构

48 层由 12 个相同结构的模块组成,每个模块只有一个完整注意力层,因此会增长的标准 KV 缓存只来自这 12 层。 本文语境解释,未作为独立知识专题收录。

48 层由 12 个相同结构的模块组成,每个模块只有一个完整注意力层,因此会增长的标准 KV 缓存只来自这 12 层。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
162
本地导入

注意力层的形状

该段列出 Qwen3-Next 注意力层的 query 头数、KV 头数和每头维度,为后续内存估算提供形状信息。 本文语境解释,未作为独立知识专题收录。

该段列出 Qwen3-Next 注意力层的 query 头数、KV 头数和每头维度,为后续内存估算提供形状信息。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
163
本地导入

注意力与循环状态的内存增长

示例将注意力的按 token 增长存储与循环层的固定矩阵状态进行对比。 本文语境解释,未作为独立知识专题收录。

示例将注意力的按 token 增长存储与循环层的固定矩阵状态进行对比。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
164
本地导入

代码语言

该单元标识后续代码使用 Python。 本文语境解释,未作为独立知识专题收录。

该单元标识后续代码使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
165
本地导入

注意力与循环状态的内存示例

代码按给定宽度和每个值的字节数,分别计算 128 和 4096 个 token 时注意力 KV 的存储量,以及循环状态的固定存储量。原文给出的输出是:注意力 KV 从 64 KB 增长到 2048 KB,而循环状态在两种…

代码按给定宽度和每个值的字节数,分别计算 128 和 4096 个 token 时注意力 KV 的存储量,以及循环状态的固定存储量。原文给出的输出是:注意力 KV 从 64 KB 增长到 2048 KB,而循环状态在两种长度下均为 16 KB。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
166
本地导入

内存是否随序列增长

注意力缓存按序列长度线性累加,而循环状态使用固定大小,因此序列从 128 增长到 4096 时,二者表现不同。 本文语境解释,未作为独立知识专题收录。

注意力缓存按序列长度线性累加,而循环状态使用固定大小,因此序列从 128 增长到 4096 时,二者表现不同。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
167
本地导入

示例的范围限制

作者说明示例仅用于说明内存规模,不涉及循环架构实际如何更新状态或筛选信息。 本文语境解释,未作为独立知识专题收录。

作者说明示例仅用于说明内存规模,不涉及循环架构实际如何更新状态或筛选信息。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
168
本地导入

混合模型的缓存增长

从 128 到 4096 个 token 是 32 倍增长,注意力缓存也随之增长;固定循环状态不变,因此混合模型的线性缓存部分只来自完整注意力层。 本文语境解释,未作为独立知识专题收录。

从 128 到 4096 个 token 是 32 倍增长,注意力缓存也随之增长;固定循环状态不变,因此混合模型的线性缓存部分只来自完整注意力层。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
169
本地导入

Qwen3-Next 的 BF16 KV 缓存

该段将 12 个完整注意力层、给定注意力形状和 128K 上下文结合起来,给出 BF16 KV 缓存的估算值。 本文语境解释,未作为独立知识专题收录。

该段将 12 个完整注意力层、给定注意力形状和 128K 上下文结合起来,给出 BF16 KV 缓存的估算值。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
170
本地导入

全部使用完整注意力的代价

将完整注意力层从 12 层增加到 48 层,相当于按层数比例扩大不断增长的 KV 缓存部分。 本文语境解释,未作为独立知识专题收录。

将完整注意力层从 12 层增加到 48 层,相当于按层数比例扩大不断增长的 KV 缓存部分。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
171
本地导入

Jamba 的注意力与 Mamba 比例

Jamba 通过较少的注意力层和较多的 Mamba 层来限制增长型 KV 缓存;原文用 256K 上下文下的 Jamba 与 Mixtral 数字进行比较。 本文语境解释,未作为独立知识专题收录。

Jamba 通过较少的注意力层和较多的 Mamba 层来限制增长型 KV 缓存;原文用 256K 上下文下的 Jamba 与 Mixtral 数字进行比较。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
172
本地导入

混合布局不能运行时替换

混合架构的层类型和布局是模型训练的一部分,因此服务引擎不能只在部署阶段随意改变层的性质来获得固定状态。 本文语境解释,未作为独立知识专题收录。

混合架构的层类型和布局是模型训练的一部分,因此服务引擎不能只在部署阶段随意改变层的性质来获得固定状态。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
173
本地导入

压缩稀疏注意力

这是下一节的标题,主题将转向通过压缩或稀疏机制降低注意力相关开销。 本文语境解释,未作为独立知识专题收录。

这是下一节的标题,主题将转向通过压缩或稀疏机制降低注意力相关开销。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
174
本地导入

完整注意力的开销

本段指出完整注意力在 KV 缓存存储和读取两方面都产生开销。 本文语境解释,未作为独立知识专题收录。

本段指出完整注意力在 KV 缓存存储和读取两方面都产生开销。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
175
本地导入

稀疏读取

稀疏注意力保留逐条存储的方式,但减少生成时读取的缓存条目。 本文语境解释,未作为独立知识专题收录。

稀疏注意力保留逐条存储的方式,但减少生成时读取的缓存条目。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
176
本地导入

更快但不更省缓存

减少读取量可能降低生成时的工作量,但如果所有条目仍驻留内存,缓存占用不会因此减少。 本文语境解释,未作为独立知识专题收录。

减少读取量可能降低生成时的工作量,但如果所有条目仍驻留内存,缓存占用不会因此减少。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
177
本地导入

同时优化两部分

该方法同时针对 KV 条目的存储数量和每步注意力读取数量进行优化。 本文语境解释,未作为独立知识专题收录。

该方法同时针对 KV 条目的存储数量和每步注意力读取数量进行优化。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
178
本地导入

合并相邻条目

通过分组压缩相邻词元,缓存中需要存储的条目数量减少。 本文语境解释,未作为独立知识专题收录。

通过分组压缩相邻词元,缓存中需要存储的条目数量减少。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
179
本地导入

选择相关条目

压缩后,选择器根据当前新词元筛选条目,注意力只处理筛选出的部分。 本文语境解释,未作为独立知识专题收录。

压缩后,选择器根据当前新词元筛选条目,注意力只处理筛选出的部分。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
180
本地导入

DeepSeek V4 的设计

本段将前述压缩与选择机制归因于 DeepSeek V4。 本文语境解释,未作为独立知识专题收录。

本段将前述压缩与选择机制归因于 DeepSeek V4。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
181
本地导入

压缩因子

压缩因子 m 表示每组包含的词元条目数,因此压缩后的条目数量约为原数量除以 m。 本文语境解释,未作为独立知识专题收录。

压缩因子 m 表示每组包含的词元条目数,因此压缩后的条目数量约为原数量除以 m。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
182
本地导入

选择与局部窗口

模型从压缩条目中读取选定的 k 个,同时通过局部窗口保留近期词元的更细粒度信息。 本文语境解释,未作为独立知识专题收录。

模型从压缩条目中读取选定的 k 个,同时通过局部窗口保留近期词元的更细粒度信息。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
183
本地导入

报告的缓存与 FLOPs

该段给出一百万词元上下文下,V4-Pro 和 V4-Flash 相对于 DeepSeek V3.2 的缓存与单词元推理 FLOPs 比例。 本文语境解释,未作为独立知识专题收录。

该段给出一百万词元上下文下,V4-Pro 和 V4-Flash 相对于 DeepSeek V3.2 的缓存与单词元推理 FLOPs 比例。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
184
本地导入

整体模型结果

报告的比例同时受到模型注意力布局和数值精度等因素影响,不能简单归因于压缩。 本文语境解释,未作为独立知识专题收录。

报告的比例同时受到模型注意力布局和数值精度等因素影响,不能简单归因于压缩。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
185
本地导入

隔离两种减少

示例分别展示了分组压缩如何减少存储条目,以及选择子集如何减少当前步骤的读取量。 本文语境解释,未作为独立知识专题收录。

示例分别展示了分组压缩如何减少存储条目,以及选择子集如何减少当前步骤的读取量。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
186
本地导入

代码语言

该单元标示后续代码使用 Python。 本文语境解释,未作为独立知识专题收录。

该单元标示后续代码使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
187
本地导入

压缩条目示例代码

代码用 32 个完整词元条目、每组 4 个条目和选择 2 个条目的示例,计算压缩后存储的条目数,并打印存储减少倍数。代码中还以注释形式列出了预期输出。 本文语境解释,未作为独立知识专题收录。

代码用 32 个完整词元条目、每组 4 个条目和选择 2 个条目的示例,计算压缩后存储的条目数,并打印存储减少倍数。代码中还以注释形式列出了预期输出。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
188
本地导入

存储与读取的区别

本段区分了压缩带来的缓存存储减少和选择子集带来的注意力读取工作量减少。 本文语境解释,未作为独立知识专题收录。

本段区分了压缩带来的缓存存储减少和选择子集带来的注意力读取工作量减少。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
189
本地导入

压缩后的缓存

压缩减少长程条目的存储数量,选择机制减少每步读取数量,局部窗口负责保留近期细节。 本文语境解释,未作为独立知识专题收录。

压缩减少长程条目的存储数量,选择机制减少每步读取数量,局部窗口负责保留近期细节。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
190
本地导入

需要模型与训练支持

压缩稀疏注意力涉及模型结构和训练过程,因此不是服务阶段单独调整缓存参数就能实现的。 本文语境解释,未作为独立知识专题收录。

压缩稀疏注意力涉及模型结构和训练过程,因此不是服务阶段单独调整缓存参数就能实现的。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
191
本地导入

面向查询的稀疏读取

该标题引出另一种方法:在不改变模型架构的前提下,减少每次解码读取的缓存量。 本文语境解释,未作为独立知识专题收录。

该标题引出另一种方法:在不改变模型架构的前提下,减少每次解码读取的缓存量。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
192
本地导入

前一种技术的效果

本段回顾压缩稀疏注意力同时降低缓存存储量与注意力读取工作量。 本文语境解释,未作为独立知识专题收录。

本段回顾压缩稀疏注意力同时降低缓存存储量与注意力读取工作量。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
193
本地导入

不改变架构的需求

当无法修改模型架构时,仍可尝试从服务读取路径入手,降低每步解码访问的缓存量。 本文语境解释,未作为独立知识专题收录。

当无法修改模型架构时,仍可尝试从服务读取路径入手,降低每步解码访问的缓存量。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
194
本地导入

查询驱动的缓存读取

新词元产生的查询需要与已存储的键比较;在完整注意力下,长提示会导致每个生成步骤访问大量缓存。 本文语境解释,未作为独立知识专题收录。

新词元产生的查询需要与已存储的键比较;在完整注意力下,长提示会导致每个生成步骤访问大量缓存。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
195
本地导入

Quest 方法

Quest 的目标是保留完整 KV 缓存,同时通过选择性读取减少每个解码步骤访问的数据。 本文语境解释,未作为独立知识专题收录。

Quest 的目标是保留完整 KV 缓存,同时通过选择性读取减少每个解码步骤访问的数据。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
196
本地导入

划分页

Quest 先把缓存组织成页,为后续按页筛选和读取提供单位。 本文语境解释,未作为独立知识专题收录。

Quest 先把缓存组织成页,为后续按页筛选和读取提供单位。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
197
本地导入

页的定义

缓存页以相邻词元条目为一组,将连续的缓存内容组织在一起。 本文语境解释,未作为独立知识专题收录。

缓存页以相邻词元条目为一组,将连续的缓存内容组织在一起。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
198
本地导入

页面范围摘要

页面除了保存键值本身,还保存每个维度的最小值和最大值,作为页面内容的简短摘要。 本文语境解释,未作为独立知识专题收录。

页面除了保存键值本身,还保存每个维度的最小值和最大值,作为页面内容的简短摘要。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
199
本地导入

按查询选择页面

Quest 先用页面摘要估计相关性,再读取高分页面,以减少当前查询需要处理的数据;未选页面仍保留在缓存中。 本文语境解释,未作为独立知识专题收录。

Quest 先用页面摘要估计相关性,再读取高分页面,以减少当前查询需要处理的数据;未选页面仍保留在缓存中。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
200
本地导入

报告的加速效果

这两组数字分别描述自注意力部分的延迟变化和完整推理系统的加速效果。 本文语境解释,未作为独立知识专题收录。

这两组数字分别描述自注意力部分的延迟变化和完整推理系统的加速效果。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
201
本地导入

四页面示例

示例缩小了页面数量、每页键数量和键的维度,以便直接观察页面评分。 本文语境解释,未作为独立知识专题收录。

示例缩小了页面数量、每页键数量和键的维度,以便直接观察页面评分。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
202
本地导入

Python 标记

该单元标示后续代码使用 Python。 本文语境解释,未作为独立知识专题收录。

该单元标示后续代码使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
203
本地导入

页面评分代码

代码先构造四个页面及查询向量,计算每页各维度的最小值和最大值,再用查询与这些边界的乘积估算页面分数。随后选取得分最高的两个页面,打印各页分数、读取的键数量和仍存储的键数量。代码末尾给出了预期输出,其中页面 1 和页面 2…

代码先构造四个页面及查询向量,计算每页各维度的最小值和最大值,再用查询与这些边界的乘积估算页面分数。随后选取得分最高的两个页面,打印各页分数、读取的键数量和仍存储的键数量。代码末尾给出了预期输出,其中页面 1 和页面 2 被选中。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
204
本地导入

页面摘要的构造

数组中共有八个键;最小值和最大值把每页的范围压缩成摘要,用于估计页面的潜在注意力得分。 本文语境解释,未作为独立知识专题收录。

数组中共有八个键;最小值和最大值把每页的范围压缩成摘要,用于估计页面的潜在注意力得分。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
205
本地导入

高分页面读取

由于查询向量的两个分量为正,较大的键值会提高估计分数,所以示例选择了页面 1 和页面 2。 本文语境解释,未作为独立知识专题收录。

由于查询向量的两个分量为正,较大的键值会提高估计分数,所以示例选择了页面 1 和页面 2。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
206
本地导入

减少读取而非存储

选择页面只减少当前步骤实际读取和处理的数据量,未删除未选页面,因此完整缓存仍占用内存。 本文语境解释,未作为独立知识专题收录。

选择页面只减少当前步骤实际读取和处理的数据量,未删除未选页面,因此完整缓存仍占用内存。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
207
本地导入

实际部署方式

实际系统比示例使用更高维的键,并通过 GPU 专用代码执行;页面选择不是只做一次,而是随每个查询重复。 本文语境解释,未作为独立知识专题收录。

实际系统比示例使用更高维的键,并通过 GPU 专用代码执行;页面选择不是只做一次,而是随每个查询重复。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
208
本地导入

量化

本节转向另一种降低 KV 缓存存储载荷的方法:保留所有条目,但用更少的位表示每个数。 本文语境解释,未作为独立知识专题收录。

本节转向另一种降低 KV 缓存存储载荷的方法:保留所有条目,但用更少的位表示每个数。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
209
本地导入

量化与跳过读取

Quest 通过少读数据降低工作量,而量化不跳过条目,改为压缩每个数的表示,以降低存储载荷。 本文语境解释,未作为独立知识专题收录。

Quest 通过少读数据降低工作量,而量化不跳过条目,改为压缩每个数的表示,以降低存储载荷。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
210
本地导入

不同位宽的载荷

在只比较每个数的原始位数时,FP8 相比 BF16 使用一半位数,4 位格式使用四分之一位数。 本文语境解释,未作为独立知识专题收录。

在只比较每个数的原始位数时,FP8 相比 BF16 使用一半位数,4 位格式使用四分之一位数。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
211
本地导入

量化映射

量化用离散的整数代码近似原始数值,缩放因子决定代码对应的数值间隔,恢复时需要该缩放信息。 本文语境解释,未作为独立知识专题收录。

量化用离散的整数代码近似原始数值,缩放因子决定代码对应的数值间隔,恢复时需要该缩放信息。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
212
本地导入

缩放因子与误差

如果多个值共享一个被极端值拉大的范围,量化级距会变粗,普通值的近似误差可能增大。 本文语境解释,未作为独立知识专题收录。

如果多个值共享一个被极端值拉大的范围,量化级距会变粗,普通值的近似误差可能增大。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
213
本地导入

KIVI 的分组量化

KIVI 对键按通道分组、对值按 token 分组,使两类数据使用不同的量化组织方式;原文还列出其 2 位缓存的内存和批量结果。 本文语境解释,未作为独立知识专题收录。

KIVI 对键按通道分组、对值按 token 分组,使两类数据使用不同的量化组织方式;原文还列出其 2 位缓存的内存和批量结果。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
214
本地导入

四位量化示例

示例用六个数展示从原始值到有符号 4 位代码,再从代码恢复近似值的过程。 本文语境解释,未作为独立知识专题收录。

示例用六个数展示从原始值到有符号 4 位代码,再从代码恢复近似值的过程。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
215
本地导入

Python 标记

该单元标示后续代码使用 Python。 本文语境解释,未作为独立知识专题收录。

该单元标示后续代码使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
216
本地导入

四位量化代码

代码创建六个数,使用 4 位有符号代码的最大正代码值计算缩放因子。它将数值除以缩放因子并四舍五入、裁剪到允许范围,再乘回缩放因子得到恢复值,同时比较原始和量化后的原始载荷位数。代码末尾给出了预期输出。 本文语境解释,未作…

代码创建六个数,使用 4 位有符号代码的最大正代码值计算缩放因子。它将数值除以缩放因子并四舍五入、裁剪到允许范围,再乘回缩放因子得到恢复值,同时比较原始和量化后的原始载荷位数。代码末尾给出了预期输出。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
217
本地导入

代码与恢复值

代码范围和缩放因子共同定义了量化值;恢复时使用相同缩放因子,将离散代码还原为近似数值。 本文语境解释,未作为独立知识专题收录。

代码范围和缩放因子共同定义了量化值;恢复时使用相同缩放因子,将离散代码还原为近似数值。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
218
本地导入

量化误差与元数据

离散化和舍入使恢复值与原值产生差异;示例的载荷统计没有包含实际缓存所需的缩放元数据。 本文语境解释,未作为独立知识专题收录。

离散化和舍入使恢复值与原值产生差异;示例的载荷统计没有包含实际缓存所需的缩放元数据。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
219
本地导入

分组缩放

缩小分组范围可以让缩放因子更贴合组内数值,从而通常降低舍入误差;代价是要为更多分组保存缩放信息。 本文语境解释,未作为独立知识专题收录。

缩小分组范围可以让缩放因子更贴合组内数值,从而通常降低舍入误差;代价是要为更多分组保存缩放信息。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
220
本地导入

vLLM 的 FP8 存储

原文引出 vLLM 中直接使用 FP8 作为缓存存储格式的配置或命令示例。 本文语境解释,未作为独立知识专题收录。

原文引出 vLLM 中直接使用 FP8 作为缓存存储格式的配置或命令示例。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
221
本地导入

Bash 标记

该单元标示后续代码或命令使用 Bash。 本文语境解释,未作为独立知识专题收录。

该单元标示后续代码或命令使用 Bash。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
222
本地导入

以 FP8 启动 vLLM

这段代码设置模型标识,并启动使用 FP8 存储 KV 缓存的 vLLM 服务。 本文语境解释,未作为独立知识专题收录。

这段代码设置模型标识,并启动使用 FP8 存储 KV 缓存的 vLLM 服务。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
223
本地导入

命令的运行方式

这一段解释了前一段启动命令中模型变量、KV 缓存数据类型和持续运行行为之间的关系。 本文语境解释,未作为独立知识专题收录。

这一段解释了前一段启动命令中模型变量、KV 缓存数据类型和持续运行行为之间的关系。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
224
本地导入

跳过敏感层的量化

作者引出一种混合处理方式:大部分缓存使用 FP8,而对可能更容易受影响的滑动窗口层保留原始数据类型。 本文语境解释,未作为独立知识专题收录。

作者引出一种混合处理方式:大部分缓存使用 FP8,而对可能更容易受影响的滑动窗口层保留原始数据类型。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
225
本地导入

Shell 示例语言标记

这是后续命令代码块使用的 Bash 语言标记。 本文语境解释,未作为独立知识专题收录。

这是后续命令代码块使用的 Bash 语言标记。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
226
本地导入

保留滑动窗口层类型

这段代码启动 Gemma 模型的 vLLM 服务,将 KV 缓存类型设为 FP8,并指定跳过滑动窗口层。 本文语境解释,未作为独立知识专题收录。

这段代码启动 Gemma 模型的 vLLM 服务,将 KV 缓存类型设为 FP8,并指定跳过滑动窗口层。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
227
本地导入

局部注意力层的精度保护

这一段说明跳过指定层后的结果:滑动窗口层不改变格式,其余缓存层进行量化,目的是降低局部注意力层可能出现的精度损失。 本文语境解释,未作为独立知识专题收录。

这一段说明跳过指定层后的结果:滑动窗口层不改变格式,其余缓存层进行量化,目的是降低局部注意力层可能出现的精度损失。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
228
本地导入

从量化转向位置移除

作者区分两种压缩思路:量化降低每个缓存项的存储成本,但不删除位置;驱逐则直接减少保留的位置数量。 本文语境解释,未作为独立知识专题收录。

作者区分两种压缩思路:量化降低每个缓存项的存储成本,但不删除位置;驱逐则直接减少保留的位置数量。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
229
本地导入

驱逐

本节讨论通过删除部分 KV 缓存位置来控制长上下文下的内存使用。 本文语境解释,未作为独立知识专题收录。

本节讨论通过删除部分 KV 缓存位置来控制长上下文下的内存使用。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
230
本地导入

固定位置预算

驱逐不同于只改变数据精度的量化:它限制缓存可保留的位置总数,并删除预算之外的缓存条目。 本文语境解释,未作为独立知识专题收录。

驱逐不同于只改变数据精度的量化:它限制缓存可保留的位置总数,并删除预算之外的缓存条目。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
231
本地导入

选择保留哪些位置

缓存位置的重要性并不只由新旧决定:最新内容可能关联当前对话,而早期内容也可能包含未来推理所需的信息。 本文语境解释,未作为独立知识专题收录。

缓存位置的重要性并不只由新旧决定:最新内容可能关联当前对话,而早期内容也可能包含未来推理所需的信息。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
232
本地导入

H2O:保留近期与重头令牌

H2O 将缓存分成近期位置和根据历史注意力确定的重头令牌,并在预算不足时移除其他令牌。被移除位置的 KV 信息不能继续用于后续计算。 本文语境解释,未作为独立知识专题收录。

H2O 将缓存分成近期位置和根据历史注意力确定的重头令牌,并在预算不足时移除其他令牌。被移除位置的 KV 信息不能继续用于后续计算。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
233
本地导入

SnapKV 的位置选择

SnapKV 不直接沿用 H2O 的重头令牌定义,而是观察提示末尾附近的注意力,用于生成开始前的缓存位置选择。 本文语境解释,未作为独立知识专题收录。

SnapKV 不直接沿用 H2O 的重头令牌定义,而是观察提示末尾附近的注意力,用于生成开始前的缓存位置选择。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
234
本地导入

PyramidKV 的分层预算

PyramidKV 按网络层次分配缓存预算:底层保留更多位置,高层保留更少位置。 本文语境解释,未作为独立知识专题收录。

PyramidKV 按网络层次分配缓存预算:底层保留更多位置,高层保留更少位置。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
235
本地导入

报告的效率与性能结果

这一段列出两种方法各自报告的实验结果:SnapKV 强调内存效率和生成速度,PyramidKV 强调较低缓存占用下的性能保持。 本文语境解释,未作为独立知识专题收录。

这一段列出两种方法各自报告的实验结果:SnapKV 强调内存效率和生成速度,PyramidKV 强调较低缓存占用下的性能保持。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
236
本地导入

六位置缓存示例

示例使用十个位置的历史注意力分数,在固定预算为六的情况下强制保留最近两个位置,再从较早位置中选择其余位置。 本文语境解释,未作为独立知识专题收录。

示例使用十个位置的历史注意力分数,在固定预算为六的情况下强制保留最近两个位置,再从较早位置中选择其余位置。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
237
本地导入

Python 示例语言标记

这是后续示例代码块使用的 Python 语言标记。 本文语境解释,未作为独立知识专题收录。

这是后续示例代码块使用的 Python 语言标记。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
238
本地导入

按分数保留缓存位置

代码将最近位置固定保留,并从较早位置中按分数从高到低选择重头位置,最终形成六个缓存位置。代码末尾还给出了预期输出。 本文语境解释,未作为独立知识专题收录。

代码将最近位置固定保留,并从较早位置中按分数从高到低选择重头位置,最终形成六个缓存位置。代码末尾还给出了预期输出。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
239
本地导入

示例中的选择结果

预算中的两个槽位预留给最近位置,其余四个槽位按较早位置的分数排序后分配。 本文语境解释,未作为独立知识专题收录。

预算中的两个槽位预留给最近位置,其余四个槽位按较早位置的分数排序后分配。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
240
本地导入

形成最终缓存

将固定保留的最近位置与按分数选出的较早位置合并,就得到最终缓存;未入选的四个位置被移除。 本文语境解释,未作为独立知识专题收录。

将固定保留的最近位置与按分数选出的较早位置合并,就得到最终缓存;未入选的四个位置被移除。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
241
本地导入

简化示例与真实 H2O

示例直接使用已经累积的分数来展示筛选过程,而真实 H2O 会在生成过程中持续更新重要性统计。 本文语境解释,未作为独立知识专题收录。

示例直接使用已经累积的分数来展示筛选过程,而真实 H2O 会在生成过程中持续更新重要性统计。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
242
本地导入

驱逐的风险

缓存位置的重要性是动态的,早期看似不重要的信息可能在后续多轮交互中重新发挥作用,因此简单依据当前注意力进行删除存在风险。 本文语境解释,未作为独立知识专题收录。

缓存位置的重要性是动态的,早期看似不重要的信息可能在后续多轮交互中重新发挥作用,因此简单依据当前注意力进行删除存在风险。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
243
本地导入

更完整的驱逐评估

作者建议评估不仅测试即时检索,还要覆盖完整多轮轨迹、较晚才被引用的信息以及结构化提示,以检验被删除内容是否在后续变得重要。 本文语境解释,未作为独立知识专题收录。

作者建议评估不仅测试即时检索,还要覆盖完整多轮轨迹、较晚才被引用的信息以及结构化提示,以检验被删除内容是否在后续变得重要。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
244
本地导入

分页

本节从单个请求的缓存内容转向服务系统如何在多个请求之间分配缓存内存。 本文语境解释,未作为独立知识专题收录。

本节从单个请求的缓存内容转向服务系统如何在多个请求之间分配缓存内存。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
245
本地导入

多请求缓存分配

作者区分了缓存内容管理与缓存资源管理:前者关注单个请求保存哪些信息,分页关注多个并发请求如何共享服务引擎的缓存内存。 本文语境解释,未作为独立知识专题收录。

作者区分了缓存内容管理与缓存资源管理:前者关注单个请求保存哪些信息,分页关注多个并发请求如何共享服务引擎的缓存内存。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
246
本地导入

连续内存分配的浪费

本段说明按请求预留连续且接近最大长度的内存时,会因请求实际较短或请求陆续结束而产生未使用空间和内存间隙。 本文语境解释,未作为独立知识专题收录。

本段说明按请求预留连续且接近最大长度的内存时,会因请求实际较短或请求陆续结束而产生未使用空间和内存间隙。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
247
本地导入

PagedAttention 的分块机制

本段介绍分页式 KV 缓存:把内存切成固定大小的块,并允许单个请求从共享池中取得不连续的块。 本文语境解释,未作为独立知识专题收录。

本段介绍分页式 KV 缓存:把内存切成固定大小的块,并允许单个请求从共享池中取得不连续的块。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
248
本地导入

作者姓名

这是文章署名中的作者姓名。 本文语境解释,未作为独立知识专题收录。

这是文章署名中的作者姓名。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
249
本地导入

作者账号

这是署名旁显示的作者账号。 本文语境解释,未作为独立知识专题收录。

这是署名旁显示的作者账号。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
250
本地导入

分隔符

这是署名信息中的分隔符。 本文语境解释,未作为独立知识专题收录。

这是署名信息中的分隔符。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
251
本地导入

发布日期

这是原文显示的日期信息。 本文语境解释,未作为独立知识专题收录。

这是原文显示的日期信息。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
252
本地导入

内容类型

这是原文标示的内容类型。 本文语境解释,未作为独立知识专题收录。

这是原文标示的内容类型。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
253
本地导入

文章标题

这是文章标题,指出文章主题是以易懂方式解释大语言模型中的分页注意力。 本文语境解释,未作为独立知识专题收录。

这是文章标题,指出文章主题是以易懂方式解释大语言模型中的分页注意力。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
254
本地导入

LLM 服务中的内存瓶颈

本段引出文章论点:在大规模 LLM 服务中,内存利用效率可能比计算能力更早限制系统。原文在此处以省略号截断。 本文语境解释,未作为独立知识专题收录。

本段引出文章论点:在大规模 LLM 服务中,内存利用效率可能比计算能力更早限制系统。原文在此处以省略号截断。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
255
本地导入

互动数据

这是原文显示的数值信息,可能属于文章或平台的互动指标。 本文语境解释,未作为独立知识专题收录。

这是原文显示的数值信息,可能属于文章或平台的互动指标。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
256
本地导入

块的回收与吞吐量

本段说明请求结束后,其占用的块可以回到共享池并被其他请求使用,并引用论文报告来描述内存浪费和吞吐量结果。 本文语境解释,未作为独立知识专题收录。

本段说明请求结束后,其占用的块可以回到共享池并被其他请求使用,并引用论文报告来描述内存浪费和吞吐量结果。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
257
本地导入

固定内存池与量化

本段区分了内存池的预留容量与池内可容纳的 token 数量:量化缩小单个条目后,容量可能增加,但固定池的已分配大小不一定变化。 本文语境解释,未作为独立知识专题收录。

本段区分了内存池的预留容量与池内可容纳的 token 数量:量化缩小单个条目后,容量可能增加,但固定池的已分配大小不一定变化。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
258
本地导入

块分配示例

本段说明代码示例的状态变化顺序:初始有六个空闲块,A 和 B 依次取得块,A 结束后释放的块可供 C 使用。 本文语境解释,未作为独立知识专题收录。

本段说明代码示例的状态变化顺序:初始有六个空闲块,A 和 B 依次取得块,A 结束后释放的块可供 C 使用。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
259
本地导入

代码语言标记

这是代码单元的语言标记,表示代码使用 Python。 本文语境解释,未作为独立知识专题收录。

这是代码单元的语言标记,表示代码使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
260
本地导入

空闲块回收与重用代码

代码先创建六个空闲块,让请求 A 取得前三个、请求 B 取得接下来的两个;A 完成后将其块放回空闲池,再让请求 C 取得前两个空闲块,最后打印各请求的块分配和 A 完成后的空闲列表。代码中的注释输出展示了原文给出的结果。…

代码先创建六个空闲块,让请求 A 取得前三个、请求 B 取得接下来的两个;A 完成后将其块放回空闲池,再让请求 C 取得前两个空闲块,最后打印各请求的块分配和 A 完成后的空闲列表。代码中的注释输出展示了原文给出的结果。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
261
本地导入

不连续块的逻辑顺序

本段用示例说明物理位置不相邻的块仍可被同一请求使用,块表负责记录请求读取这些块时的逻辑顺序。 本文语境解释,未作为独立知识专题收录。

本段用示例说明物理位置不相邻的块仍可被同一请求使用,块表负责记录请求读取这些块时的逻辑顺序。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
262
本地导入

分页的核心思想

本段将前面的例子概括为分页分配的基本原则:优先利用分散的可用块,避免必须找到大块连续内存。 本文语境解释,未作为独立知识专题收录。

本段将前面的例子概括为分页分配的基本原则:优先利用分散的可用块,避免必须找到大块连续内存。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
263
本地导入

vLLM 的块归属跟踪

本段说明系统需要同时维护块的请求归属和逻辑读取顺序,以便处理物理上不相邻的 KV 块;示例只聚焦于分配和重用。 本文语境解释,未作为独立知识专题收录。

本段说明系统需要同时维护块的请求归属和逻辑读取顺序,以便处理物理上不相邻的 KV 块;示例只聚焦于分配和重用。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
264
本地导入

量化改变池内容量

本段用具体数字说明:在固定为 8 GB 的池中,将每个 token 的占用从 320 KB 降至 160 KB 后,可容纳的 token 数量从 26,214 增至 52,428,但池的已分配总量不变。 本文语境解释,未…

本段用具体数字说明:在固定为 8 GB 的池中,将每个 token 的占用从 320 KB 降至 160 KB 后,可容纳的 token 数量从 26,214 增至 52,428,但池的已分配总量不变。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
265
本地导入

前缀重用

这是文章的第 11 节标题,主题从一般的块回收转向多个活动请求之间共享相同前缀。 本文语境解释,未作为独立知识专题收录。

这是文章的第 11 节标题,主题从一般的块回收转向多个活动请求之间共享相同前缀。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
266
本地导入

活动请求间共享前缀

本段区分了两种重用情形:分页通常在请求结束后回收块,而前缀缓存可让仍在处理中的多个请求共享完全相同的起始 token 对应的块。 本文语境解释,未作为独立知识专题收录。

本段区分了两种重用情形:分页通常在请求结束后回收块,而前缀缓存可让仍在处理中的多个请求共享完全相同的起始 token 对应的块。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
267
本地导入

重复前缀的成本

本段指出,共同的系统提示词或工具定义会在请求间重复出现;不共享时,不仅会产生多份 KV 数据,还会重复进行预填充计算。 本文语境解释,未作为独立知识专题收录。

本段指出,共同的系统提示词或工具定义会在请求间重复出现;不共享时,不仅会产生多份 KV 数据,还会重复进行预填充计算。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
268
本地导入

自动前缀缓存流程

本段描述自动前缀缓存的逻辑:为已完成的前缀块建立查找键,后续拥有相同前缀的请求复用已有 KV,直到各请求的 token 序列不同才继续计算。 本文语境解释,未作为独立知识专题收录。

本段描述自动前缀缓存的逻辑:为已完成的前缀块建立查找键,后续拥有相同前缀的请求复用已有 KV,直到各请求的 token 序列不同才继续计算。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
269
本地导入

前缀缓存查找键

本段说明查找键不仅依赖当前块,还依赖前序块,并可纳入影响兼容性的适配器标识符,从而区分可安全复用的前缀缓存。 本文语境解释,未作为独立知识专题收录。

本段说明查找键不仅依赖当前块,还依赖前序块,并可纳入影响兼容性的适配器标识符,从而区分可安全复用的前缀缓存。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
270
本地导入

前缀查找键

本段说明示例如何用完整的令牌前缀构造查找键,并将其作为 vLLM 链式哈希的简化表示。 本文语境解释,未作为独立知识专题收录。

本段说明示例如何用完整的令牌前缀构造查找键,并将其作为 vLLM 链式哈希的简化表示。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
271
本地导入

Python 标记

该标记表明后续代码单元使用 Python。 本文语境解释,未作为独立知识专题收录。

该标记表明后续代码单元使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
272
本地导入

前缀缓存示例

代码按四个令牌为一块,生成每个完整前缀的元组作为键。第一次请求将三个键加入缓存;第二次请求复用前两个键,并因最后四个令牌不同而计算一个新块。代码末尾的注释展示了预期输出,但未在此处执行。 本文语境解释,未作为独立知识专题…

代码按四个令牌为一块,生成每个完整前缀的元组作为键。第一次请求将三个键加入缓存;第二次请求复用前两个键,并因最后四个令牌不同而计算一个新块。代码末尾的注释展示了预期输出,但未在此处执行。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
273
本地导入

两次请求的命中

本段按前缀长度解释两次请求的缓存关系:第一次建立三层前缀,第二次因前八个令牌相同而命中前两层。 本文语境解释,未作为独立知识专题收录。

本段按前缀长度解释两次请求的缓存关系:第一次建立三层前缀,第二次因前八个令牌相同而命中前两层。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
274
本地导入

最后一块不匹配

最后一个四令牌块发生变化,使包含完整十二令牌前缀的最终键不同,因而不能复用。 本文语境解释,未作为独立知识专题收录。

最后一个四令牌块发生变化,使包含完整十二令牌前缀的最终键不同,因而不能复用。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
275
本地导入

完整前缀防止误匹配

缓存键不仅检查当前块,还检查该块之前的全部上下文,从而避免把不同上下文中的相同四令牌片段误认为可复用。 本文语境解释,未作为独立知识专题收录。

缓存键不仅检查当前块,还检查该块之前的全部上下文,从而避免把不同上下文中的相同四令牌片段误认为可复用。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
276
本地导入

精确分词前缀

即使文本意图相近,只要分词后的令牌序列发生变化,前缀键就可能不同;原文列举了时间戳、JSON 键顺序和空白字符等变化。 本文语境解释,未作为独立知识专题收录。

即使文本意图相近,只要分词后的令牌序列发生变化,前缀键就可能不同;原文列举了时间戳、JSON 键顺序和空白字符等变化。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
277
本地导入

稳定模板提升命中

保持提示模板稳定,有助于生成相同的分词前缀,从而增加缓存命中并减少重复保存的数据。 本文语境解释,未作为独立知识专题收录。

保持提示模板稳定,有助于生成相同的分词前缀,从而增加缓存命中并减少重复保存的数据。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
278
本地导入

GPU 缓存卸载

这是关于将当前不需要的 KV 块从 GPU 内存移到较大但较慢的内存层的章节标题。 本文语境解释,未作为独立知识专题收录。

这是关于将当前不需要的 KV 块从 GPU 内存移到较大但较慢的内存层的章节标题。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
279
本地导入

卸载的作用

前缀复用关注请求之间的已有前缀,而卸载关注内存容量:把暂时不用的 KV 块移出 GPU,以释放 GPU 空间。 本文语境解释,未作为独立知识专题收录。

前缀复用关注请求之间的已有前缀,而卸载关注内存容量:把暂时不用的 KV 块移出 GPU,以释放 GPU 空间。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
280
本地导入

卸载与恢复

卸载对象可以是暂停序列的块或保留的缓存前缀;恢复计算时,相关块需要返回 GPU。 本文语境解释,未作为独立知识专题收录。

卸载对象可以是暂停序列的块或保留的缓存前缀;恢复计算时,相关块需要返回 GPU。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
281
本地导入

API 请求不会自动恢复

新的 API 请求与先前请求之间不会仅凭请求到达而自动共享 KV 缓存;复用需要序列跟踪、精确前缀匹配或外部存储恢复。 本文语境解释,未作为独立知识专题收录。

新的 API 请求与先前请求之间不会仅凭请求到达而自动共享 KV 缓存;复用需要序列跟踪、精确前缀匹配或外部存储恢复。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
282
本地导入

容量与传输的权衡

卸载改变的是数据所在位置,而不是数据总量;收益是释放 GPU 空间,代价是恢复时需要进行数据传输。 本文语境解释,未作为独立知识专题收录。

卸载改变的是数据所在位置,而不是数据总量;收益是释放 GPU 空间,代价是恢复时需要进行数据传输。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
283
本地导入

会话的缓存换入换出

示例用两个 GPU 容量位置展示先进缓存被移到 CPU,以及恢复该缓存时另一个缓存被移出的过程。 本文语境解释,未作为独立知识专题收录。

示例用两个 GPU 容量位置展示先进缓存被移到 CPU,以及恢复该缓存时另一个缓存被移出的过程。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
284
本地导入

Python 标记

该标记表明后续代码单元使用 Python。 本文语境解释,未作为独立知识专题收录。

该标记表明后续代码单元使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
285
本地导入

缓存换入换出代码

代码用列表模拟 GPU 和 CPU 中的缓存名称:加入缓存 C 时把 A 从 GPU 移到 CPU;恢复 A 时把 B 移出 GPU,再把 A 放回 GPU。代码末尾的注释展示了预期状态,但未在此处执行。 本文语境解释,…

代码用列表模拟 GPU 和 CPU 中的缓存名称:加入缓存 C 时把 A 从 GPU 移到 CPU;恢复 A 时把 B 移出 GPU,再把 A 放回 GPU。代码末尾的注释展示了预期状态,但未在此处执行。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
286
本地导入

恢复缓存 A

本段按示例的两个阶段说明缓存位置变化:先把 A 卸载,再在需要时恢复 A 并卸载 B。 本文语境解释,未作为独立知识专题收录。

本段按示例的两个阶段说明缓存位置变化:先把 A 卸载,再在需要时恢复 A 并卸载 B。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
287
本地导入

名称与真实 KV 块

示例只用字符串表示缓存;实际操作对象是 KV 块,同时还需要记录其请求归属或前缀归属。 本文语境解释,未作为独立知识专题收录。

示例只用字符串表示缓存;实际操作对象是 KV 块,同时还需要记录其请求归属或前缀归属。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
288
本地导入

恢复需要可识别信息

能够恢复缓存 A 的前提是引擎仍保留并能识别相关状态;仅有相同标签的无关请求不足以触发恢复。 本文语境解释,未作为独立知识专题收录。

能够恢复缓存 A 的前提是引擎仍保留并能识别相关状态;仅有相同标签的无关请求不足以触发恢复。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
289
本地导入

启用 CPU 卸载缓冲区

本段引出一个 vLLM 配置示例,用于设置 16 GB 的 CPU 卸载缓冲区。 本文语境解释,未作为独立知识专题收录。

本段引出一个 vLLM 配置示例,用于设置 16 GB 的 CPU 卸载缓冲区。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
290
本地导入

Bash 标记

该标记表明后续代码单元使用 Bash 命令。 本文语境解释,未作为独立知识专题收录。

该标记表明后续代码单元使用 Bash 命令。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
291
本地导入

vLLM 卸载配置

代码设置模型标识,并启动 vLLM 服务:配置 16 GB 的 KV 卸载大小,并选择 native CPU 卸载后端。代码本身未在此处执行。 本文语境解释,未作为独立知识专题收录。

代码设置模型标识,并启动 vLLM 服务:配置 16 GB 的 KV 卸载大小,并选择 native CPU 卸载后端。代码本身未在此处执行。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
292
本地导入

两个卸载参数

本段解释两个命令行选项分别控制 CPU 缓冲区大小和卸载后端,并说明服务进程启动后不会立即结束。 本文语境解释,未作为独立知识专题收录。

本段解释两个命令行选项分别控制 CPU 缓冲区大小和卸载后端,并说明服务进程启动后不会立即结束。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
293
本地导入

测量卸载代价

扩大卸载空间可以缓解 GPU 容量压力,但恢复时的数据传输可能增加延迟,因此应先测量相关性能指标。 本文语境解释,未作为独立知识专题收录。

扩大卸载空间可以缓解 GPU 容量压力,但恢复时的数据传输可能增加延迟,因此应先测量相关性能指标。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
294
本地导入

组合使用

本节讨论不同 KV Cache 优化方法如何组合,以及组合时需要注意的条件。 本文语境解释,未作为独立知识专题收录。

本节讨论不同 KV Cache 优化方法如何组合,以及组合时需要注意的条件。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
295
本地导入

方法组合的条件

不同方法如果作用于不同的缓存构成因素,就可能叠加节省空间;但架构相关方法受模型检查点训练方式影响。 本文语境解释,未作为独立知识专题收录。

不同方法如果作用于不同的缓存构成因素,就可能叠加节省空间;但架构相关方法受模型检查点训练方式影响。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
296
本地导入

40 GB GQA 缓存示例

作者用一个 40 GB 的 GQA 缓存说明多种优化手段逐步叠加后的容量变化。 本文语境解释,未作为独立知识专题收录。

作者用一个 40 GB 的 GQA 缓存说明多种优化手段逐步叠加后的容量变化。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
297
本地导入

CLA2 减少层数

在该示例中,CLA2 通过减少不重复的层,将缓存容量从 40 GB 降至 20 GB。 本文语境解释,未作为独立知识专题收录。

在该示例中,CLA2 通过减少不重复的层,将缓存容量从 40 GB 降至 20 GB。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
298
本地导入

FP8 减少字节数

在已经降至 20 GB 的基础上,FP8 将每个值的存储字节数减半,使容量约为 10 GB。 本文语境解释,未作为独立知识专题收录。

在已经降至 20 GB 的基础上,FP8 将每个值的存储字节数减半,使容量约为 10 GB。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
299
本地导入

减少 Token 预算

在前述示例中,将 token 预算设为原来的 50%,会进一步把常驻缓存从约 10 GB 降至约 5 GB。 本文语境解释,未作为独立知识专题收录。

在前述示例中,将 token 预算设为原来的 50%,会进一步把常驻缓存从约 10 GB 降至约 5 GB。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
300
本地导入

容量估算的局限

按比例相乘可以快速估算容量节省,但不能反映优化对模型质量的影响,也不能确认底层内核是否支持。 本文语境解释,未作为独立知识专题收录。

按比例相乘可以快速估算容量节省,但不能反映优化对模型质量的影响,也不能确认底层内核是否支持。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
301
本地导入

CLA 的训练要求

CLA 不是只改变部署配置的方法,而是需要相应的训练支持。 本文语境解释,未作为独立知识专题收录。

CLA 不是只改变部署配置的方法,而是需要相应的训练支持。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
302
本地导入

FP8 的量化误差

FP8 通过较低精度表示减少存储,但这种压缩会带来量化误差。 本文语境解释,未作为独立知识专题收录。

FP8 通过较低精度表示减少存储,但这种压缩会带来量化误差。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
303
本地导入

驱逐的上下文代价

缓存驱逐通过移除部分内容来节省空间,因此可能使模型无法继续使用被移除的上下文。 本文语境解释,未作为独立知识专题收录。

缓存驱逐通过移除部分内容来节省空间,因此可能使模型无法继续使用被移除的上下文。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
304
本地导入

服务引擎支持

即使缓存布局在理论上节省空间,实际服务引擎也必须能够处理该布局。 本文语境解释,未作为独立知识专题收录。

即使缓存布局在理论上节省空间,实际服务引擎也必须能够处理该布局。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
305
本地导入

常见情况与方案

作者按模型选择、既有模型部署、内存、延迟和非活跃会话等问题,给出对应的排查或优化方向。 本文语境解释,未作为独立知识专题收录。

作者按模型选择、既有模型部署、内存、延迟和非活跃会话等问题,给出对应的排查或优化方向。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
306
本地导入

选择模型时检查架构

模型架构中的头数量、层比例、潜在注意力维度和循环层会影响部署前需要分配的 KV Cache。 本文语境解释,未作为独立知识专题收录。

模型架构中的头数量、层比例、潜在注意力维度和循环层会影响部署前需要分配的 KV Cache。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
307
本地导入

部署现有模型

对于已经存在的模型,作者建议先尝试不改变 token 集合的 FP8 和前缀标准化,再通过质量测试决定是否采用会丢弃上下文的驱逐。 本文语境解释,未作为独立知识专题收录。

对于已经存在的模型,作者建议先尝试不改变 token 集合的 FP8 和前缀标准化,再通过质量测试决定是否采用会丢弃上下文的驱逐。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
308
本地导入

排查内存未下降

优化后总 GPU 内存不变,可能是固定大小的内存池仍然占用了原有空间;应检查缓存容量和块数量。 本文语境解释,未作为独立知识专题收录。

优化后总 GPU 内存不变,可能是固定大小的内存池仍然占用了原有空间;应检查缓存容量和块数量。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
309
本地导入

排查延迟问题

如果瓶颈是延迟,应分别测量读取缓存和执行注意力所耗的时间;稀疏读取可能减少相关开销,而不一定减少缓存容量。 本文语境解释,未作为独立知识专题收录。

如果瓶颈是延迟,应分别测量读取缓存和执行注意力所耗的时间;稀疏读取可能减少相关开销,而不一定减少缓存容量。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
310
本地导入

处理非活跃会话

当不活跃会话占用 GPU 资源时,可以测试将冷数据块移出或重新调度;相比继续压缩活跃缓存,移动这些块可能更有效。 本文语境解释,未作为独立知识专题收录。

当不活跃会话占用 GPU 资源时,可以测试将冷数据块移出或重新调度;相比继续压缩活跃缓存,移动这些块可能更有效。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
311
本地导入

明确技术目标

作者认为,将每种方法对应到具体要解决的约束,有助于理解其作用和适用范围。 本文语境解释,未作为独立知识专题收录。

作者认为,将每种方法对应到具体要解决的约束,有助于理解其作用和适用范围。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
312
本地导入

技术总结表

作者准备通过表格对比各项技术改变的对象、主要结论和未覆盖的问题。 本文语境解释,未作为独立知识专题收录。

作者准备通过表格对比各项技术改变的对象、主要结论和未覆盖的问题。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
313
本地导入

按约束选择技术

作者建议从实际限制出发,而不是笼统地追求缓存缩减,再匹配能够解决该限制的方法。 本文语境解释,未作为独立知识专题收录。

作者建议从实际限制出发,而不是笼统地追求缓存缩减,再匹配能够解决该限制的方法。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
314
本地导入

生产环境中的实践

作者将讨论引向读者,询问其在生产环境中采用的 KV Cache 缩减方法。 本文语境解释,未作为独立知识专题收录。

作者将讨论引向读者,询问其在生产环境中采用的 KV Cache 缩减方法。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
315
本地导入

教程结束

作者用这句话结束本次教程。 本文语境解释,未作为独立知识专题收录。

作者用这句话结束本次教程。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
316
本地导入

后续互动

作者在教程结束后引导读者进行后续互动。 本文语境解释,未作为独立知识专题收录。

作者在教程结束后引导读者进行后续互动。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
317
本地导入

作者账号

作者提供了自己的账号 @_avichawla,链接指向 X 平台对应页面。 本文语境解释,未作为独立知识专题收录。

作者提供了自己的账号 @_avichawla,链接指向 X 平台对应页面。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
318
本地导入

每日分享主题

作者说明其日常分享内容涵盖数据科学、机器学习、大型语言模型和检索增强生成。 本文语境解释,未作为独立知识专题收录。

作者说明其日常分享内容涵盖数据科学、机器学习、大型语言模型和检索增强生成。

本文语境解释,未作为独立知识专题收录。

回到解读:KV Cache Engineering for LLM Serving, clearly explained
319
本地导入

构建本地决策引擎

本文介绍如何利用开源语言模型的评分能力,在本地完成固定选项决策,并比较这种方式与普通文本生成的差异。 本文语境解释,未作为独立知识专题收录。

本文介绍如何利用开源语言模型的评分能力,在本地完成固定选项决策,并比较这种方式与普通文本生成的差异。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
320
本地导入

固定答案的调用

当任务的答案集合预先确定时,生成完整文本并非必要,模型只需在既定选项中作出选择。 本文语境解释,未作为独立知识专题收录。

当任务的答案集合预先确定时,生成完整文本并非必要,模型只需在既定选项中作出选择。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
321
本地导入

支持工单示例

该工单提供了后续分类决策所需的具体输入。 本文语境解释,未作为独立知识专题收录。

该工单提供了后续分类决策所需的具体输入。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
322
本地导入

三个处理团队

工单分类被定义为一个只有三个有效结果的选择问题。 本文语境解释,未作为独立知识专题收录。

工单分类被定义为一个只有三个有效结果的选择问题。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
323
本地导入

普通文本生成流程

普通调用通过生成文本表达选择,应用随后还要等待、解析并提取结果。 本文语境解释,未作为独立知识专题收录。

普通调用通过生成文本表达选择,应用随后还要等待、解析并提取结果。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
324
本地导入

避免多余生成

当有效答案集合固定时,生成额外句子或对象会增加不必要的处理步骤。 本文语境解释,未作为独立知识专题收录。

当有效答案集合固定时,生成额外句子或对象会增加不必要的处理步骤。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
325
本地导入

将请求视为决策

作者把任务从“生成答案”改成“为预先给定的答案评分”,以便一次返回所有候选结果的相对支持程度。 本文语境解释,未作为独立知识专题收录。

作者把任务从“生成答案”改成“为预先给定的答案评分”,以便一次返回所有候选结果的相对支持程度。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
326
本地导入

纯文本格式

该单元标示紧随其后的代码块采用纯文本格式。 本文语境解释,未作为独立知识专题收录。

该单元标示紧随其后的代码块采用纯文本格式。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
327
本地导入

候选答案概率

代码块展示三个团队及其对应分数或概率分布:计费最高,技术支持和账户访问较低。 本文语境解释,未作为独立知识专题收录。

代码块展示三个团队及其对应分数或概率分布:计费最高,技术支持和账户访问较低。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
328
本地导入

依据最高概率选择

应用不仅获得最终选项,还能获得各候选项的相对概率,从而了解选择的强弱。 本文语境解释,未作为独立知识专题收录。

应用不仅获得最终选项,还能获得各候选项的相对概率,从而了解选择的强弱。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
329
本地导入

本地复现目标

本文的实现目标是复现 Jev 通过候选评分返回决策分布的推理行为。 本文语境解释,未作为独立知识专题收录。

本文的实现目标是复现 Jev 通过候选评分返回决策分布的推理行为。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
330
本地导入

评分请求的返回结果

评分接口直接处理查询与候选答案,并返回选择及其分布,跳过句子或 JSON 的生成过程。 本文语境解释,未作为独立知识专题收录。

评分接口直接处理查询与候选答案,并返回选择及其分布,跳过句子或 JSON 的生成过程。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
331
本地导入

开放模型中的推理模式

作者指出,尽管 Jev 本身不可直接查看源代码,类似的候选评分推理方式已存在于若干开放语言模型中。 本文语境解释,未作为独立知识专题收录。

作者指出,尽管 Jev 本身不可直接查看源代码,类似的候选评分推理方式已存在于若干开放语言模型中。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
332
本地导入

实现与比较方案

作者确定了实现接口、测试模型以及两类对照方案:结构化输出和普通文本生成。 本文语境解释,未作为独立知识专题收录。

作者确定了实现接口、测试模型以及两类对照方案:结构化输出和普通文本生成。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
333
本地导入

复现范围限制

评分端点只能覆盖推理阶段,不能替代 Jev 所包含的训练与校准部分。 本文语境解释,未作为独立知识专题收录。

评分端点只能覆盖推理阶段,不能替代 Jev 所包含的训练与校准部分。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
334
本地导入

评分与结构化输出

本节区分两种都能限制应用接收内容的机制,重点在于它们在推理服务器内部执行的工作不同。 本文语境解释,未作为独立知识专题收录。

本节区分两种都能限制应用接收内容的机制,重点在于它们在推理服务器内部执行的工作不同。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
335
本地导入

两种机制的区别

表面上两者都能约束结果格式,但评分直接比较候选结果,而结构化输出仍围绕受约束的文本生成展开。 本文语境解释,未作为独立知识专题收录。

表面上两者都能约束结果格式,但评分直接比较候选结果,而结构化输出仍围绕受约束的文本生成展开。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
336
本地导入

结构化输出示例

作者用同一分类任务展示结构化输出可能返回的 JSON 结果,以便与后面的评分方式比较。 本文语境解释,未作为独立知识专题收录。

作者用同一分类任务展示结构化输出可能返回的 JSON 结果,以便与后面的评分方式比较。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
337
本地导入

JSON 格式

该单元标示紧随其后的代码块采用 JSON 格式。 本文语境解释,未作为独立知识专题收录。

该单元标示紧随其后的代码块采用 JSON 格式。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
338
本地导入

结构化团队结果

代码块展示一个包含 team 字段的 JSON 对象,其值为 billing(计费)。 本文语境解释,未作为独立知识专题收录。

代码块展示一个包含 team 字段的 JSON 对象,其值为 billing(计费)。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
339
本地导入

模式约束不等于决策

结构化模式负责保证对象符合规定格式,但有效的对象内容仍需要模型生成并作出选择。 本文语境解释,未作为独立知识专题收录。

结构化模式负责保证对象符合规定格式,但有效的对象内容仍需要模型生成并作出选择。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
340
本地导入

结构化生成的底层过程

即使最终结果符合 JSON 模式,模型仍需逐 token 生成对象各部分,应用再从完成的对象中读取字段。 本文语境解释,未作为独立知识专题收录。

即使最终结果符合 JSON 模式,模型仍需逐 token 生成对象各部分,应用再从完成的对象中读取字段。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
341
本地导入

直接为候选结果评分

评分方式把候选团队直接交给服务器,让服务器分别取得模型分数并返回分布,而不是生成一个包装这些信息的 JSON 对象。 本文语境解释,未作为独立知识专题收录。

评分方式把候选团队直接交给服务器,让服务器分别取得模型分数并返回分布,而不是生成一个包装这些信息的 JSON 对象。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
342
本地导入

返回完整分布

返回所有候选值及其分数,可以让应用区分完整候选分布与仅有单一最终选择的结果。 本文语境解释,未作为独立知识专题收录。

返回所有候选值及其分数,可以让应用区分完整候选分布与仅有单一最终选择的结果。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
343
本地导入

纯文本标记

该单元仅包含“plaintext”这一文本标记。 本文语境解释,未作为独立知识专题收录。

该单元仅包含“plaintext”这一文本标记。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
344
本地导入

两个结果的概率分布

代码块展示了两个结果对 billing、technical 和 account 三个类别的评分分布。 本文语境解释,未作为独立知识专题收录。

代码块展示了两个结果对 billing、technical 和 account 三个类别的评分分布。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
345
本地导入

两者选择同一类别

尽管两个结果的评分分布不同,但最高分在两种情况下都是 billing。 本文语境解释,未作为独立知识专题收录。

尽管两个结果的评分分布不同,但最高分在两种情况下都是 billing。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
346
本地导入

按置信程度路由工单

评分差距可以帮助应用程序区分明确的分类和接近并列的分类,从而决定自动处理还是人工审核。 本文语境解释,未作为独立知识专题收录。

评分差距可以帮助应用程序区分明确的分类和接近并列的分类,从而决定自动处理还是人工审核。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
347
本地导入

评分与应用规则分离

模型负责输出评分,具体如何使用评分则由应用程序代码负责。 本文语境解释,未作为独立知识专题收录。

模型负责输出评分,具体如何使用评分则由应用程序代码负责。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
348
本地导入

设置可调整的阈值

示例规则同时要求最高评分达到最低值,并与第二高评分保持足够差距;把阈值写入代码便于测试和调整。 本文语境解释,未作为独立知识专题收录。

示例规则同时要求最高评分达到最低值,并与第二高评分保持足够差距;把阈值写入代码便于测试和调整。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
349
本地导入

评分不等于正确率

0.91 表示模型在三个候选选项之间分配给 billing 的概率质量,而不是模型长期预测正确的比例。评估这种对应关系需要带标签的示例,这涉及校准。 本文语境解释,未作为独立知识专题收录。

0.91 表示模型在三个候选选项之间分配给 billing 的概率质量,而不是模型长期预测正确的比例。评估这种对应关系需要带标签的示例,这涉及校准。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
350
本地导入

结构化输出与固定答案评分

原文区分两种结果:结构化输出关注生成符合结构的对象,固定答案评分则在预先定义的答案集合上给出分布。 本文语境解释,未作为独立知识专题收录。

原文区分两种结果:结构化输出关注生成符合结构的对象,固定答案评分则在预先定义的答案集合上给出分布。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
351
本地导入

生成第一个词元

本节标题引出对大语言模型生成过程的说明,重点是第一个输出词元。 本文语境解释,未作为独立知识专题收录。

本节标题引出对大语言模型生成过程的说明,重点是第一个输出词元。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
352
本地导入

先理解常规生成

作者先介绍普通大语言模型的生成流程,再说明如何将因果模型转换为 Jev 风格模型。 本文语境解释,未作为独立知识专题收录。

作者先介绍普通大语言模型的生成流程,再说明如何将因果模型转换为 Jev 风格模型。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
353
本地导入

提示分词

生成流程的第一步是把输入提示拆分或映射为模型使用的词元 ID。 本文语境解释,未作为独立知识专题收录。

生成流程的第一步是把输入提示拆分或映射为模型使用的词元 ID。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
354
本地导入

生成下一位置向量

模型读取词元 ID 序列后,为接下来的输出位置计算向量。 本文语境解释,未作为独立知识专题收录。

模型读取词元 ID 序列后,为接下来的输出位置计算向量。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
355
本地导入

词汇表大小决定向量长度

下一位置的向量会为词汇表中的每个候选词元提供一个数值;词汇表越大,向量包含的数值通常越多。 本文语境解释,未作为独立知识专题收录。

下一位置的向量会为词汇表中的每个候选词元提供一个数值;词汇表越大,向量包含的数值通常越多。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
356
本地导入

Logits 不是概率

模型先为每个候选词元产生原始分数,较大的 logit 表示模型相对更偏好该候选,但这些分数尚未转换为概率。 本文语境解释,未作为独立知识专题收录。

模型先为每个候选词元产生原始分数,较大的 logit 表示模型相对更偏好该候选,但这些分数尚未转换为概率。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
357
本地导入

解码并追加词元

服务器根据温度等解码规则处理模型输出的向量,选出一个词元,再把它加入已有提示。 本文语境解释,未作为独立知识专题收录。

服务器根据温度等解码规则处理模型输出的向量,选出一个词元,再把它加入已有提示。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
358
本地导入

重复生成直到停止

每追加一个词元,模型就为新的下一个位置计算一组词汇表大小的数值;流程持续到停止条件出现。 本文语境解释,未作为独立知识专题收录。

每追加一个词元,模型就为新的下一个位置计算一组词汇表大小的数值;流程持续到停止条件出现。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
359
本地导入

只关注第一个向量

对于候选范围固定的决策任务,作者认为第一次生成得到的向量就包含所需信息,因此无需继续生成完整文本。 本文语境解释,未作为独立知识专题收录。

对于候选范围固定的决策任务,作者认为第一次生成得到的向量就包含所需信息,因此无需继续生成完整文本。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
360
本地导入

支持路由器的候选答案

作者回到前文的支持路由器示例,并开始列出应用程序允许的三个固定答案。 本文语境解释,未作为独立知识专题收录。

作者回到前文的支持路由器示例,并开始列出应用程序允许的三个固定答案。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
361
本地导入

纯文本标记

该单元仅包含“plaintext”这一文本标记。 本文语境解释,未作为独立知识专题收录。

该单元仅包含“plaintext”这一文本标记。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
362
本地导入

三个支持类别

代码块列出了支持路由器允许的三个固定答案:账单、技术支持和账户访问。 本文语境解释,未作为独立知识专题收录。

代码块列出了支持路由器允许的三个固定答案:账单、技术支持和账户访问。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
363
本地导入

为答案分配标签

为了让模型输出固定答案,可以在提示中用简短标签代表每个候选类别。 本文语境解释,未作为独立知识专题收录。

为了让模型输出固定答案,可以在提示中用简短标签代表每个候选类别。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
364
本地导入

纯文本标记

该单元仅包含“plaintext”这一文本标记。 本文语境解释,未作为独立知识专题收录。

该单元仅包含“plaintext”这一文本标记。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
365
本地导入

标签与答案的对应关系

代码块将三个固定答案分别映射到 A、B、C 三个简短标签。 本文语境解释,未作为独立知识专题收录。

代码块将三个固定答案分别映射到 A、B、C 三个简短标签。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
366
本地导入

要求输出单个标签

提示的最后一步是要求模型从预先定义的标签中输出一个标签,以对应某个支持类别。 本文语境解释,未作为独立知识专题收录。

提示的最后一步是要求模型从预先定义的标签中输出一个标签,以对应某个支持类别。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
367
本地导入

纯文本标记

这是一个标示内容类型的纯文本标签。 本文语境解释,未作为独立知识专题收录。

这是一个标示内容类型的纯文本标签。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
368
本地导入

支持工单分类提示

这段提示要求将一张关于同一订阅被重复收费的支持工单,严格归入账单、技术支持或账户访问三类之一,并且只返回对应标签。 本文语境解释,未作为独立知识专题收录。

这段提示要求将一张关于同一订阅被重复收费的支持工单,严格归入账单、技术支持或账户访问三类之一,并且只返回对应标签。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
369
本地导入

最终提示文本

作者指出,提示以“Label:”这一字符串结束,因此模型接下来会在该位置生成内容。 本文语境解释,未作为独立知识专题收录。

作者指出,提示以“Label:”这一字符串结束,因此模型接下来会在该位置生成内容。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
370
本地导入

标签生成位置

由于提示在“Label:”处结束,作者将紧接着的生成位置视为模型选择分类标签的位置。 本文语境解释,未作为独立知识专题收录。

由于提示在“Label:”处结束,作者将紧接着的生成位置视为模型选择分类标签的位置。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
371
本地导入

词汇表分数向量

作者说明,模型在目标生成位置会为整个词汇表计算一组 logit,其中既包括候选标签,也包括所有其他词元。 本文语境解释,未作为独立知识专题收录。

作者说明,模型在目标生成位置会为整个词汇表计算一组 logit,其中既包括候选标签,也包括所有其他词元。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
372
本地导入

评分流程

作者将从模型输出中提取并比较候选标签分数的过程拆分为四个步骤。 本文语境解释,未作为独立知识专题收录。

作者将从模型输出中提取并比较候选标签分数的过程拆分为四个步骤。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
373
本地导入

查找词元 ID

第一步是确定三个候选标签在模型词汇表中对应的词元标识符。 本文语境解释,未作为独立知识专题收录。

第一步是确定三个候选标签在模型词汇表中对应的词元标识符。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
374
本地导入

读取候选分数

第二步是从整个词汇表向量中提取 A、B、C 三个词元各自位置的 logit。 本文语境解释,未作为独立知识专题收录。

第二步是从整个词汇表向量中提取 A、B、C 三个词元各自位置的 logit。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
375
本地导入

排除其他词元

评分时只保留三个声明过的候选标签,不使用词汇表中其他词元的分数。 本文语境解释,未作为独立知识专题收录。

评分时只保留三个声明过的候选标签,不使用词汇表中其他词元的分数。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
376
本地导入

计算受限 softmax

最后在 A、B、C 三个选定的 logit 之间进行 softmax,以得到它们的相对归一化结果。 本文语境解释,未作为独立知识专题收录。

最后在 A、B、C 三个选定的 logit 之间进行 softmax,以得到它们的相对归一化结果。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
377
本地导入

示例分数映射

作者用三个具体 logit 展示受限 softmax 的结果,并将三个结果按顺序对应到三种业务类别。 本文语境解释,未作为独立知识专题收录。

作者用三个具体 logit 展示受限 softmax 的结果,并将三个结果按顺序对应到三种业务类别。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
378
本地导入

受限归一化范围

作者区分了候选集合内部的归一化结果与整个词汇表上的概率,说明 0.91 只表示受限比较中的比例。 本文语境解释,未作为独立知识专题收录。

作者区分了候选集合内部的归一化结果与整个词汇表上的概率,说明 0.91 只表示受限比较中的比例。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
379
本地导入

候选之间的偏好

该方法关注的是三个预先允许的响应之间的相对偏好,而不是模型对所有可能输出的整体分布。 本文语境解释,未作为独立知识专题收录。

该方法关注的是三个预先允许的响应之间的相对偏好,而不是模型对所有可能输出的整体分布。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
380
本地导入

SGLang 评分接口

作者指出,前述评分操作可通过 SGLang 的“/v1/score”实现。 本文语境解释,未作为独立知识专题收录。

作者指出,前述评分操作可通过 SGLang 的“/v1/score”实现。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
381
本地导入

接口避免底层修改

作者说明,该接口负责运行提示、读取指定词元位置并返回分数,因此可以避免直接改动 Qwen 实现或手动处理最终张量。 本文语境解释,未作为独立知识专题收录。

作者说明,该接口负责运行提示、读取指定词元位置并返回分数,因此可以避免直接改动 Qwen 实现或手动处理最终张量。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
382
本地导入

为何使用单字符标签

作者解释,直接比较类别短语可能受到词元切分方式影响,因此采用 A、B、C 作为候选标签,而将类别语义放在提示中。 本文语境解释,未作为独立知识专题收录。

作者解释,直接比较类别短语可能受到词元切分方式影响,因此采用 A、B、C 作为候选标签,而将类别语义放在提示中。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
383
本地导入

词元化示例

下文通过两个类别短语说明不同文本可能占用不同数量的词元位置。 本文语境解释,未作为独立知识专题收录。

下文通过两个类别短语说明不同文本可能占用不同数量的词元位置。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
384
本地导入

词元数量可能不同

同一个可见单词在不同词元化器中的切分结果可能不同,因此不能假定它总是一个词元。 本文语境解释,未作为独立知识专题收录。

同一个可见单词在不同词元化器中的切分结果可能不同,因此不能假定它总是一个词元。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
385
本地导入

多位置短语

作者以所讨论的词元化情形为范围,指出该短语会占用多个位置。 本文语境解释,未作为独立知识专题收录。

作者以所讨论的词元化情形为范围,指出该短语会占用多个位置。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
386
本地导入

序列短语评分

多词元短语不能只读取一个输出位置,而要逐词元生成并累计分数;短语长度因此会影响比较。 本文语境解释,未作为独立知识专题收录。

多词元短语不能只读取一个输出位置,而要逐词元生成并累计分数;短语长度因此会影响比较。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
387
本地导入

单词元标签的设计

作者提出,将选项设计成单词元标签,可以让它们在同一位置直接比较,而类别含义由提示中的描述提供。 本文语境解释,未作为独立知识专题收录。

作者提出,将选项设计成单词元标签,可以让它们在同一位置直接比较,而类别含义由提示中的描述提供。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
388
本地导入

纯文本标记

这是一个标示内容类型的纯文本标签。 本文语境解释,未作为独立知识专题收录。

这是一个标示内容类型的纯文本标签。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
389
本地导入

类别语义描述

这段内容将 A、B、C 分别定义为账单与付款问题、产品错误与技术故障、登录密码与账户访问问题,为单字符标签提供语义。 本文语境解释,未作为独立知识专题收录。

这段内容将 A、B、C 分别定义为账单与付款问题、产品错误与技术故障、登录密码与账户访问问题,为单字符标签提供语义。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
390
本地导入

标签与语义的分工

作者说明,模型从提示中的类别描述理解语义,而评分阶段实际检查的是 A、B、C 标签词元的 logit。 本文语境解释,未作为独立知识专题收录。

作者说明,模型从提示中的类别描述理解语义,而评分阶段实际检查的是 A、B、C 标签词元的 logit。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
391
本地导入

验证词元数量

作者指出,标签必须经过词元数量检查,以确保后续评分映射成立。 本文语境解释,未作为独立知识专题收录。

作者指出,标签必须经过词元数量检查,以确保后续评分映射成立。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
392
本地导入

前导空格影响词元

前导空格可能参与词元编码,所以表面上相近的标签可能被分配不同的词元 ID。 本文语境解释,未作为独立知识专题收录。

前导空格可能参与词元编码,所以表面上相近的标签可能被分配不同的词元 ID。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
393
本地导入

聊天模板的额外词元

答案前的聊天模板内容可能改变模型实际接收的上下文和词元边界。 本文语境解释,未作为独立知识专题收录。

答案前的聊天模板内容可能改变模型实际接收的上下文和词元边界。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
394
本地导入

按完整模板检查标签

流程是先用聊天模板生成完整提示,再检查答案位置的实际后续内容,并要求其编码为单个词元。 本文语境解释,未作为独立知识专题收录。

流程是先用聊天模板生成完整提示,再检查答案位置的实际后续内容,并要求其编码为单个词元。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
395
本地导入

隔离模型标签

应用层使用语义化选项,评分客户端负责将它们与模型标签之间进行内部映射,从而隐藏模型专用表示。 本文语境解释,未作为独立知识专题收录。

应用层使用语义化选项,评分客户端负责将它们与模型标签之间进行内部映射,从而隐藏模型专用表示。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
396
本地导入

为未列情况留出口

封闭的答案列表可能无法覆盖所有输入,因此需要允许结果脱离已列出的选项。 本文语境解释,未作为独立知识专题收录。

封闭的答案列表可能无法覆盖所有输入,因此需要允许结果脱离已列出的选项。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
397
本地导入

受限概率的错误归属

当真实类别不在候选列表中时,受限 softmax 只能在现有选项之间分配概率,因此可能强迫系统选择错误类别。 本文语境解释,未作为独立知识专题收录。

当真实类别不在候选列表中时,受限 softmax 只能在现有选项之间分配概率,因此可能强迫系统选择错误类别。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
398
本地导入

添加其他或升级选项

OTHER 或 ESCALATE 为不属于已命名类别的输入提供了可选出口。 本文语境解释,未作为独立知识专题收录。

OTHER 或 ESCALATE 为不属于已命名类别的输入提供了可选出口。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
399
本地导入

实现本地评分端点

本节转入使用 SGLang 和本地模型服务器构建评分接口的实现步骤。 本文语境解释,未作为独立知识专题收录。

本节转入使用 SGLang 和本地模型服务器构建评分接口的实现步骤。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
400
本地导入

本地推理服务器

架构由一个运行 Qwen 的 SGLang 服务器和一个直接调用其 HTTP 接口的 Python 脚本组成。 本文语境解释,未作为独立知识专题收录。

架构由一个运行 Qwen 的 SGLang 服务器和一个直接调用其 HTTP 接口的 Python 脚本组成。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
401
本地导入

完整流程

下面的列表按顺序概括启动服务器、准备标签、评分以及映射结果的步骤。 本文语境解释,未作为独立知识专题收录。

下面的列表按顺序概括启动服务器、准备标签、评分以及映射结果的步骤。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
402
本地导入

启动 SGLang

第一步是让 SGLang 加载并服务一个 Qwen 模型。 本文语境解释,未作为独立知识专题收录。

第一步是让 SGLang 加载并服务一个 Qwen 模型。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
403
本地导入

编写带标签提示

决策任务通过提示表达,并用字母表示候选答案。 本文语境解释,未作为独立知识专题收录。

决策任务通过提示表达,并用字母表示候选答案。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
404
本地导入

对标签分词

通过分词接口检查字母标签在模型词表中的编码方式。 本文语境解释,未作为独立知识专题收录。

通过分词接口检查字母标签在模型词表中的编码方式。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
405
本地导入

请求评分

评分阶段通过“/v1/score”端点提交一次请求。 本文语境解释,未作为独立知识专题收录。

评分阶段通过“/v1/score”端点提交一次请求。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
406
本地导入

还原选项概率

客户端把模型返回的概率重新对应到应用层的候选选择。 本文语境解释,未作为独立知识专题收录。

客户端把模型返回的概率重新对应到应用层的候选选择。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
407
本地导入

使用 SGLang 启动 Qwen

本步骤开始配置环境并启动由 SGLang 服务的 Qwen 模型。 本文语境解释,未作为独立知识专题收录。

本步骤开始配置环境并启动由 SGLang 服务的 Qwen 模型。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
408
本地导入

安装依赖

在启动服务器前,先建立 Python 虚拟环境并安装指定依赖。 本文语境解释,未作为独立知识专题收录。

在启动服务器前,先建立 Python 虚拟环境并安装指定依赖。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
409
本地导入

命令类型

该标记说明后续代码块包含 Bash 命令。 本文语境解释,未作为独立知识专题收录。

该标记说明后续代码块包含 Bash 命令。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
410
本地导入

创建环境并安装软件包

代码依次创建名为“.venv”的 Python 虚拟环境、激活该环境,并安装指定版本的 SGLang 和 requests。 本文语境解释,未作为独立知识专题收录。

代码依次创建名为“.venv”的 Python 虚拟环境、激活该环境,并安装指定版本的 SGLang 和 requests。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
411
本地导入

启动模型服务器

依赖安装完成后,下一步是运行 SGLang 的服务器启动命令。 本文语境解释,未作为独立知识专题收录。

依赖安装完成后,下一步是运行 SGLang 的服务器启动命令。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
412
本地导入

命令类型

该标记说明后续代码块包含 Bash 命令。 本文语境解释,未作为独立知识专题收录。

该标记说明后续代码块包含 Bash 命令。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
413
本地导入

启动 Qwen 服务

代码以 SGLang 启动服务器,指定 Qwen 模型路径、仅监听本机的主机地址以及 30000 端口。 本文语境解释,未作为独立知识专题收录。

代码以 SGLang 启动服务器,指定 Qwen 模型路径、仅监听本机的主机地址以及 30000 端口。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
414
本地导入

模型下载与缓存

作者描述了首次启动下载模型、后续启动使用缓存,以及加载完成后持续提供本地端口服务的过程。 本文语境解释,未作为独立知识专题收录。

作者描述了首次启动下载模型、后续启动使用缓存,以及加载完成后持续提供本地端口服务的过程。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
415
本地导入

保持推理服务运行

作者说明客户端依赖正在运行的 SGLang 推理服务。 本文语境解释,未作为独立知识专题收录。

作者说明客户端依赖正在运行的 SGLang 推理服务。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
416
本地导入

定义选项与提示词

本步骤将回答类别定义为选项,并据此构建发送给模型的提示词。 本文语境解释,未作为独立知识专题收录。

本步骤将回答类别定义为选项,并据此构建发送给模型的提示词。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
417
本地导入

创建决策脚本

作者要求新建一个 Python 文件,用于定义选项、生成提示词并与推理服务交互。 本文语境解释,未作为独立知识专题收录。

作者要求新建一个 Python 文件,用于定义选项、生成提示词并与推理服务交互。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
418
本地导入

Python 标记

这是后续代码块的语言标记。 本文语境解释,未作为独立知识专题收录。

这是后续代码块的语言标记。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
419
本地导入

构建分类提示词

代码导入 JSON 和请求库,设置本地服务地址与模型名称,定义 A、B、C 三个类别及一个账单示例。随后按选项顺序生成提示词,要求模型只返回标签,并打印该提示词。 本文语境解释,未作为独立知识专题收录。

代码导入 JSON 和请求库,设置本地服务地址与模型名称,定义 A、B、C 三个类别及一个账单示例。随后按选项顺序生成提示词,要求模型只返回标签,并打印该提示词。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
420
本地导入

记录答案表示

作者区分模型评分所用的标签表示与应用接收的含义表示。 本文语境解释,未作为独立知识专题收录。

作者区分模型评分所用的标签表示与应用接收的含义表示。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
421
本地导入

评分标签

模型评分针对的是选项标签,而不是完整的类别描述。 本文语境解释,未作为独立知识专题收录。

模型评分针对的是选项标签,而不是完整的类别描述。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
422
本地导入

应用含义

作者将标签对应的类别含义作为应用层返回值。 本文语境解释,未作为独立知识专题收录。

作者将标签对应的类别含义作为应用层返回值。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
423
本地导入

保持顺序一致

标签与含义之间的对应关系依赖顺序,因此各处理阶段都不能改变排列。 本文语境解释,未作为独立知识专题收录。

标签与含义之间的对应关系依赖顺序,因此各处理阶段都不能改变排列。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
424
本地导入

展示生成的提示词

作者接着展示前述代码实际构建出的提示词文本。 本文语境解释,未作为独立知识专题收录。

作者接着展示前述代码实际构建出的提示词文本。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
425
本地导入

纯文本标记

这是后续文本块的格式标记。 本文语境解释,未作为独立知识专题收录。

这是后续文本块的格式标记。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
426
本地导入

完整提示词

该文本包含票据、分类问题、允许的 A/B/C 标签及只返回标签的要求,末尾停在 Label:。 本文语境解释,未作为独立知识专题收录。

该文本包含票据、分类问题、允许的 A/B/C 标签及只返回标签的要求,末尾停在 Label:。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
427
本地导入

提示词结束位置

作者指出模型接下来应在 Label: 之后给出标签。 本文语境解释,未作为独立知识专题收录。

作者指出模型接下来应在 Label: 之后给出标签。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
428
本地导入

评分下一个标记

方法目标是读取模型对下一个标记位置的分数,而不是让服务实际生成答案标记。 本文语境解释,未作为独立知识专题收录。

方法目标是读取模型对下一个标记位置的分数,而不是让服务实际生成答案标记。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
429
本地导入

解析标签标记 ID

本步骤将 A、B、C 标签转换为模型分词器对应的整数标记 ID。 本文语境解释,未作为独立知识专题收录。

本步骤将 A、B、C 标签转换为模型分词器对应的整数标记 ID。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
430
本地导入

添加标记解析代码

作者要求在前述提示词构建代码之后加入用于获取标签标记 ID 的代码。 本文语境解释,未作为独立知识专题收录。

作者要求在前述提示词构建代码之后加入用于获取标签标记 ID 的代码。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
431
本地导入

Python 标记

这是后续代码块的语言标记。 本文语境解释,未作为独立知识专题收录。

这是后续代码块的语言标记。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
432
本地导入

获取标签标记 ID

代码逐一请求本地 SGLang 的 /tokenize 端点,对每个标签关闭特殊标记添加,检查结果是否恰好包含一个标记,并把该标记 ID 按顺序保存。 本文语境解释,未作为独立知识专题收录。

代码逐一请求本地 SGLang 的 /tokenize 端点,对每个标签关闭特殊标记添加,检查结果是否恰好包含一个标记,并把该标记 ID 按顺序保存。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
433
本地导入

检查标签分词

作者说明分词端点用于获取标签的整数 ID,并要求每个标签对应单一词汇表位置,以便后续评分。 本文语境解释,未作为独立知识专题收录。

作者说明分词端点用于获取标签的整数 ID,并要求每个标签对应单一词汇表位置,以便后续评分。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
434
本地导入

展示标签 ID

作者给出指定模型下 A、B、C 标签的分词结果示例。 本文语境解释,未作为独立知识专题收录。

作者给出指定模型下 A、B、C 标签的分词结果示例。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
435
本地导入

纯文本标记

这是后续输出示例的格式标记。 本文语境解释,未作为独立知识专题收录。

这是后续输出示例的格式标记。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
436
本地导入

标签到 ID 的映射

示例显示 A、B、C 分别对应单个整数标记 32、33、34。 本文语境解释,未作为独立知识专题收录。

示例显示 A、B、C 分别对应单个整数标记 32、33、34。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
437
本地导入

确定评分位置

由于每个标签的分词结果只有一个整数,后续评分可以直接针对这三个词汇表位置。 本文语境解释,未作为独立知识专题收录。

由于每个标签的分词结果只有一个整数,后续评分可以直接针对这三个词汇表位置。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
438
本地导入

避免跨模型假设

作者强调标签是否为单一标记取决于分词器,因此需要针对实际模型检查,而不能直接复用 Qwen 的结论。 本文语境解释,未作为独立知识专题收录。

作者强调标签是否为单一标记取决于分词器,因此需要针对实际模型检查,而不能直接复用 Qwen 的结论。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
439
本地导入

请求三个概率

本步骤使用 SGLang 的评分接口,根据模型输出中三个标签对应的分数来获得概率。 本文语境解释,未作为独立知识专题收录。

本步骤使用 SGLang 的评分接口,根据模型输出中三个标签对应的分数来获得概率。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
440
本地导入

添加评分请求

作者准备通过 HTTP 请求调用评分接口,并将完整提示词和标签信息发送给模型。 本文语境解释,未作为独立知识专题收录。

作者准备通过 HTTP 请求调用评分接口,并将完整提示词和标签信息发送给模型。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
441
本地导入

Python 代码

该单元标识后续代码使用 Python。 本文语境解释,未作为独立知识专题收录。

该单元标识后续代码使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
442
本地导入

发送评分请求

代码向 BASE_URL 下的 /v1/score 端点发送 POST 请求,提交模型名称、提示词、空的 items、标签 token ID,并要求应用 softmax。请求超时设为 120 秒;响应状态异常时抛出错误,…

代码向 BASE_URL 下的 /v1/score 端点发送 POST 请求,提交模型名称、提示词、空的 items、标签 token ID,并要求应用 softmax。请求超时设为 120 秒;响应状态异常时抛出错误,然后解析 JSON,打印完整响应,并取出 scores 中的第一组分数。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
443
本地导入

完整提示词

评分请求使用 query 字段承载要交给模型判断的完整上下文。 本文语境解释,未作为独立知识专题收录。

评分请求使用 query 字段承载要交给模型判断的完整上下文。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
444
本地导入

评分位置

作者将空字符串作为 items 的唯一条目,以便评分该条目之后的下一个位置。 本文语境解释,未作为独立知识专题收录。

作者将空字符串作为 items 的唯一条目,以便评分该条目之后的下一个位置。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
445
本地导入

标签 token ID

该字段指定三个候选标签在 Qwen 输出中的位置,使服务能够提取对应分数。 本文语境解释,未作为独立知识专题收录。

该字段指定三个候选标签在 Qwen 输出中的位置,使服务能够提取对应分数。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
446
本地导入

归一化为概率

启用该选项后,选定的输出分数会经过 softmax 处理,形成可比较的概率值。 本文语境解释,未作为独立知识专题收录。

启用该选项后,选定的输出分数会经过 softmax 处理,形成可比较的概率值。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
447
本地导入

获得分数列表

响应的列表数量与 items 中的条目数量对应;作者给出了使用相同提示词和 Qwen 检查点时的示例结果。 本文语境解释,未作为独立知识专题收录。

响应的列表数量与 items 中的条目数量对应;作者给出了使用相同提示词和 Qwen 检查点时的示例结果。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
448
本地导入

JSON 示例

该单元标识后续内容是 JSON 格式的结果示例。 本文语境解释,未作为独立知识专题收录。

该单元标识后续内容是 JSON 格式的结果示例。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
449
本地导入

概率结果

代码块展示了一个 scores 数组,其中包含三个数值,分别对应三个候选标签的评分结果。 本文语境解释,未作为独立知识专题收录。

代码块展示了一个 scores 数组,其中包含三个数值,分别对应三个候选标签的评分结果。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
450
本地导入

标签顺序与 logits

作者说明三个概率位置的标签对应关系,并区分了 softmax 前的 logits 与处理后的概率。 本文语境解释,未作为独立知识专题收录。

作者说明三个概率位置的标签对应关系,并区分了 softmax 前的 logits 与处理后的概率。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
451
本地导入

确认标签顺序

作者依据端点参考文档,将返回列表中的位置与传入的标签 token ID 顺序对应起来。 本文语境解释,未作为独立知识专题收录。

作者依据端点参考文档,将返回列表中的位置与传入的标签 token ID 顺序对应起来。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
452
本地导入

转换为决策

本步骤把模型返回的标签分数重新映射为可读的分类名称,并选择概率最高的结果。 本文语境解释,未作为独立知识专题收录。

本步骤把模型返回的标签分数重新映射为可读的分类名称,并选择概率最高的结果。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
453
本地导入

完成标签映射

作者准备使用一段代码把标签名称与分数配对,并生成最终决策。 本文语境解释,未作为独立知识专题收录。

作者准备使用一段代码把标签名称与分数配对,并生成最终决策。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
454
本地导入

Python 代码

该单元标识后续代码使用 Python。 本文语境解释,未作为独立知识专题收录。

该单元标识后续代码使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
455
本地导入

生成最终决策

代码将 choices 中的标签与 scores 中的分数严格配对,构造 probabilities 字典,再取概率最大的标签作为 decision,最后以 JSON 格式打印决策和概率。 本文语境解释,未作为独立知识专…

代码将 choices 中的标签与 scores 中的分数严格配对,构造 probabilities 字典,再取概率最大的标签作为 decision,最后以 JSON 格式打印决策和概率。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
456
本地导入

运行脚本

作者建议在另一个终端启动前面构建的决策脚本,以查看输出。 本文语境解释,未作为独立知识专题收录。

作者建议在另一个终端启动前面构建的决策脚本,以查看输出。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
457
本地导入

JSON 输出

该单元标识后续内容是 JSON 格式的输出示例。 本文语境解释,未作为独立知识专题收录。

该单元标识后续内容是 JSON 格式的输出示例。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
458
本地导入

决策输出示例

代码块展示脚本运行后的示例结果:决策为 billing and payments,三个类别分别得到给定概率。 本文语境解释,未作为独立知识专题收录。

代码块展示脚本运行后的示例结果:决策为 billing and payments,三个类别分别得到给定概率。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
459
本地导入

SGLang 的评分流程

作者概括了评分请求的处理链路:标签先被分词,Qwen 执行一次推理,服务再返回所选标签的概率。 本文语境解释,未作为独立知识专题收录。

作者概括了评分请求的处理链路:标签先被分词,Qwen 执行一次推理,服务再返回所选标签的概率。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
460
本地导入

概率阈值与审核

作者用 0.70 的假设阈值说明:虽然 billing and payments 是最高概率类别,但置信度不足时可以改为人工审核。 本文语境解释,未作为独立知识专题收录。

作者用 0.70 的假设阈值说明:虽然 billing and payments 是最高概率类别,但置信度不足时可以改为人工审核。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
461
本地导入

比较评分延迟

本节标题表明后续内容将比较评分请求与自回归生成在延迟方面的表现。 本文语境解释,未作为独立知识专题收录。

本节标题表明后续内容将比较评分请求与自回归生成在延迟方面的表现。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
462
本地导入

测试多次决策

作者从单次请求的机制说明扩展到一个小型应用,准备观察该机制在多项决策中的行为。 本文语境解释,未作为独立知识专题收录。

作者从单次请求的机制说明扩展到一个小型应用,准备观察该机制在多项决策中的行为。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
463
本地导入

支持的开放模型

作者列出了部署演示可使用的模型及其参数规模,说明该演示并不局限于单一模型。 本文语境解释,未作为独立知识专题收录。

作者列出了部署演示可使用的模型及其参数规模,说明该演示并不局限于单一模型。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
464
本地导入

Jev 风格决策

作者开始说明 Jev 风格通道如何调用决策方法,为后续代码和请求流程作铺垫。 本文语境解释,未作为独立知识专题收录。

作者开始说明 Jev 风格通道如何调用决策方法,为后续代码和请求流程作铺垫。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
465
本地导入

代码语言

该单元标记后续代码使用 Python。 本文语境解释,未作为独立知识专题收录。

该单元标记后续代码使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
466
本地导入

读取决策结果

代码调用引擎的 decide 方法处理请求,从结果中的 answers 和 decision 字段读取选择及其概率。 本文语境解释,未作为独立知识专题收录。

代码调用引擎的 decide 方法处理请求,从结果中的 answers 和 decision 字段读取选择及其概率。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
467
本地导入

决策请求

作者说明了决策方法的请求入口,以及用于比较的三个选项对应的词元 ID。 本文语境解释,未作为独立知识专题收录。

作者说明了决策方法的请求入口,以及用于比较的三个选项对应的词元 ID。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
468
本地导入

分数归一化

该流程只比较三个候选下一词元的分数并进行归一化,不继续生成文本。 本文语境解释,未作为独立知识专题收录。

该流程只比较三个候选下一词元的分数并进行归一化,不继续生成文本。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
469
本地导入

标准生成通道

作者将标准通道与 Jev 风格通道进行对照,指出两者使用同一引擎但调用不同方法。 本文语境解释,未作为独立知识专题收录。

作者将标准通道与 Jev 风格通道进行对照,指出两者使用同一引擎但调用不同方法。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
470
本地导入

代码语言

该单元标记后续代码使用 Python。 本文语境解释,未作为独立知识专题收录。

该单元标记后续代码使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
471
本地导入

生成回答

代码将案例的状态、问题和标准条目传入生成方法,并把最大生成词元数设为 32。 本文语境解释,未作为独立知识专题收录。

代码将案例的状态、问题和标准条目传入生成方法,并把最大生成词元数设为 32。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
472
本地导入

生成请求接口

标准生成方法沿用相同输入内容,但通过聊天补全接口提交请求。 本文语境解释,未作为独立知识专题收录。

标准生成方法沿用相同输入内容,但通过聊天补全接口提交请求。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
473
本地导入

解析生成结果

作者描述了标准通道如何限制输出长度、从输出开头识别选项,并依据识别结果与标签的匹配情况判断正确性。 本文语境解释,未作为独立知识专题收录。

作者描述了标准通道如何限制输出长度、从输出开头识别选项,并依据识别结果与标签的匹配情况判断正确性。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
474
本地导入

本地方案对比

作者引出视频中的对比,比较两种都在本地运行的决策或生成方案。 本文语境解释,未作为独立知识专题收录。

作者引出视频中的对比,比较两种都在本地运行的决策或生成方案。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
475
本地导入

速度差异

作者认为两种方案的速度差异在对比中很明显,并将原因归于前文已经讨论的内容。 本文语境解释,未作为独立知识专题收录。

作者认为两种方案的速度差异在对比中很明显,并将原因归于前文已经讨论的内容。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
476
本地导入

百案例模拟

作者补充说明使用固定本地数据集进行模拟,以便在统一案例集合上比较方案。 本文语境解释,未作为独立知识专题收录。

作者补充说明使用固定本地数据集进行模拟,以便在统一案例集合上比较方案。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
477
本地导入

数据集与评估

这些数据集包含三类任务,并通过预先设定的标签同时支持速度和正确性展示。 本文语境解释,未作为独立知识专题收录。

这些数据集包含三类任务,并通过预先设定的标签同时支持速度和正确性展示。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
478
本地导入

并行工作线程

作者开始说明远程 SGLang 路径如何让两个工作线程同步启动,以便并行比较两条处理通道。 本文语境解释,未作为独立知识专题收录。

作者开始说明远程 SGLang 路径如何让两个工作线程同步启动,以便并行比较两条处理通道。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
479
本地导入

代码语言

该单元标记后续代码使用 Python。 本文语境解释,未作为独立知识专题收录。

该单元标记后续代码使用 Python。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
480
本地导入

启动并行线程

代码创建一个需要两个参与者的线程屏障,定义工作函数,并分别为 Jev 和 LLM 通道创建及启动线程。 本文语境解释,未作为独立知识专题收录。

代码创建一个需要两个参与者的线程屏障,定义工作函数,并分别为 Jev 和 LLM 通道创建及启动线程。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
481
本地导入

两条通道同步处理

两个线程从同一同步点开始,但各自按顺序推进;下一请求要等本通道的前一请求完成。 本文语境解释,未作为独立知识专题收录。

两个线程从同一同步点开始,但各自按顺序推进;下一请求要等本通道的前一请求完成。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
482
本地导入

连续批处理

作者区分了两条通道并行运行与一次性提交全部请求:请求会并发到达 SGLang,再由连续批处理共享硬件资源进行调度。 本文语境解释,未作为独立知识专题收录。

作者区分了两条通道并行运行与一次性提交全部请求:请求会并发到达 SGLang,再由连续批处理共享硬件资源进行调度。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
483
本地导入

视频对比

作者引导读者观看视频,以并排形式观察两种方案的运行差异。 本文语境解释,未作为独立知识专题收录。

作者引导读者观看视频,以并排形式观察两种方案的运行差异。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
484
本地导入

视频加速说明

作者提醒观看者,视频后段经过加速,因此画面中的 LLM 请求速度不能直接按播放时间理解。 本文语境解释,未作为独立知识专题收录。

作者提醒观看者,视频后段经过加速,因此画面中的 LLM 请求速度不能直接按播放时间理解。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
485
本地导入

相同测试环境

作者说明对比时让两条通道共享启动时间、服务器和具体模型,以保持测试环境一致。 本文语境解释,未作为独立知识专题收录。

作者说明对比时让两条通道共享启动时间、服务器和具体模型,以保持测试环境一致。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
486
本地导入

选择合适的方法

这是下一部分的标题,表明作者将转向讨论不同方法的选择。 本文语境解释,未作为独立知识专题收录。

这是下一部分的标题,表明作者将转向讨论不同方法的选择。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
487
本地导入

评分的适用前提

作者区分了评分与生成,并指出只有当输出候选空间预先确定时,Jev 方法才适用。 本文语境解释,未作为独立知识专题收录。

作者区分了评分与生成,并指出只有当输出候选空间预先确定时,Jev 方法才适用。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
488
本地导入

有限的标签集合

该方法面向标签选择任务:候选标签数量有限,而且不同标签会触发不同的后续动作。 本文语境解释,未作为独立知识专题收录。

该方法面向标签选择任务:候选标签数量有限,而且不同标签会触发不同的后续动作。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
489
本地导入

调用方所需的输出

作者进一步限定了调用方的需求:结果应是标签和概率分布,而不是一段新文本。 本文语境解释,未作为独立知识专题收录。

作者进一步限定了调用方的需求:结果应是标签和概率分布,而不是一段新文本。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
490
本地导入

结构化输出的区别

结构化生成约束响应的格式,但字段名和值仍需通过逐 token 解码生成,因此不等同于只对已知候选进行评分。 本文语境解释,未作为独立知识专题收录。

结构化生成约束响应的格式,但字段名和值仍需通过逐 token 解码生成,因此不等同于只对已知候选进行评分。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
491
本地导入

何时使用结构化生成

作者将方法选择与候选值是否预先已知联系起来:未知值需要生成,已知候选值则可以通过评分避免解码。 本文语境解释,未作为独立知识专题收录。

作者将方法选择与候选值是否预先已知联系起来:未知值需要生成,已知候选值则可以通过评分避免解码。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
492
本地导入

三种推理方式的比较

作者引出一张用于对比三种处理路径的图:常规语言模型解码、结构化输出解码,以及 Jev 风格评分。 本文语境解释,未作为独立知识专题收录。

作者引出一张用于对比三种处理路径的图:常规语言模型解码、结构化输出解码,以及 Jev 风格评分。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
493
本地导入

根据输出选择路径

作者建议先判断所需输出的性质,再决定采用生成还是评分等推理方式。 本文语境解释,未作为独立知识专题收录。

作者建议先判断所需输出的性质,再决定采用生成还是评分等推理方式。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
494
本地导入

未知内容使用生成

如果事先不知道需要产生的具体内容,就必须让模型生成输出。 本文语境解释,未作为独立知识专题收录。

如果事先不知道需要产生的具体内容,就必须让模型生成输出。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
495
本地导入

已知集合使用评分

对于预先知道候选集合、只需从中选择的任务,作者认为第一次下一 token 的向量就能提供候选排序,因此无需继续逐步生成。 本文语境解释,未作为独立知识专题收录。

对于预先知道候选集合、只需从中选择的任务,作者认为第一次下一 token 的向量就能提供候选排序,因此无需继续逐步生成。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
496
本地导入

复现范围的限制

作者明确区分了项目复现的内容与未复现的内容:项目只涉及 Jev 风格的推理机制,不包括模型权重、RLCD 流程或评估工具链。 本文语境解释,未作为独立知识专题收录。

作者明确区分了项目复现的内容与未复现的内容:项目只涉及 Jev 风格的推理机制,不包括模型权重、RLCD 流程或评估工具链。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
497
本地导入

后续介绍计划

作者表示计划在之后介绍前文提到的权重、RLCD 流程和评估栈背后的过程。 本文语境解释,未作为独立知识专题收录。

作者表示计划在之后介绍前文提到的权重、RLCD 流程和评估栈背后的过程。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
498
本地导入

敬请期待

作者以简短的结束语提示读者关注后续内容。 本文语境解释,未作为独立知识专题收录。

作者以简短的结束语提示读者关注后续内容。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
499
本地导入

文章结束

作者宣布本篇文章或教程部分结束。 本文语境解释,未作为独立知识专题收录。

作者宣布本篇文章或教程部分结束。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
500
本地导入

教程反馈引导

作者开始引导喜欢本教程的读者进行后续互动。 本文语境解释,未作为独立知识专题收录。

作者开始引导喜欢本教程的读者进行后续互动。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
501
本地导入

作者账号

作者提供了自己的账号 @_avichawla,供读者查找。 本文语境解释,未作为独立知识专题收录。

作者提供了自己的账号 @_avichawla,供读者查找。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
502
本地导入

作者分享内容

作者介绍其日常分享主题,包括 DS(数据科学)、ML(机器学习)、LLMs(大型语言模型)和 RAGs(检索增强生成)。 本文语境解释,未作为独立知识专题收录。

作者介绍其日常分享主题,包括 DS(数据科学)、ML(机器学习)、LLMs(大型语言模型)和 RAGs(检索增强生成)。

本文语境解释,未作为独立知识专题收录。

回到解读:Build your own Jev (100% local)
503
模型机制

本文解释:从观察到架构,中间有多远

同样的输入输出行为,可能由不同内部结构实现。黑箱实验可以让某些假设更不可信,却往往不能只凭一个现象锁定唯一结构。阅读时把“与某方案一致”和“证明采用某方案”分开。

同样的输入输出行为,可能由不同内部结构实现。黑箱实验可以让某些假设更不可信,却往往不能只凭一个现象锁定唯一结构。阅读时把“与某方案一致”和“证明采用某方案”分开。

回到解读:Jev’s Architecture Unmasked
504
模型机制

本文解释:预填充与自回归解码

预填充处理的是已经给定的整段输入,因此一层中的多个位置可以并行计算,再由掩码限制可见信息。自回归解码还要等待上一个输出被选定,才能生成下一个。本文推测的系统在读出概率后就结束,避免了这条输出依赖链。

预填充处理的是已经给定的整段输入,因此一层中的多个位置可以并行计算,再由掩码限制可见信息。自回归解码还要等待上一个输出被选定,才能生成下一个。本文推测的系统在读出概率后就结束,避免了这条输出依赖链。

回到解读:Jev’s Architecture Unmasked
505
模型机制

本文解释:计算隔离不等于统计独立

工单是否紧急、属于哪个队列,可能因为同一段状态而相关。问题分支互不读取彼此的指令,只说明计算路径上的隔离;不能据此说两个答案在统计上独立。

工单是否紧急、属于哪个队列,可能因为同一段状态而相关。问题分支互不读取彼此的指令,只说明计算路径上的隔离;不能据此说两个答案在统计上独立。

回到解读:Jev’s Architecture Unmasked
506
模型机制

本文解释:为什么检查概率比

固定logits和固定温度时,softmax各项共享同一个分母;两个已有选项相除,分母抵消。新增选项可改变各项概率,却不能改变这个比值。实验出现比值变化,反驳的是这组前提,不自动定位变化发生在哪一层。

固定logits和固定温度时,softmax各项共享同一个分母;两个已有选项相除,分母抵消。新增选项可改变各项概率,却不能改变这个比值。实验出现比值变化,反驳的是这组前提,不自动定位变化发生在哪一层。

回到解读:Jev’s Architecture Unmasked
507
模型机制

本文解释:校准与置信度摘要

校准要看许多案例中报出的概率与实际频率是否一致;confidence还可能只是分布集中程度的压缩指标。一次预测答对不能证明校准,一次高置信度也不能替代业务验证。

校准要看许多案例中报出的概率与实际频率是否一致;confidence还可能只是分布集中程度的压缩指标。一次预测答对不能证明校准,一次高置信度也不能替代业务验证。

回到解读:Jev’s Architecture Unmasked
508
模型机制

本文解释:约束输出空间

若允许输出只有“批准、拒绝、复核”,模型不能输出第四个未定义选项,这解决接口形状问题。选哪一个仍需要判断,正确性要用任务数据检查。这个例子是编辑说明。

若允许输出只有“批准、拒绝、复核”,模型不能输出第四个未定义选项,这解决接口形状问题。选哪一个仍需要判断,正确性要用任务数据检查。这个例子是编辑说明。

回到解读:Introducing System One Models & Jev
509
模型机制

本文解释:概率与置信度

一组候选概率描述模型如何分配可能性,产品还可把分布集中程度压缩成置信度。这样的数字能辅助分流,但不能仅凭一个0.9就认定这次判断有经过验证的90%正确率。

一组候选概率描述模型如何分配可能性,产品还可把分布集中程度压缩成置信度。这样的数字能辅助分流,但不能仅凭一个0.9就认定这次判断有经过验证的90%正确率。

回到解读:Introducing System One Models & Jev
510
模型机制

本文解释:帕累托前沿

在成本与准确度两个目标下,如果没有其他方案既更便宜又更准确,该点就在这组候选的前沿。前沿随任务、参照标签和比较候选变化;位于前沿不代表在所有指标上最优。

在成本与准确度两个目标下,如果没有其他方案既更便宜又更准确,该点就在这组候选的前沿。前沿随任务、参照标签和比较候选变化;位于前沿不代表在所有指标上最优。

回到解读:Introducing System One Models & Jev
511
模型机制

本文解释:把判断与规则分开

例如报销流程中,模型判断票据是否清晰、费用属于哪类;金额门槛与审批路线由代码执行。模型给概率,代码按已定义政策走分支。这里只是帮助理解的例子,不是已经部署的财务系统。

例如报销流程中,模型判断票据是否清晰、费用属于哪类;金额门槛与审批路线由代码执行。模型给概率,代码按已定义政策走分支。这里只是帮助理解的例子,不是已经部署的财务系统。

回到解读:Introducing System One Models & Jev
512
模型机制

本文解释:结果奖励怎样影响推理

可以把一次回答看作一条包含中间步骤和最终答案的生成路径。验证器给出路径的奖励,策略更新调整这条路径生成的概率;不逐句评分,不意味着中间token在训练中不存在。

可以把一次回答看作一条包含中间步骤和最终答案的生成路径。验证器给出路径的奖励,策略更新调整这条路径生成的概率;不逐句评分,不意味着中间token在训练中不存在。

回到解读:Controlling Reasoning Effort in LLMs
513
模型机制

本文解释:行为模式与硬预算

强度标签用于选择模型学到的推理行为;硬预算规定还能生成多久。像“写得简洁”和“到500字必须停”分别约束习惯与边界,二者可以同时使用,效果仍需按任务检验。

强度标签用于选择模型学到的推理行为;硬预算规定还能生成多久。像“写得简洁”和“到500字必须停”分别约束习惯与边界,二者可以同时使用,效果仍需按任务检验。

回到解读:Controlling Reasoning Effort in LLMs
514
模型机制

本文解释:怎样读成本曲线

先固定任务、评价指标、模型版本和运行框架,再比较费用或延迟。一次较便宜的调用如果需要大量重试,未必使整个任务更便宜;本文图表没有测量所有现实工作负载。

先固定任务、评价指标、模型版本和运行框架,再比较费用或延迟。一次较便宜的调用如果需要大量重试,未必使整个任务更便宜;本文图表没有测量所有现实工作负载。

回到解读:Controlling Reasoning Effort in LLMs
515
模型机制

本文解释:专家与统一模型

训练多个专家,再把行为汇集到一个学生模型,与部署时每次都调用所有专家不同。图中教师池说明训练来源,不能直接推断线上每次请求的并发方式。

训练多个专家,再把行为汇集到一个学生模型,与部署时每次都调用所有专家不同。图中教师池说明训练来源,不能直接推断线上每次请求的并发方式。

回到解读:Controlling Reasoning Effort in LLMs
516
工程实践

本文解读:先找出需要判断的那一步

原指南把 Agent 的重点放在由模型决定工作流怎样继续,并建议优先考察判断复杂、规则难维护或依赖非结构化材料的工作。可以用一个原创的“资料归档助手”来理解:下载文件、校验哈希、按日期排序都有明确规则;辨认两篇文章是否讨…

原指南把 Agent 的重点放在由模型决定工作流怎样继续,并建议优先考察判断复杂、规则难维护或依赖非结构化材料的工作。可以用一个原创的“资料归档助手”来理解:下载文件、校验哈希、按日期排序都有明确规则;辨认两篇文章是否讨论同一件事、发现资料不足后决定补查什么,才更依赖上下文判断。编辑建议先画出这条边界,再决定哪些步骤交给模型。这个例子用于帮助选题,不是原文中的产品案例,也没有证明引入 Agent 一定更省钱。

文末解读回看 →

回到解读:A practical guide to building agents
517
工程实践

本文解读:给工具清楚的职责,给指令可检查的结果

工具是系统能调用的能力,指令决定何时、为何使用这些能力。当前 SDK 还把结构化输出与本地运行上下文分开:下游程序需要固定字段时可以定义输出类型,数据库连接等依赖则留在程序侧。原创示例:把归档助手的“处理资料”拆成“读取…

工具是系统能调用的能力,指令决定何时、为何使用这些能力。当前 SDK 还把结构化输出与本地运行上下文分开:下游程序需要固定字段时可以定义输出类型,数据库连接等依赖则留在程序侧。原创示例:把归档助手的“处理资料”拆成“读取页面”和“保存草稿”,写明输入网址、返回正文或错误、保存后的文件地址;缺作者时记录未知,读不到正文时停止完整性判断。这样,失败会落在一个具体步骤上。字段齐全仍可能填错,正式交付还需要内容核对。

文末解读回看 →

回到解读:A practical guide to building agents
518
工程实践

本文解读:用失败记录判断改动是否有效

原指南建议先建立能力基线,再尝试降低模型成本。当前评估文档把方法进一步落实为运行轨迹与可重复的测试集:轨迹记录模型、工具、交接和检查发生了什么,测试集让前后版本面对相同问题。对归档助手,编辑建议保留正常页面、缺正文、重复…

原指南建议先建立能力基线,再尝试降低模型成本。当前评估文档把方法进一步落实为运行轨迹与可重复的测试集:轨迹记录模型、工具、交接和检查发生了什么,测试集让前后版本面对相同问题。对归档助手,编辑建议保留正常页面、缺正文、重复链接和错误来源等用例,逐项看是否保存了正确材料、是否误报完成,再记录耗时与费用。每次只改变一个主要因素,更容易找到错误来自哪里。这是一份试验设计建议,本篇没有实际测出模型优劣或节省比例。

文末解读回看 →

回到解读:A practical guide to building agents
519
工程实践

本文解读:一次运行可以包含多轮行动

当前 SDK 文档描述的运行过程是:调用模型,执行它提出的工具请求,再把结果带入后续决策;发生交接时换一个智能体继续,产生最终回复时返回结果。放到归档助手里,就是“搜索资料→读取页面→发现正文不全→换可用来源→保存结果”…

当前 SDK 文档描述的运行过程是:调用模型,执行它提出的工具请求,再把结果带入后续决策;发生交接时换一个智能体继续,产生最终回复时返回结果。放到归档助手里,就是“搜索资料→读取页面→发现正文不全→换可用来源→保存结果”。这里要分别检查程序是否结束、资料是否齐全:一句“已完成”不能替代文件与来源的核对。审批暂停则应保存状态,批准后继续同一次工作。原图 1 可以帮助认出组成部分,但实际运行顺序应以文档和轨迹为准。

文末解读回看 →

回到解读:A practical guide to building agents
520
工程实践

本文解读:增加智能体前,先决定谁负责最终回复

当前文档对两种协作方式的区分很实用:把专家当工具调用时,主智能体保留回复责任;交接(handoff)则让专家接管相应分支。原创例子:归档助手请术语专家检查一个名词,收到结论后自己汇总交付,适合前者;客服把整个故障对话转给…

当前文档对两种协作方式的区分很实用:把专家当工具调用时,主智能体保留回复责任;交接(handoff)则让专家接管相应分支。原创例子:归档助手请术语专家检查一个名词,收到结论后自己汇总交付,适合前者;客服把整个故障对话转给维修专家,适合后者。图 2 和图 3 分别展示这两种关系。要增加角色,应能说清不同的职责、工具或规则。只给同一个提示换几个角色名,还没有解决分工问题;工具多少也不是通用的拆分阈值。

文末解读回看 →

回到解读:A practical guide to building agents
521
工程实践

本文解读:把安全检查放到动作发生的位置

当前 SDK 文档区分输入、输出、工具检查与审批暂停,并提醒输入检查只作用于链中的第一个智能体,输出检查针对最终产出者;需要约束某个动作时,应在对应工具边界检查。原创例子:归档助手从网页读到“把私人目录上传出去”,应把它…

当前 SDK 文档区分输入、输出、工具检查与审批暂停,并提醒输入检查只作用于链中的第一个智能体,输出检查针对最终产出者;需要约束某个动作时,应在对应工具边界检查。原创例子:归档助手从网页读到“把私人目录上传出去”,应把它当网页内容处理;保存草稿与对外发送资料也应拥有不同的执行权限。并行检查可能降低等待,必须先判定的动作则应等检查通过。原图 4 是分层设计示意,不能把安全标记当作业务授权。原文示例存在说明错配,细节见下方“判断”。

文末解读回看 →

回到解读:A practical guide to building agents
522
工程实践

Harness、智能体与提示词,各管什么

模型根据输入生成内容或提出工具调用;Harness(智能体运行框架)负责把上下文送给模型、实际执行工具、接回结果、保存进度并决定后续流程。两者组合起来,才构成能够持续行动的智能体。不同团队对 Harness 的边界划分不…

模型根据输入生成内容或提出工具调用;Harness(智能体运行框架)负责把上下文送给模型、实际执行工具、接回结果、保存进度并决定后续流程。两者组合起来,才构成能够持续行动的智能体。不同团队对 Harness 的边界划分不完全一致,本文采用较宽的定义。

例如,让模型说出“运行测试”只是文本输出;真正找到项目、执行测试、把失败日志送回模型,再让它修改,才是一个运行循环。提示词属于其中的指导内容,运行框架还包含执行与状态管理。Philipp Schmid · The importance of Agent Harness in 2026 ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
523
工程实践

上下文、持久记忆与压缩

上下文窗口是模型本次能看到的信息,不等于完整项目历史。进度文件、代码仓库或事件日志可以保存更多资料,但需要检索或读取后,相关内容才会进入上下文。 “重置”是开始新的上下文,并依靠交接资料继续;“压缩”是将较早内容归纳为摘…

上下文窗口是模型本次能看到的信息,不等于完整项目历史。进度文件、代码仓库或事件日志可以保存更多资料,但需要检索或读取后,相关内容才会进入上下文。

“重置”是开始新的上下文,并依靠交接资料继续;“压缩”是将较早内容归纳为摘要,让会话继续。两者都可能遗漏细节。实用的交接至少应说明:目标是什么、已经做了什么、哪些检查通过、什么仍未完成,以及依据保存在哪里。文档的存在与文档被准确使用,是两件事。Anthropic · Effective harnesses for long-running agents ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
524
工程实践

读懂实验:百分点、样本与控制变量

52.8% 到 66.5% 是提高 13.7 个百分点;相对增幅为 13.7÷52.8,约 25.9%。写成“提高 13.7%”会混淆两种口径。一次 5 题全对,也不代表未来任何输入都能全对。 比较 Harness 时,…

52.8% 到 66.5% 是提高 13.7 个百分点;相对增幅为 13.7÷52.8,约 25.9%。写成“提高 13.7%”会混淆两种口径。一次 5 题全对,也不代表未来任何输入都能全对。

比较 Harness 时,尽量固定模型、任务、时间预算与验收标准,重复运行并检查不同任务的失败情况。固定模型的比较回答“系统改动有没有帮助”;连模型一起换,则测的是整体方案,不能将变化全部归给某个组件。LangChain · Improving Deep Agents with harness engineering ↗ · Vercel · We removed 80% of our agent’s tools ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
525
工程实践

项目说明文件:名称、范围与执行约束

项目说明像给新同事的入门说明:告诉智能体如何运行项目、哪些规则适用于当前目录、去哪里找更详细的依据。Codex 默认使用 AGENTS.md ,Claude Code 使用 CLAUDE.md ;Cursor 的项目规则…

项目说明像给新同事的入门说明:告诉智能体如何运行项目、哪些规则适用于当前目录、去哪里找更详细的依据。Codex 默认使用 AGENTS.md,Claude Code 使用 CLAUDE.md;Cursor 的项目规则还可以按文件范围设置。

写在自然语言中的“不要跨模块引用”只是指导。真正要阻止违规合并,需要在检查程序或流水线中执行对应规则。说明文件负责传达意图,执行机制负责产生可检查的结果;两者应相互对应。Codex · Custom instructions with AGENTS.md ↗ · Claude Code · How Claude remembers your project ↗ · Cursor · Rules ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
526
工程实践

代码中的 OAuth、PKCE 与指数退避

OAuth 授权流程让应用获得访问资源的授权。PKCE 会为一次授权生成随机校验值,先提交由它导出的挑战值,再在兑换授权码时出示校验值,以证明兑换方持有同一份秘密。它并不是把访问 token 加密的算法。 SharedP…

OAuth 授权流程让应用获得访问资源的授权。PKCE 会为一次授权生成随机校验值,先提交由它导出的挑战值,再在兑换授权码时出示校验值,以证明兑换方持有同一份秘密。它并不是把访问 token 加密的算法。

SharedPreferences 是 Android 的键值存储方式,例子额外要求加密保存 token。“指数退避”则是在重试之间逐步拉长等待时间,例如等待 1、2、4 秒;这只是说明增长方式,是否重试、等待多久还取决于操作性质。示例是项目约定文档,不是可直接部署的认证实现。RFC 7636 · Proof Key for Code Exchange ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
527
工程实践

功能清单、验收标准与迭代契约

功能清单记录“要交付什么”;验收步骤记录“怎样观察它是否完成”;状态字段记录“目前验证到哪里”。JSON 只是存放这些信息的格式。把状态从 failing 改为 passing,应该有测试、操作记录或可复核结果作为依据。…

功能清单记录“要交付什么”;验收步骤记录“怎样观察它是否完成”;状态字段记录“目前验证到哪里”。JSON 只是存放这些信息的格式。把状态从 failing 改为 passing,应该有测试、操作记录或可复核结果作为依据。

迭代契约把抽象需求变为可观察行为。例如“完成密码重置”可以拆成发送邮件、验证链接、更新密码和新密码登录。用这种契约可以检查是否遗漏关键流程,却仍需覆盖失效链接等边界情况,不能仅靠双方智能体同意就认定需求正确。

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
528
工程实践

影响范围图、LSP 与 MCP

影响范围图回答一项改动会涉及哪些模块、文件、符号和接口。以“给报表增加导出”为例,应先找到真实的查询函数、路由和页面按钮,再确定哪里需要改动;不能先编造路径再要求实现者去找。 LSP(语言服务器协议)提供跳转定义、查找引…

影响范围图回答一项改动会涉及哪些模块、文件、符号和接口。以“给报表增加导出”为例,应先找到真实的查询函数、路由和页面按钮,再确定哪里需要改动;不能先编造路径再要求实现者去找。

LSP(语言服务器协议)提供跳转定义、查找引用等语言功能。MCP 在这里用于让智能体接入外部工具与资料。两者都能帮助取得依据,但工具返回的信息仍须解释和核对;拥有工具不等于计划不会出错。Language Server Protocol · 官方说明 ↗ · Red Hat · Structured workflows for AI-assisted development ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
529
工程实践

依赖层次与架构适应度检查

文中的 Types 是类型定义,Config 是配置,Repo 是数据访问层,Service 是业务服务,Runtime 是运行时组织,UI 是用户界面。这是一种具体项目的分层方式,不是通用的固定模板。 依赖检查关注“谁…

文中的 Types 是类型定义,Config 是配置,Repo 是数据访问层,Service 是业务服务,Runtime 是运行时组织,UI 是用户界面。这是一种具体项目的分层方式,不是通用的固定模板。

依赖检查关注“谁能引用谁”。例如规定界面只能通过服务访问数据,就可以扫描导入关系,发现界面直接调用数据库时让检查失败。它检查架构是否偏离约定,与开发功能的先后顺序不同。“架构适应度函数”就是把性能、依赖关系等架构要求转为可持续检查的条件。OpenAI · Harness engineering ↗ · Birgitta Böckeler · Harness engineering for coding agent users ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
530
工程实践

生成者、评估者与 GAN 类比

生成者负责完成任务;评估者依据需求和可观察证据指出问题。两者可以使用同一个基础模型,也可以使用不同模型。角色分开有助于组织反馈,但不保证意见独立:两个模型仍可能共享盲点,或者一起误解需求。 GAN 原本是一种训练方法,让…

生成者负责完成任务;评估者依据需求和可观察证据指出问题。两者可以使用同一个基础模型,也可以使用不同模型。角色分开有助于组织反馈,但不保证意见独立:两个模型仍可能共享盲点,或者一起误解需求。

GAN 原本是一种训练方法,让生成网络与判别网络进行对抗学习。本文只借用“产出与评价分开”的结构,未描述更新模型参数的对抗训练。实际评估更需要明确标准、真实交互和能复现的问题,不能只让另一个模型说“看起来不错”。Goodfellow 等 · Generative Adversarial Networks ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
531
工程实践

持久日志、沙箱与故障恢复

沙箱负责运行代码,日志保存发生过什么,运行循环决定下一步做什么。将它们分开后,一个进程退出,不必让整段任务记录一起丢失。日志中的追加事件可以记录工具请求、结果与失败,使恢复时有依据可查。 恢复并不等于随便重放所有动作。例…

沙箱负责运行代码,日志保存发生过什么,运行循环决定下一步做什么。将它们分开后,一个进程退出,不必让整段任务记录一起丢失。日志中的追加事件可以记录工具请求、结果与失败,使恢复时有依据可查。

恢复并不等于随便重放所有动作。例如发送邮件或扣款等动作重复执行会产生新后果,需要识别是否已经完成。凭证也应由相应的权限机制管理,而不能只靠一句“不要读取密钥”。日志提供可追溯基础,但仅有日志不代表审计要求已经全部满足。Anthropic · Scaling Managed Agents ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
532
工程实践

TTFT、P50 与 P95

TTFT 是从接受请求到出现第一个输出 token 的等待时间。它影响用户多快看到响应,和任务全部完成需要多久并不相同。 P50 是中位数:约一半请求比它快,一半比它慢。P95 关注较慢的一端:约 95% 的请求不超过该…

TTFT 是从接受请求到出现第一个输出 token 的等待时间。它影响用户多快看到响应,和任务全部完成需要多久并不相同。

P50 是中位数:约一半请求比它快,一半比它慢。P95 关注较慢的一端:约 95% 的请求不超过该值。若 P50 从 10 秒降为 4 秒,降幅是 60%;这不意味着每个请求都减少 6 秒,也不代表完成任务的总时间降低 60%。Anthropic · Scaling Managed Agents ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
533
工程实践

前馈/反馈 × 计算式/推断式

第一个维度问“何时起作用”:行动前帮助做对,是前馈;行动后报告偏差,是反馈。第二个维度问“如何起作用”:由程序执行规则,是计算式;需要模型理解语义,是推断式。 方向 计算式:程序执行 推断式:模型理解 前馈 用项目生成脚…

第一个维度问“何时起作用”:行动前帮助做对,是前馈;行动后报告偏差,是反馈。第二个维度问“如何起作用”:由程序执行规则,是计算式;需要模型理解语义,是推断式。

方向计算式:程序执行推断式:模型理解
前馈用项目生成脚本建立规定的目录结构阅读架构决策和业务说明
反馈测试报出实际值与预期值不符审查实现是否误解用户意图

同一个工具可能承担不同角色。例如脚本既可以先生成正确模板,也可以事后检查模板是否遭到破坏。分类对象应是它在流程中的具体用法。Birgitta Böckeler · Harness engineering for coding agent users ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
534
工程实践

编译、覆盖率与行为正确,不是同一层检查

编译通过表示满足语言与类型规则;测试通过表示已检查的断言成立;覆盖率表示测试执行到了哪些代码位置。即使三者都很好,也可能存在需求遗漏,或者断言本身就错了。 变异测试会故意对代码做小改动,观察测试能否发现错误,用来判断测试…

编译通过表示满足语言与类型规则;测试通过表示已检查的断言成立;覆盖率表示测试执行到了哪些代码位置。即使三者都很好,也可能存在需求遗漏,或者断言本身就错了。

变异测试会故意对代码做小改动,观察测试能否发现错误,用来判断测试是否有辨别力。端到端验证则沿用户流程检查多个组件是否协同工作。比如录音按钮变色不等于录到了声音,至少还要检查是否产生了实际音频数据。

SLO 是服务水平目标,例如延迟、可用性或错误率目标;监测它可以发现运行中的退化。它和界面是否好用、需求是否实现,也需要分别验证。Birgitta Böckeler · Harness engineering for coding agent users ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
535
工程实践

代码库的可引导性与可检验性

清晰的模块边界让依赖规则可检查;可靠的测试入口让修改结果可验证;明确的错误信息让修复有方向。这些性质会降低智能体理解项目和发现偏差的难度。 可以先选一种重复出现的服务,把运行方式、常见任务、检查入口和失败处理整理成可复用…

清晰的模块边界让依赖规则可检查;可靠的测试入口让修改结果可验证;明确的错误信息让修复有方向。这些性质会降低智能体理解项目和发现偏差的难度。

可以先选一种重复出现的服务,把运行方式、常见任务、检查入口和失败处理整理成可复用模板,再观察其他服务是否真的适用。类型系统、框架或模板都只是条件之一,不能替代准确的需求与持续维护。Birgitta Böckeler · Harness engineering for coding agent users ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
536
工程实践

算一项任务的成本,而不是只比较 token 账单

总成本可以拆成前期搭建、运行费用、人工复核、失败返工和持续维护。单次请求便宜,但经常失败,最终完成一件事的成本可能更高。反过来,增加评估者也可能只增加等待,并没有足够的质量收益。 比较时先定义同一个任务和最低验收标准,再…

总成本可以拆成前期搭建、运行费用、人工复核、失败返工和持续维护。单次请求便宜,但经常失败,最终完成一件事的成本可能更高。反过来,增加评估者也可能只增加等待,并没有足够的质量收益。

比较时先定义同一个任务和最低验收标准,再记录通过率、耗时与全部费用。可以计算“总投入 ÷ 验收通过的任务数”,同时检查高成本的失败尾部。原文的美元数字是历史实验账单,不能当作当前通用报价。Anthropic · Harness design for long-running application development ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
537
工程实践

组件消融:怎样知道一段流程能不能删

消融就是有控制地拿掉一个组件,再比较结果。先保存当前基线,在一组有代表性的任务中只关闭一个候选步骤,保持模型、任务和验收标准一致,记录质量、费用、延迟与失败类型。 短期平均分不变,还要看罕见但严重的失败是否增加;多个组件…

消融就是有控制地拿掉一个组件,再比较结果。先保存当前基线,在一组有代表性的任务中只关闭一个候选步骤,保持模型、任务和验收标准一致,记录质量、费用、延迟与失败类型。

短期平均分不变,还要看罕见但严重的失败是否增加;多个组件也可能互相补偿,逐个删除后要复查组合效果。适合先测试的是为弥补某种模型弱点而增加的步骤,不能用“几个样本没出事”来证明权限隔离或数据保护机制无用。这是本页建议的验证方法。Philipp Schmid · The importance of Agent Harness in 2026 ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
538
工程实践

“苦涩的教训”在这里是一种类比

本文借这个概念提醒读者:不要把针对当前模型弱点的手工流程写得难以替换。工程上可以把临时补偿组件与稳定接口分开,让替换有明确边界,并保留足够的测量记录。 从这一点无法直接推出“任何复杂系统都该变简单”或“更多算力能替代权限…

本文借这个概念提醒读者:不要把针对当前模型弱点的手工流程写得难以替换。工程上可以把临时补偿组件与稳定接口分开,让替换有明确边界,并保留足够的测量记录。

从这一点无法直接推出“任何复杂系统都该变简单”或“更多算力能替代权限控制”。对 Harness 的删减建议,是作者结合案例做的推论;本次已找到 Sutton 随笔的原始链接,但网页读取超时。Rich Sutton · The Bitter Lesson ↗ · Philipp Schmid · The importance of Agent Harness in 2026 ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
539
工程实践

文末的 Skill、RAG 与知识库

Skill 通常把某类任务的说明、资源和工具用法组织成可复用材料;它帮助智能体按合适的方法工作。RAG 指检索增强生成:先找相关材料,再把材料交给模型回答。Wiki 则把知识组织为可维护的页面及其关联。 这些都可能为上下…

Skill 通常把某类任务的说明、资源和工具用法组织成可复用材料;它帮助智能体按合适的方法工作。RAG 指检索增强生成:先找相关材料,再把材料交给模型回答。Wiki 则把知识组织为可维护的页面及其关联。

这些都可能为上下文提供内容,但它们的准确性、版本和读取方式仍需要设计。原文推荐卡片中的 Gbrain 是具体项目名称,不能只凭标题推断实现。本页保留作者的推荐入口,不把卡片摘要当作已经读过的全文。Yanli Liu · A Bad Claude Skill Is Worse Than No Skill ↗ · Yanli Liu · RAG, LLM Wiki, or Gbrain? ↗ · Yanli Liu · The 4 Lines Every CLAUDE.md Needs ↗

回到解读:Harness Engineering: What Every AI Engineer Needs to Know in 2026
540
工程实践

四种缓存与两种“命中”

KV、前缀、提示缓存都围绕模型中间状态工作:一次生成里保存状态,是 KV 缓存;让后续请求继续找这些状态,是前缀复用;通过托管 API 控制和计费,是提示缓存。语义缓存则保存已经完成的回答。 精确匹配问的是“这段输入和配…

KV、前缀、提示缓存都围绕模型中间状态工作:一次生成里保存状态,是 KV 缓存;让后续请求继续找这些状态,是前缀复用;通过托管 API 控制和计费,是提示缓存。语义缓存则保存已经完成的回答。

精确匹配问的是“这段输入和配置是否允许复用同一状态”;语义匹配问的是“两个问题是否足够相似”。后一个判断并不能自动保证回答通用。Hugging Face · KV 缓存原理 ↗ · RedisVL · SemanticCache API ↗

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
541
工程实践

预填充、解码与首 token 延迟

预填充先处理整个提示,建立模型状态,并预测第一个输出 token。解码接着反复处理新 token,直到满足停止条件。首 token 延迟(TTFT)是从请求发出到看到第一个输出的等待时间;它还可能包含排队、传输和调度。 …

预填充先处理整个提示,建立模型状态,并预测第一个输出 token。解码接着反复处理新 token,直到满足停止条件。首 token 延迟(TTFT)是从请求发出到看到第一个输出的等待时间;它还可能包含排队、传输和调度。

前缀复用减少预填充,并不直接删去后续输出步骤。一个请求整体快了多少,还要看输出有多长、排队是否变化。Hugging Face · KV 缓存原理 ↗

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
542
工程实践

Q、K、V 与因果注意力

查询 Q 表示当前位置要找什么;键 K 用来计算匹配程度;值 V 提供被聚合的信息。简化的单头计算是: Attention(Q,K,V) = softmax(QKᵀ / √d + mask)V 这里 d 是注意力头的维度…

查询 Q 表示当前位置要找什么;键 K 用来计算匹配程度;值 V 提供被聚合的信息。简化的单头计算是:

Attention(Q,K,V) = softmax(QKᵀ / √d + mask)V

这里 d 是注意力头的维度,softmax 把分数归一化为和为 1 的权重。因果掩码禁止当前位置读取未来内容。生成新 token 时,新的 Q 会读取历史 K、V,所以历史键值值得保存。缓存并没有取消 QKᵀ、softmax 或加权求和,只是避免重新计算已经处理过的历史状态。Hugging Face · KV 缓存原理 ↗

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
543
工程实践

DynamicCache、StaticCache 和量化缓存

动态缓存按生成进度增长;静态缓存预先准备固定容量,有利于编译,但可能留出未使用空间。量化缓存用较少位数保存部分 KV 值,需要额外编码、还原以及辅助数据。 “省空间”和“更快”是两个目标,可能互相冲突。缓存可跨调用复用与…

动态缓存按生成进度增长;静态缓存预先准备固定容量,有利于编译,但可能留出未使用空间。量化缓存用较少位数保存部分 KV 值,需要额外编码、还原以及辅助数据。

“省空间”和“更快”是两个目标,可能互相冲突。缓存可跨调用复用与否,取决于对象和输入是否兼容,不由 Dynamic 或 Static 这个名字单独决定。Transformers v5.0 · 缓存策略 ↗

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
544
工程实践

KV 显存怎么估算,带宽又是什么

KV 字节数 ≈ 2 × 层数 × 批量 × 序列长度 × KV 头数 × 头维度 × 每个数的字节数 2 代表键和值两份数据。BF16 通常每个数占 2 字节。层数相同的模型,只要 KV 头数或批量不同,缓存占用就可能…

KV 字节数 ≈ 2 × 层数 × 批量 × 序列长度 × KV 头数 × 头维度 × 每个数的字节数

2 代表键和值两份数据。BF16 通常每个数占 2 字节。层数相同的模型,只要 KV 头数或批量不同,缓存占用就可能相差很多。GiB 使用 2³⁰ 字节,GB 使用 10⁹ 字节。

显存容量决定放得下多少,带宽决定每秒能搬运多少。缓存减少运算,却仍需读取历史状态;瓶颈要结合具体工作负载测量。

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
545
工程实践

为什么生成 25 个位置,缓存却只有 24 个

把生成想成“读入已有 token → 做前向计算 → 选出下一个 token”。新选出的 token 要在下一轮被读入,才会建立自己的 KV。 例如提示长 5,第一次前向建立 5 个位置的缓存并选出第 6 个 token…

把生成想成“读入已有 token → 做前向计算 → 选出下一个 token”。新选出的 token 要在下一轮被读入,才会建立自己的 KV。

例如提示长 5,第一次前向建立 5 个位置的缓存并选出第 6 个 token。再做 19 轮前向,缓存达到 24 个位置,同时选出第 25 个 token。若此时停止,第 25 个 token 尚未再次前向,所以缓存长度仍为 24。Transformers v5.0 · generate 源码 ↗

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
546
工程实践

MHA、GQA、MQA 与 MLA 的区别

多头注意力(MHA)通常让每个查询头各有自己的键和值。分组查询注意力(GQA)让一组查询头共享 KV;多查询注意力(MQA)让所有查询头共享一组 KV。查询头不必减少,但缓存的 KV 头数变少。 MLA 采用压缩表示来保…

多头注意力(MHA)通常让每个查询头各有自己的键和值。分组查询注意力(GQA)让一组查询头共享 KV;多查询注意力(MQA)让所有查询头共享一组 KV。查询头不必减少,但缓存的 KV 头数变少。

MLA 采用压缩表示来保存注意力所需的信息,它是另一种模型架构设计。不能把减少 KV 头数、量化数值、压缩表示当成同一个开关;各自的正确实现依赖模型结构。

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
547
工程实践

真正匹配的是 token 前缀和相容配置

请求会先经过模板和分词器,成为 token ID 序列。角色标记、BOS(序列起始标记)、换行、空格或特殊结束符都可能进入序列。字符串在日志里相似,不等于模型看到的前缀相同。 已有缓存覆盖 k 个位置时,复用前应确认新请…

请求会先经过模板和分词器,成为 token ID 序列。角色标记、BOS(序列起始标记)、换行、空格或特殊结束符都可能进入序列。字符串在日志里相似,不等于模型看到的前缀相同。

已有缓存覆盖 k 个位置时,复用前应确认新请求的前 k 个 ID 与缓存来源一致,同时保持模型和相关配置兼容。聊天模板会处理角色边界,所以解码后再编码尤其需要检查。Transformers v5.0 · 聊天模板 ↗

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
548
工程实践

哈希链为什么只能复用连续前缀

Hᵢ = hash(Hᵢ₋₁, 当前块 token IDs, 其他必要标识) 每个键都带着前面的信息,因此中途改一个 token,后面的键也会改变。查找从头开始,一旦遇到没有缓存的完整块,剩下的部分就需要重新处理。16 …

Hᵢ = hash(Hᵢ₋₁, 当前块 token IDs, 其他必要标识)

每个键都带着前面的信息,因此中途改一个 token,后面的键也会改变。查找从头开始,一旦遇到没有缓存的完整块,剩下的部分就需要重新处理。16 是文中示例的块大小,并非所有实现固定如此。

hash 是索引,不是语义相似度,也不自动证明不存在碰撞。实际系统还需选择合适的哈希算法和完整的缓存键。

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
549
工程实践

引用计数、LRU 与缓存的“释放”

引用计数表示多少个活跃请求正在使用某块缓存。计数不为零时不能直接回收。计数归零后,块可以进入空闲队列,但其中的数据和索引未必立即清空。 当新请求需要空间时,LRU(最近最少使用)帮助选择淘汰对象。因此空闲可回收、保留可复…

引用计数表示多少个活跃请求正在使用某块缓存。计数不为零时不能直接回收。计数归零后,块可以进入空闲队列,但其中的数据和索引未必立即清空。

当新请求需要空间时,LRU(最近最少使用)帮助选择淘汰对象。因此空闲可回收、保留可复用内容、仍被请求使用,是三个不同状态。命中率下降也可能来自流量变化,需结合日志判断。vLLM · Automatic Prefix Caching ↗

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
550
工程实践

salt 与缓存共享范围

salt 是参与索引计算的隔离标识。把租户标识加入键,可以让不同租户即使提交相同文本,也不会查到同一组缓存。 隔离会牺牲一部分共享机会;它还必须贯穿写入、读取和模型配置。示例函数有 salt 参数,不等于调用方已经正确传…

salt 是参与索引计算的隔离标识。把租户标识加入键,可以让不同租户即使提交相同文本,也不会查到同一组缓存。

隔离会牺牲一部分共享机会;它还必须贯穿写入、读取和模型配置。示例函数有 salt 参数,不等于调用方已经正确传递。应用应在可信边界确定共享范围,不能只依靠用户随意提供的值。

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
551
工程实践

复制缓存与共享缓存有什么区别

深拷贝会给每个分支一份独立的数据,之后一方修改不会影响另一方,但复制的时间和空间会随数据量增长。共享则让多个请求引用同一份可复用前缀,避免重复存储。 共享需要配合生命周期管理和写入规则:已完成的前缀可以共同读取,新生成的…

深拷贝会给每个分支一份独立的数据,之后一方修改不会影响另一方,但复制的时间和空间会随数据量增长。共享则让多个请求引用同一份可复用前缀,避免重复存储。

共享需要配合生命周期管理和写入规则:已完成的前缀可以共同读取,新生成的部分通常另行分配。必要时可采用写时复制。文中的 Python 深拷贝适合演示分支,不等于生产引擎的零成本共享。

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
552
工程实践

RAG 的分块缓存为什么不能直接拼接

RAG 把检索出的资料加入提示。某份资料单独处理时没有读过其他资料,位置编号也可能从头开始。文中的注意力汇聚点(attention sink),指注意力容易集中到的少数位置,这里主要是各段开头。把各自 KV 首尾拼接,不…

RAG 把检索出的资料加入提示。某份资料单独处理时没有读过其他资料,位置编号也可能从头开始。文中的注意力汇聚点(attention sink),指注意力容易集中到的少数位置,这里主要是各段开头。把各自 KV 首尾拼接,不会自动补上跨资料的影响。

CacheBlend 通过复用大部分状态、选择性重算一部分 token 来修复差异,并将重算与缓存读取重叠。这是一种需要评测质量的近似优化。前面的公共系统前缀仍可使用普通精确复用。CacheBlend · 研究论文 ↗ · LMCache · Blending 实现说明 ↗

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
553
工程实践

断点、TTL、最小长度和回溯窗口

断点标记希望保存的前缀终点;TTL 决定条目在多长时间内可能继续有效;最小长度是服务商允许缓存的门槛;回溯窗口限制本次查找能检查哪些旧写入位置。它们不是同一个限制。 以 Anthropic 当前规则为例,回溯找的是过去真…

断点标记希望保存的前缀终点;TTL 决定条目在多长时间内可能继续有效;最小长度是服务商允许缓存的门槛;回溯窗口限制本次查找能检查哪些旧写入位置。它们不是同一个限制。

以 Anthropic 当前规则为例,回溯找的是过去真正写入过的条目,不能替你缓存从未标记过的静态内容。追加式对话和每次替换末尾消息的独立请求,需要不同的断点安排。Anthropic · 提示缓存文档 ↗

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
554
工程实践

缓存计费与回本条件

设同一段前缀的普通输入成本为 C,写入倍率为 w,读取倍率为 r,共调用 n 次;若第一次写入、之后全部完整命中: 有缓存:C[w + (n−1)r] 无缓存:Cn 代入 w=1.25、r=0.1,n=2 时是 1.35…

设同一段前缀的普通输入成本为 C,写入倍率为 w,读取倍率为 r,共调用 n 次;若第一次写入、之后全部完整命中:

有缓存:C[w + (n−1)r]
无缓存:Cn

代入 w=1.25、r=0.1,n=2 时是 1.35C 对 2C,即第一次完整读取就回本。实际还有冷写、未命中、未缓存后缀和输出费用,不能只盯着折扣倍率。型号和保存时长变化时需要重新计算。OpenAI · 提示缓存文档 ↗

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
555
工程实践

嵌入、归一化与余弦相似度

嵌入模型把文本转换为向量。余弦相似度比较向量方向: cos(a,b) = (a·b) / (‖a‖ ‖b‖) 两个向量都归一化为单位长度后,点积就等于余弦相似度。这衡量的是编码器学习到的相近程度,不是逻辑等价或回答正确的…

嵌入模型把文本转换为向量。余弦相似度比较向量方向:

cos(a,b) = (a·b) / (‖a‖ ‖b‖)

两个向量都归一化为单位长度后,点积就等于余弦相似度。这衡量的是编码器学习到的相近程度,不是逻辑等价或回答正确的概率。文中的 MiniLM 默认会截断超过 256 个 word piece 的输入,不能不加处理地拿来编码任意长对话。all-MiniLM-L6-v2 · 模型卡 ↗

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
556
工程实践

语义缓存要评测“错用旧答案”的比例

缓存命中率高,不代表答案可靠。需要用真实业务样例标注哪些问题可以共用回答,分别测量正确命中、错误命中、未命中以及整体延迟和成本。 缓存键或过滤条件还应包含影响答案的租户、语言、权限、知识库版本和上下文,并配合 TTL。相…

缓存命中率高,不代表答案可靠。需要用真实业务样例标注哪些问题可以共用回答,分别测量正确命中、错误命中、未命中以及整体延迟和成本。

缓存键或过滤条件还应包含影响答案的租户、语言、权限、知识库版本和上下文,并配合 TTL。相似度高也不能省掉这些判断。精确响应缓存没有模糊匹配问题,但同样可能返回陈旧答案。RedisVL · SemanticCache API ↗

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
557
工程实践

精确检索、ANN 和阈值不是同一件事

精确检索逐一比较候选;近似最近邻(ANN)用索引减少搜索范围,在速度、内存与召回之间取舍。阈值负责决定是否接受找到的候选,索引召回则决定是否找到合适候选。 先测自己的规模与延迟,再选择算法。“几千条就必须改用 ANN”没…

精确检索逐一比较候选;近似最近邻(ANN)用索引减少搜索范围,在速度、内存与召回之间取舍。阈值负责决定是否接受找到的候选,索引召回则决定是否找到合适候选。

先测自己的规模与延迟,再选择算法。“几千条就必须改用 ANN”没有通用依据。还要分清相似度与距离:相似度阈值越高通常越严格,而距离阈值越低通常越严格。

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
558
工程实践

前缀失效、响应过期和输入压缩

修改历史中的一个位置,会影响该位置及之后的精确前缀。把摘要替换到前面、改动已发送的工具输出、切换模型,都会改变复用条件。稳定序列化能减少意外差异,但不能掩盖真实内容变更。 应当比较最终 token ID,定位首次不同的位…

修改历史中的一个位置,会影响该位置及之后的精确前缀。把摘要替换到前面、改动已发送的工具输出、切换模型,都会改变复用条件。稳定序列化能减少意外差异,但不能掩盖真实内容变更。

应当比较最终 token ID,定位首次不同的位置。输入压缩也要计算长期收益:一次冷预填充可能换来后续更短的输入,缓存命中率并不是唯一目标。

回到解读:KV, Prefix, Prompt and Semantic Caching in LLMs, clearly explained
559
模型与研究

块、堆栈与执行次数:分清“存了多少”和“算了几次”

一个 Transformer 块通常包含注意力、前馈网络、归一化与残差连接;多个块按顺序构成堆栈。一次块执行,就是让输入经过一个 Transformer 块,完成一次计算。22 个独立块循环两遍,只需存储 22 组主体权…

一个 Transformer 块通常包含注意力、前馈网络、归一化与残差连接;多个块按顺序构成堆栈。一次块执行,就是让输入经过一个 Transformer 块,完成一次计算。22 个独立块循环两遍,只需存储 22 组主体权重,但块总共执行 44 次。

h₁ = Fθ(h₀) → h₂ = Fθ(h₁)

两处 θ 相同,表示权重共享;输入 h₀ 与 h₁ 不同,第二遍不会因为权重相同就必然得到相同结果。共享权重与新增独立层的表达能力也不能简单等同。

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning
560
模型与研究

思维链、忠实性、可监控性:三个问题

思维链是模型生成的中间文本;忠实性关注这段文本是否反映实际影响答案的因素;可监控性关注监控器能否借这些信息发现目标行为。文本很长,不保证忠实;文本较短,也不能仅凭长度判定完全不可监控。 监控器看见的范围也很关键:只看思维…

思维链是模型生成的中间文本;忠实性关注这段文本是否反映实际影响答案的因素;可监控性关注监控器能否借这些信息发现目标行为。文本很长,不保证忠实;文本较短,也不能仅凭长度判定完全不可监控。

监控器看见的范围也很关键:只看思维链、只看动作,或看完整轨迹,可能得到不同结果。把用户界面是否展示推理、开发者能否监控、内部状态能否解释分别讨论,可以避免把不同“隐藏”混在一起。忠实性研究 ↗ · 系统卡 ↗

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning
561
模型与研究

如何读本文的评测图

先读坐标轴及单位,再看任务、模型、版本与推理强度。Accuracy 是准确率,Validation Loss 是验证损失(一般越低越好);Pass@1 表示单次尝试的通过率。指数是特定任务集合的聚合,不代表每种现实任务。…

先读坐标轴及单位,再看任务、模型、版本与推理强度。Accuracy 是准确率,Validation Loss 是验证损失(一般越低越好);Pass@1 表示单次尝试的通过率。指数是特定任务集合的聚合,不代表每种现实任务。

“多 80%”以原数作分母;“少 80%”以被减少的数作分母。对图 18,41k÷8k≈5.125;反向减少比例则约为 80.5%。图 22 的长度图纵轴从约 420 开始,视觉柱高差会被放大;应读 token 数值,而非直接比较柱子面积。

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning
562
模型与研究

参数、FLOPs、延迟和 token:四种不同的衡量指标

参数量决定要保存多少可学习数值;FLOPs 近似衡量做了多少浮点运算;延迟是人实际等待的时间;token 用量是输入输出长度。API 账单又受服务商定价影响。循环可能让生成每个 token 的计算开销更大,却让模型用更少…

参数量决定要保存多少可学习数值;FLOPs 近似衡量做了多少浮点运算;延迟是人实际等待的时间;token 用量是输入输出长度。API 账单又受服务商定价影响。循环可能让生成每个 token 的计算开销更大,却让模型用更少 token 完成任务,最终总成本需要一起计算。

训练还包括反向传播及优化器更新。循环共享的同一参数会接收来自多个执行位置的梯度,不能只算一次反向传播。训练与推理阶段能节省多少开销,也应分别验证。

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning
563
模型与研究

运行框架与模型的区别

模型负责根据输入决定输出;运行框架(harness)负责调用工具、执行动作、组织上下文和检查结果。同一个模型放入不同框架,可能因为工具接口、记忆方式、提示或验证流程不同,而表现不同。 比较模型时,要说明框架是否保持一致;…

模型负责根据输入决定输出;运行框架(harness)负责调用工具、执行动作、组织上下文和检查结果。同一个模型放入不同框架,可能因为工具接口、记忆方式、提示或验证流程不同,而表现不同。

比较模型时,要说明框架是否保持一致;比较完整产品时,则可以测量模型与框架的整体效果。这两种比较回答的问题不同。

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning
564
模型与研究

指令文件是什么

这类文件把项目约定和重复工作流程提供给智能体。它们可能减少重复摸索,也可能包含过时或过度具体的要求。评价效果时,应比较实际任务的成功率、耗时与错误,而不是只比较指令长短。

这类文件把项目约定和重复工作流程提供给智能体。它们可能减少重复摸索,也可能包含过时或过度具体的要求。评价效果时,应比较实际任务的成功率、耗时与错误,而不是只比较指令长短。

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning
565
模型与研究

计算机操作训练:模型、运行框架、环境与奖励

模型决定下一步动作,运行框架执行动作、截屏、管理上下文,环境则是被操作的软件或系统。验证器检查目标是否达到,并产生训练反馈。图 3 是这种循环的概念示意,并不是任何公司的硬件采购清单。 RLVR 指奖励可以通过可检查的结…

模型决定下一步动作,运行框架执行动作、截屏、管理上下文,环境则是被操作的软件或系统。验证器检查目标是否达到,并产生训练反馈。图 3 是这种循环的概念示意,并不是任何公司的硬件采购清单。

RLVR 指奖励可以通过可检查的结果给出,例如测试是否通过。它不意味着所有任务都只用二元奖励,也不保证验证器没有漏洞。真实训练如何组织,仍需具体训练报告支持。框架示例 ↗

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning
566
模型与研究

读懂原图中的嵌入、RoPE、RMSNorm、前馈模块和 GQA

嵌入把 token 编号映射为向量;输出层把最终向量映射为词表分数。前馈模块对每个位置做非线性变换;残差连接让输入与变换结果相加;RMSNorm 通过均方根归一化控制数值尺度。RoPE 用旋转方式编码相对位置信息。GQA…

嵌入把 token 编号映射为向量;输出层把最终向量映射为词表分数。前馈模块对每个位置做非线性变换;残差连接让输入与变换结果相加;RMSNorm 通过均方根归一化控制数值尺度。RoPE 用旋转方式编码相对位置信息。GQA 让多个查询头共享较少的键和值头,以减少 KV 存储。

图 5 的 48 个查询头与 8 个 KV 头表示每组 6 个查询头共享一组键和值;隐藏维度、头维度和词表大小是不同的量,不能混为模型参数总数。对应配置 ↗

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning
567
模型与研究

KV 缓存:生成下一个 token 时复用历史注意力信息

查询 Q 表示当前关注什么,键 K 用来与查询匹配,值 V 携带待聚合的信息。生成新 token 时,过去位置的 K、V 可以缓存下来,避免反复重新计算整段历史。新位置的查询会与历史键匹配,再汇总对应的值。 KV 空间 …

查询 Q 表示当前关注什么,键 K 用来与查询匹配,值 V 携带待聚合的信息。生成新 token 时,过去位置的 K、V 可以缓存下来,避免反复重新计算整段历史。新位置的查询会与历史键匹配,再汇总对应的值。

KV 空间 ∝ 2 × 批量 × 序列长度 × 缓存层数 × KV 头数 × 头维度

前面的 2 代表 K 和 V,实际字节数还要乘数据类型的字节数。重复两遍但不共享 KV 时,缓存层数按两遍执行分别计算;权重只存一套,不意味着缓存也能只存一套。缓存取舍 ↗ · 进一步阅读 ↗

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning
568
模型与研究

自适应停止与路由:每个 token 应当算多久

固定循环为每个位置使用相同轮数。自适应停止则根据隐藏表示,逐步累计停止概率,并设置最大轮数作为上限。MoR 的 expert-choice 在每轮筛选继续计算的 token;token-choice 在开始时为 toke…

固定循环为每个位置使用相同轮数。自适应停止则根据隐藏表示,逐步累计停止概率,并设置最大轮数作为上限。MoR 的 expert-choice 在每轮筛选继续计算的 token;token-choice 在开始时为 token 选定深度。这里的“专家”可以对应计算路径,不必是一组不同权重。

token 的表示包含上下文,因此同一个词在不同句子里可以被分配不同的计算量。实现中还要处理负载均衡、缓存和批处理;算法设计中少算一轮,不等于硬件必然按比例加速。UT ↗ · MoR ↗

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning
569
模型与研究

两种循环轴:沿序列时间,或沿网络深度

RNN 将 h t−1 传给下一个位置 t,沿序列共享权重。循环 Transformer 则在生成当前 token 前,多次更新同一位置的隐藏状态。Full-bandwidth 研究又把前一个 token 的最终表示反馈…

RNN 将 ht−1 传给下一个位置 t,沿序列共享权重。循环 Transformer 则在生成当前 token 前,多次更新同一位置的隐藏状态。Full-bandwidth 研究又把前一个 token 的最终表示反馈到下一个位置。理解箭头沿哪个方向移动,比看到“recurrent”就把它们当成同一种结构更可靠。

注意力仍负责不同 token 之间的信息交互。保留连续隐藏表示,与把上一次的文字回答作为下一次提示输入,也不是相同的计算过程。

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning
570
模型与研究

KL 散度如何帮助决定何时停止循环

每轮循环都可以给出对下一个 token 的概率预测。KL 散度衡量两个分布的差异:D KL (P∥Q) = Σ P(x) log[P(x)/Q(x)]。它通常不对称,因此不是日常几何意义上的距离。 当相邻两轮的分布变化很…

每轮循环都可以给出对下一个 token 的概率预测。KL 散度衡量两个分布的差异:DKL(P∥Q) = Σ P(x) log[P(x)/Q(x)]。它通常不对称,因此不是日常几何意义上的距离。

当相邻两轮的分布变化很小,继续计算也许暂时没有改变预测,于是可作为停止信号。但一个错误答案的分布也可能非常稳定。阈值决定计算成本与任务表现之间的取舍,并不能证明答案正确。论文中的自适应推理 ↗

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning
571
模型与研究

“记得更多”与“推得更好”如何区分

记忆容量实验测量模型能吸收多少给定信息;推理测试则测量它能否组合信息、完成多步运算。共享同一套权重反复计算,并没有直接增加可存储的独立参数,却可能帮助模型更有效地利用这些参数。 图 20 的信息熵单位是 bit,测量的是…

记忆容量实验测量模型能吸收多少给定信息;推理测试则测量它能否组合信息、完成多步运算。共享同一套权重反复计算,并没有直接增加可存储的独立参数,却可能帮助模型更有效地利用这些参数。

图 20 的信息熵单位是 bit,测量的是特定随机 token 任务。它不能自动等同于日常常识覆盖、检索准确率或事实可靠性。由具体基准推到一般认知概念时,需要明确中间的假设。实验范围 ↗

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning
572
模型与研究

MoE 如何帮助 SMELT 同时匹配三种预算

混合专家模型保存多个专家,但每个 token 只选择其中一部分执行。因此,总参数量可以与单 token 的计算量部分解耦。SMELT 通过缩窄隐藏维度腾出额外循环的计算预算,再增加专家数量,将总参数量恢复到原来的规模,并…

混合专家模型保存多个专家,但每个 token 只选择其中一部分执行。因此,总参数量可以与单 token 的计算量部分解耦。SMELT 通过缩窄隐藏维度腾出额外循环的计算预算,再增加专家数量,将总参数量恢复到原来的规模,并调整注意力配置以匹配 KV 缓存。

这项比较同时涉及多项设计调整,不能把结果简化成“随便给模型加一个循环就省算力”。论文通过拟合,估计达到相同验证损失所需的计算量,再据此计算节省幅度,还应关注区间、误差和外推标记。设计与缩放律 ↗

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning
573
模型与研究

蒸馏与推理时扩展

知识蒸馏通常利用较强模型给出的答案或推理样例来训练另一个模型,属于训练阶段的变化。推理时扩展是在模型运行时投入更多计算,例如多生成步骤、尝试多个答案或增加循环。强化学习则依据奖励调整模型;三者可以组合,但不应混为同一种成…

知识蒸馏通常利用较强模型给出的答案或推理样例来训练另一个模型,属于训练阶段的变化。推理时扩展是在模型运行时投入更多计算,例如多生成步骤、尝试多个答案或增加循环。强化学习则依据奖励调整模型;三者可以组合,但不应混为同一种成本。

回到解读:GPT-6 Astra, Looped Transformers, and Hidden Reasoning