AI算力成本下降60%:2026年推理市场格局重塑

成本下降的核心数据 2026年Q2,主流大模型API调用价格较2025年同期下降了60-70%,部分场景降幅超过80%。这一轮成本下降不是短暂的价格战,而是技术进步与市场竞争共同驱动的结构性变化。 主流API价格变化(每百万Token) 模型 2025Q2价格 2026Q2价格 降幅 GPT-4o $5.00 $1.50 70% Claude 3.5 Sonnet $3.00 $0.80 73% DeepSeek-V3 $0.27 $0.07 74% Qwen-Max ¥20.00 ¥4.00 80% Gemini 1.5 Pro $1.25 $0.35 72% 成本下降的四大驱动力 1. 芯片能效飞跃 NVIDIA Blackwell架构的B200芯片在推理场景下的能效比上一代H100提升了3.5倍: # 推理成本计算模型 def inference_cost_per_token( chip_power_watts, # 芯片功耗 tflops, # 算力 model_params_b, # 模型参数量(十亿) electricity_rate, # 电价(美元/度) utilization, # 利用率 batch_size, # 批处理大小 ): # 每Token所需计算量 (约2 * 参数量 FLOPs) flops_per_token = 2 * model_params_b * 1e9 # 每秒可处理Token数 tokens_per_second = (tflops * 1e12 * utilization * batch_size) / flops_per_token # 每小时耗电 kwh_per_hour = chip_power_watts / 1000 # 每百万Token成本 cost_per_million = (electricity_rate * kwh_per_hour * 3600) / (tokens_per_second * 3.6e6) * 1e6 return round(cost_per_million, 4) # H100 vs B200 对比(70B模型推理) h100_cost = inference_cost_per_token(700, 989, 70, 0.12, 0.6, 32) b200_cost = inference_cost_per_token(1000, 9000, 70, 0.12, 0.7, 64) print(f"H100: ${h100_cost}/M tokens") print(f"B200: ${b200_cost}/M tokens") print(f"成本降低: {(1 - b200_cost/h100_cost)*100:.1f}%") 2. 推理优化技术成熟 一系列推理优化技术在2026年趋于成熟并大规模部署: ...

2026-07-29 · 2 min · 275 words · 硅基 AGI 探索者

量化方案深度对比:INT4、INT8、FP8的精度与速度权衡

引言:为什么需要量化? 大语言模型的参数量和计算量呈指数级增长。一个72B模型在FP16精度下需要约144GB显存,而通过INT4量化可压缩至约36GB——单卡A100 80GB即可运行。量化已成为大模型部署的必经环节,但不同的量化方案在精度、速度和硬件兼容性上差异显著。 三大量化方案原理 INT8量化 INT8将FP16的权重映射到[-128, 127]的整数范围。核心思想是通过缩放因子(scale)和零点(zero point)将浮点数线性映射到整数空间: 量化: q = round(w / scale) + zero_point 反量化:w = scale * (q - zero_point) INT8是一种"安全"的量化方案,几乎所有主流GPU(Ampere及以上)都原生支持INT8矩阵乘法(通过Tensor Core)。 INT4量化 INT4将权重压缩到4位整数,范围仅为[-8, 7]。这意味着每个参数仅占0.5字节,相比FP16压缩了8倍。INT4通常采用分组量化(Group-wise Quantization)策略,每32或64个参数共享一组缩放因子: # INT4分组量化示例(伪代码) import torch def quantize_int4(weight, group_size=64): # 将权重按group_size分组 original_shape = weight.shape weight = weight.reshape(-1, group_size) # 计算每组的缩放因子 w_max = weight.abs().max(dim=-1, keepdim=True).values scale = w_max / 7.0 # INT4范围: [-8, 7] # 量化 q_weight = torch.round(weight / scale).clamp(-8, 7).to(torch.int8) return q_weight, scale # 反量化 def dequantize_int4(q_weight, scale): return (q_weight.float() * scale).reshape(original_shape) FP8量化 FP8是2024年起逐渐成熟的新一代低精度格式,采用浮点数而非整数表示。主流有两种格式: 格式 指数位 尾数位 范围 精度 E4M3 4 3 ±448 较高精度 E5M2 5 2 ±57344 较大范围 FP8的优势在于保留了浮点数的动态范围,对异常值更鲁棒,且NVIDIA Hopper/Blackwell架构原生支持FP8 Tensor Core。 ...

2026-07-29 · 2 min · 288 words · 硅基 AGI 探索者

大模型推理优化全景:从KV Cache到投机解码

推理瓶颈在哪里? 大模型推理的核心瓶颈是自回归生成的串行性:每生成一个token都需要将之前所有token的KV对参与注意力计算。随着序列变长,计算量和显存占用呈线性甚至二次增长。 推理优化的目标可以归纳为三个维度: 降低延迟(首token延迟TTFT + 每token延迟TPOT) 提升吞吐(每秒生成token总数) 减少显存(KV Cache占用) KV Cache:标准但不够 KV Cache是现代推理引擎的标配。在生成阶段,避免重复计算历史token的Key和Value向量,而是缓存复用。但KV Cache的显存占用非常大:以Llama-70B为例,单条请求的KV Cache在4K序列长度下约占2GB显存。 优化方向: PagedAttention(vLLM):将KV Cache分为固定大小的block,通过页表管理,显著减少碎片 量化KV Cache:将FP16的KV对压缩为INT8甚至INT4,显存减半甚至1/4 稀疏KV Cache:基于注意力分数剪枝,丢弃不重要的KV对 连续批处理(Continuous Batching) 传统static batching需要等待批次内所有请求完成才能释放资源,短请求被长请求拖累。连续批处理(也叫iteration-level batching)在每个forward pass级别动态加入新请求、移除已完成请求: 时间步1: [req_A(token5), req_B(token3), req_C(token1)] 时间步2: [req_A(token6), req_B(token4), req_D(token1)] # C完成,D加入 vLLM和TGI都实现了这一机制,实测吞吐量可提升3-5倍。 投机解码(Speculative Decoding) 投机解码利用一个小模型(draft model)快速生成候选token序列,再由大模型一次性验证。如果小模型的猜测正确率足够高,就能以接近小模型的速度输出大模型质量的token: 小模型生成N个候选token(并行,很快) 大模型对这N个token做一次forward(并行验证) 接受正确的前缀,拒绝处重新采样 Medusa在此基础上扩展,在单次forward中同时预测多个位置的token(多头预测),进一步提升加速比。 量化推理 训练时用FP16/BF16,推理时降低精度: 精度 方法 性能损失 INT8 W8A8 / SmoothQuant <1% INT4 W4A16 / GPTQ / AWQ 1-3% 2-bit BitNet / 1.58bit 训练时需特殊设计 AWQ和GPTQ是目前最流行的4bit权重量化方案,配合Marlin内核可达极高吞吐。需注意,4bit量化在70B以上模型上表现好,但7B级别可能有明显精度下降。 ...

2026-07-16 · 1 min · 109 words · 硅基 AGI 探索者

大模型推理优化全景:从KV Cache到投机解码

推理优化的核心矛盾 大模型推理面临一个核心矛盾:用户需要低延迟和高吞吐,但自回归生成天然是串行的。每生成一个token都需要完整的前向传播,而KV Cache的显存占用随序列长度线性增长。本文系统梳理当前主流的推理优化技术。 KV Cache优化 KV Cache的工作原理 在自回归生成中,前面token的Key和Value可以缓存复用,避免重复计算。但KV Cache的显存占用惊人: $$\text{KV Cache Size} = 2 \times n_{layers} \times n_{heads} \times d_{head} \times seq_len \times batch_size \times \text{dtype_size}$$ 以Llama-3-70B为例,FP16精度下,单条2048长度的请求KV Cache就需要约5GB显存。 PagedAttention vLLM的PagedAttention借鉴操作系统的虚拟内存管理,将KV Cache分成固定大小的block(如16个token),按需分配: # vLLM的核心创新:非连续KV Cache存储 class PagedAttention: def __init__(self, block_size=16): self.block_size = block_size self.block_table = {} # 逻辑block -> 物理block映射 def allocate(self, seq_len): n_blocks = (seq_len + self.block_size - 1) // self.block_size return [self._alloc_block() for _ in range(n_blocks)] PagedAttention将显存利用率从约60%提升到96%以上,显著提高并发处理能力。 KV Cache量化 将KV Cache从FP16量化到INT8可以减半显存占用,而精度损失可控: # vLLM中启用KV Cache量化 from vllm import LLM, SamplingParams llm = LLM( model="meta-llama/Meta-Llama-3-70B", quantization="fp8", # 模型权重量化 kv_cache_dtype="fp8", # KV Cache量化 max_model_len=8192, ) 注意力机制优化 Flash Attention 2/3 Flash Attention通过分块计算和减少HBM读写,将注意力计算复杂度从 $O(n^2)$ 内存降到 $O(n)$ 内存: ...

2026-07-16 · 2 min · 247 words · 硅基 AGI 探索者

大模型压缩技术全景:剪枝、量化、蒸馏的工程实践

大模型越来越大,但部署环境千差万别。不是每台设备都有A100,不是每个场景都能容忍秒级延迟。模型压缩技术就是连接"大模型能力"和"有限部署资源"的桥梁。本文将系统梳理剪枝、量化、蒸馏三大压缩技术的原理与工程实践。 一、模型压缩的必要性 1.1 部署场景的多样性 场景 内存限制 延迟要求 功耗限制 云端GPU 80GB <2s 无 边缘服务器 16GB <1s 100W 手机端 4-8GB <500ms 5W IoT设备 <1GB <100ms <1W 一个70B参数的模型FP16需要140GB内存——只有云端GPU能跑。要部署到手机,需要压缩20-40倍。 1.2 压缩的三个维度 模型体积: 参数量 × 每参数字节数 推理速度: 与参数量和计算量相关 内存占用: 参数 + KV Cache + 激活值 压缩目标: 在保持精度的前提下,最小化以上三者 二、量化:最实用的压缩技术 2.1 量化原理 将高精度浮点数(FP16/FP32)映射到低精度整数(INT8/INT4): FP16: 0.1234, 0.5678, -0.2345 (16 bit/参数) INT8: 映射到 [-128, 127] (8 bit/参数) → 压缩2倍 INT4: 映射到 [-8, 7] (4 bit/参数) → 压缩4倍 2.2 量化方法对比 PTQ(Post-Training Quantization):训练后量化,无需重新训练 ...

2026-07-13 · 4 min · 714 words · 硅基 AGI 探索者

大模型推理的Prefix Cache优化:让首token延迟减半

首token延迟(TTFT, Time To First Token)是大模型推理体验的关键指标。用户可以容忍生成速度慢一些,但等待3秒才出第一个字是不可接受的。Prefix Cache是降低TTFT最有效的技术之一——对于共享system prompt的场景,可以将TTFT降低50%-80%。本文深入解析这项技术。 一、为什么首token延迟高 1.1 Prefill阶段的计算瓶颈 大模型生成回复的第一步是处理输入prompt(prefill阶段)。对于1000 token的输入,prefill需要一次性计算所有token的KV Cache。 与生成阶段(每次只处理1个token)不同,prefill阶段是计算密集型的: 输入1000 token,需要计算1000×1000的注意力矩阵 计算量与输入长度的平方成正比 在A100上,1000 token prefill约需300-500ms 1.2 重复计算的浪费 在实际应用中,大量请求共享相同的前缀: 请求1: [System Prompt 500 tokens][用户问题A 20 tokens] 请求2: [System Prompt 500 tokens][用户问题B 30 tokens] 请求3: [System Prompt 500 tokens][用户问题C 15 tokens] 每个请求都要重新计算那500 token的KV Cache——完全相同的计算重复了3次。如果有1000个请求,就是1000次重复计算。 Prefix Cache的核心思想:缓存共享前缀的KV Cache,后续请求直接复用。 二、Prefix Cache的技术原理 2.1 KV Cache回顾 Transformer推理中,每个token在每一层都会产生Key和Value向量,存储在KV Cache中供后续token使用: Layer 0: K=[k0, k1, ..., kn], V=[v0, v1, ..., vn] Layer 1: K=[k0, k1, ..., kn], V=[v0, v1, ..., vn] ... Layer L: K=[k0, k1, ..., kn], V=[v0, v1, ..., vn] Prefix Cache就是在请求完成后,不丢弃这些KV Cache,而是按前缀哈希存储,供后续请求复用。 ...

2026-07-13 · 3 min · 532 words · 硅基 AGI 探索者

大模型推理的连续批处理技术:吞吐量翻倍的工程艺术

大模型推理的性能瓶颈不是计算,而是内存。而连续批处理(Continuous Batching)正是突破这一瓶颈的关键技术——它可以让推理服务的吞吐量提升2-4倍。本文将深入解析这项技术的原理与实现。 一、传统批处理的困境 1.1 静态批处理的问题 传统批处理将多个请求组成一个batch一起推理。问题在于:大模型生成是自回归的,每个请求的生成长度不同。 请求A: 输入50 token, 生成200 token (总时长: 3秒) 请求B: 输入30 token, 生成20 token (总时长: 0.5秒) 请求C: 输入100 token, 生成500 token (总时长: 7秒) 静态批处理下,整个batch必须等最长的请求C完成才能处理下一批。请求B在0.5秒就完成了,但GPU资源被空占了6.5秒。GPU利用率可能低至20-30%。 1.2 内存碎片化 更深层的问题在KV Cache的内存管理。每个请求需要预分配最大生成长度的KV Cache空间,即使实际只生成了很少的token,预分配的空间也无法被其他请求使用。 二、连续批处理的核心思想 2.1 动态插入与驱逐 连续批处理的核心:不等整个batch完成,而是在每一步推理后动态调整batch组成。 Step 1: batch = [A, B, C] → 各生成第1个token Step 2: batch = [A, B, C] → 各生成第2个token Step 3: batch = [A, B, C] → B完成!B退出batch Step 4: batch = [A, D, C] → D是新请求,加入batch Step 5: batch = [A, D, C] → A完成!A退出 Step 6: batch = [E, D, C] → E加入 ... 这样GPU始终满载运行,没有空等。 ...

2026-07-13 · 3 min · 466 words · 硅基 AGI 探索者

大模型蒸馏技术:让小模型拥有大智慧

大模型蒸馏技术:让小模型拥有大智慧 知识蒸馏是连接大模型和小模型的桥梁——让小模型以更低的成本获得接近大模型的能力。2026年,蒸馏技术已经从简单的输出模仿发展到多维度的知识传递,成为模型部署流程中不可或缺的一环。 蒸馏的基本原理 知识蒸馏的核心思想是让student模型学习teacher模型的行为。最基础的形式是软标签蒸馏:teacher模型对每个输入输出一个概率分布(软标签),student模型不仅学习正确答案,还学习teacher的输出分布。 软标签比硬标签(正确答案)包含更多信息。例如,在情感分类中,teacher可能输出"正面:0.7, 中性:0.2, 负面:0.1"。这个分布告诉student:这个样本倾向于正面,但与中性也有一定相似度——这种"暗知识"是硬标签无法提供的。 蒸馏方法的演进 输出层蒸馏 最早的蒸馏方法只关注最终输出。KL散度损失函数让student的输出分布逼近teacher的输出分布: L = α * KL(softmax(z_t/T) || softmax(z_s/T)) + (1-α) * CE(y, z_s) 其中z_t和z_s分别是teacher和student的logits,T是温度参数,α是损失权重。 温度T的作用至关重要。T=1时,蒸馏等同于标准训练;T较大时,软标签中的"暗知识"被放大,student能学到更多teacher的细微判断。最佳温度通常在2-10之间,需要根据任务调整。 中间层蒸馏 输出层蒸馏的局限是student只能在最终输出层面模仿teacher。但如果teacher和student的架构差异较大,输出层面的模仿可能不够有效。 中间层蒸馏让student的隐藏层表示逼近teacher的隐藏层表示。由于两个模型的隐藏层维度可能不同,通常需要一个线性映射将student的隐藏层投影到teacher的维度: L_hidden = MSE(W * h_s, h_t) 其中W是可学习的映射矩阵,h_s和h_t分别是student和teacher的隐藏层输出。 中间层蒸馏显著提升了student的性能——在我们的实验中,相比纯输出蒸馏,中间层蒸馏让student在推理任务上的准确率额外提升5-8个百分点。 注意力蒸馏 注意力蒸馏让student学习teacher的注意力分布。teacher的注意力模式包含了它"关注什么"的信息——这对理解teacher的推理过程很有价值。 注意力蒸馏在机器翻译等任务上特别有效,因为对齐信息(源语言的哪个词对应目标语言的哪个词)主要体现在注意力分布中。 渐进式蒸馏 渐进式蒸馏不是一次性蒸馏,而是分阶段进行:先用简单任务蒸馏,再逐步引入更复杂的任务。这类似于人类学习的"从易到难"过程。 在渐进式蒸馏中,每个阶段的teacher可以提供不同形式的指导:简单阶段提供软标签,复杂阶段提供推理过程(CoT),最复杂阶段提供完整的解题轨迹。 蒸馏大模型到小模型 选择合适的teacher-student对 不是所有大模型都适合做teacher,也不是所有小模型都适合做student。选择原则: Teacher选择:选择在目标任务上表现最好、输出分布最平滑的模型。输出分布越平滑,暗知识越丰富。经过RLHF训练的模型输出分布往往较尖锐(过度自信),不是最佳teacher。我们通常使用base模型(未经RLHF)作为teacher。 Student选择:student的架构应与teacher尽量相似,以最大化知识迁移效率。如果teacher是Transformer decoder,student也应该是。层数和宽度可以缩减,但基本结构应保持一致。 数据选择 蒸馏数据的质量和多样性比数量更重要。我们使用以下策略构建蒸馏数据集: Teacher生成数据:让teacher模型生成大量高质量的回答,作为student的训练数据。这比使用原始训练数据更有效,因为teacher的输出已经包含了它的"知识"。 难度分层:按任务难度对数据进行分层,确保student逐步学习从简单到复杂的模式。 领域覆盖:确保蒸馏数据覆盖student需要处理的所有领域。如果student主要用于代码生成,蒸馏数据应以代码为主。 实践效果 我们将一个70B模型蒸馏到7B模型,结果如下: 指标 Teacher (70B) Student (7B) Student (7B, 从头训练) MMLU 78.5 71.2 62.3 GSM8K 85.1 74.6 58.2 HumanEval 72.3 65.8 51.4 蒸馏相比从头训练的提升约9-16个百分点,且student的推理速度约为teacher的10倍。 ...

2026-07-13 · 1 min · 85 words · 硅基 AGI 探索者

大模型蒸馏技术:让小模型拥有大智慧

大模型蒸馏技术:让小模型拥有大智慧 知识蒸馏是连接大模型和小模型的桥梁——让小模型以更低的成本获得接近大模型的能力。2026年,蒸馏技术已经从简单的输出模仿发展到多维度的知识传递,成为模型部署流程中不可或缺的一环。 蒸馏的基本原理 知识蒸馏的核心思想是让student模型学习teacher模型的行为。最基础的形式是软标签蒸馏:teacher模型对每个输入输出一个概率分布(软标签),student模型不仅学习正确答案,还学习teacher的输出分布。 软标签比硬标签(正确答案)包含更多信息。例如,在情感分类中,teacher可能输出"正面:0.7, 中性:0.2, 负面:0.1"。这个分布告诉student:这个样本倾向于正面,但与中性也有一定相似度——这种"暗知识"是硬标签无法提供的。 蒸馏方法的演进 输出层蒸馏 最早的蒸馏方法只关注最终输出。KL散度损失函数让student的输出分布逼近teacher的输出分布: L = α * KL(softmax(z_t/T) || softmax(z_s/T)) + (1-α) * CE(y, z_s) 其中z_t和z_s分别是teacher和student的logits,T是温度参数,α是损失权重。 温度T的作用至关重要。T=1时,蒸馏等同于标准训练;T较大时,软标签中的"暗知识"被放大,student能学到更多teacher的细微判断。最佳温度通常在2-10之间,需要根据任务调整。 中间层蒸馏 输出层蒸馏的局限是student只能在最终输出层面模仿teacher。但如果teacher和student的架构差异较大,输出层面的模仿可能不够有效。 中间层蒸馏让student的隐藏层表示逼近teacher的隐藏层表示。由于两个模型的隐藏层维度可能不同,通常需要一个线性映射将student的隐藏层投影到teacher的维度: L_hidden = MSE(W * h_s, h_t) 其中W是可学习的映射矩阵,h_s和h_t分别是student和teacher的隐藏层输出。 中间层蒸馏显著提升了student的性能——在我们的实验中,相比纯输出蒸馏,中间层蒸馏让student在推理任务上的准确率额外提升5-8个百分点。 注意力蒸馏 注意力蒸馏让student学习teacher的注意力分布。teacher的注意力模式包含了它"关注什么"的信息——这对理解teacher的推理过程很有价值。 注意力蒸馏在机器翻译等任务上特别有效,因为对齐信息(源语言的哪个词对应目标语言的哪个词)主要体现在注意力分布中。 渐进式蒸馏 渐进式蒸馏不是一次性蒸馏,而是分阶段进行:先用简单任务蒸馏,再逐步引入更复杂的任务。这类似于人类学习的"从易到难"过程。 在渐进式蒸馏中,每个阶段的teacher可以提供不同形式的指导:简单阶段提供软标签,复杂阶段提供推理过程(CoT),最复杂阶段提供完整的解题轨迹。 蒸馏大模型到小模型 选择合适的teacher-student对 不是所有大模型都适合做teacher,也不是所有小模型都适合做student。选择原则: Teacher选择:选择在目标任务上表现最好、输出分布最平滑的模型。输出分布越平滑,暗知识越丰富。经过RLHF训练的模型输出分布往往较尖锐(过度自信),不是最佳teacher。我们通常使用base模型(未经RLHF)作为teacher。 Student选择:student的架构应与teacher尽量相似,以最大化知识迁移效率。如果teacher是Transformer decoder,student也应该是。层数和宽度可以缩减,但基本结构应保持一致。 数据选择 蒸馏数据的质量和多样性比数量更重要。我们使用以下策略构建蒸馏数据集: Teacher生成数据:让teacher模型生成大量高质量的回答,作为student的训练数据。这比使用原始训练数据更有效,因为teacher的输出已经包含了它的"知识"。 难度分层:按任务难度对数据进行分层,确保student逐步学习从简单到复杂的模式。 领域覆盖:确保蒸馏数据覆盖student需要处理的所有领域。如果student主要用于代码生成,蒸馏数据应以代码为主。 实践效果 我们将一个70B模型蒸馏到7B模型,结果如下: 指标 Teacher (70B) Student (7B) Student (7B, 从头训练) MMLU 78.5 71.2 62.3 GSM8K 85.1 74.6 58.2 HumanEval 72.3 65.8 51.4 蒸馏相比从头训练的提升约9-16个百分点,且student的推理速度约为teacher的10倍。 ...

2026-07-13 · 1 min · 85 words · 硅基 AGI 探索者

大模型推理的KV Cache优化全解

大模型推理的KV Cache优化全解 KV Cache是大模型推理中最重要的优化技术,也是最大的内存瓶颈。理解KV Cache的工作原理和优化方法,是构建高效推理服务的基础。 KV Cache是什么 在Transformer的自回归生成中,每生成一个新token,需要计算它对所有之前token的注意力。如果不缓存之前的Key和Value矩阵,每个新token都需要重新计算所有之前token的K和V,计算量随序列长度二次增长。 KV Cache通过缓存之前计算过的K和V矩阵,将每步的计算复杂度从O(n²)降到O(n)。代价是内存占用线性增长——对于Llama-70B模型,生成4K token的KV Cache约占40GB显存。 内存瓶颈 KV Cache的内存占用可以用以下公式计算: KV Cache Size = 2 * num_layers * num_heads * head_dim * seq_len * batch_size * dtype_size 以Llama-70B(80层, 64头, 128维, FP16)为例,单序列4096 token的KV Cache约40GB。这意味着一个80GB显存的A100只能服务两个并发请求——这是制约推理吞吐量的最大瓶颈。 PagedAttention:分页管理 vLLM团队提出的PagedAttention是KV Cache管理的革命性创新。灵感来自操作系统的虚拟内存分页机制。 传统分配的问题 传统方法为每个序列预分配一块连续的KV Cache空间,按最大序列长度分配。这导致严重的内存碎片——大多数序列不会用满预分配的空间,但多余的空间不能被其他序列使用。内存利用率通常只有20-40%。 分页方案 PagedAttention将KV Cache划分为固定大小的"页"(通常16个token),每个序列通过页表映射到物理页。页按需分配——序列增长时才分配新页。 效果是显著的:vLLM的内存利用率提升到90%以上,并发吞吐量提升2-4倍。碎片问题被彻底解决,因为不同序列的页可以散布在物理内存中的任意位置。 页的大小选择 页太小(如1 token)会增加页表开销,页太大(如256 token)则回到预分配的问题。16 token是在大多数场景下的最优选择——页表开销不到1%,内存浪费也不显著。 量化缓存 KV Cache的精度对推理质量的影响比模型权重更小——因为KV Cache是中间激活值,其分布更集中,量化误差更容易被后续计算"洗掉"。 FP8 KV Cache 将KV Cache从FP16量化到FP8,内存减半,几乎无损。现代GPU(H100及以后)原生支持FP8运算,所以推理速度也几乎不受影响。这可能是最简单且性价比最高的KV Cache优化。 INT4 KV Cache 更激进的方案是将KV Cache量化到INT4。内存减少到1/4,但精度损失开始显著——在长序列和需要精确注意力的任务上,INT4 KV Cache可能导致输出质量下降。 ...

2026-07-12 · 1 min · 121 words · 硅基 AGI 探索者
鲁ICP备2026018361号