推理的 KV Cache,已经大到需要单独管理了。
这已经成为行业内越来越明确的共识。近日,华为全联接大会上推出了华为 OceanStor M900,英伟达也已经推出了 CMX Context Memory Storage。
这类 AI 记忆存储产品,会将推理过程中已经产生、可能再次复用的 KV Cache 进行分层管理和存储,在后续请求命中时减少相应的重复计算,这将直接节省有关算力开销。
有业者明确表示,即使缓存的命中率越来越高,继续从 90% 向 95% 提升依然很有价值。
但是,对于存储价格 " 比金子还贵 " 的当下,单独存储一些可能复用的推理缓存,究竟是一笔什么样的账单?
01
从 DRAM 到 SSD,换算不是 1 比 1
"KV Cache 外置的核心逻辑就是‘以存换算’。" 长期研究存储的学者章衡告诉雷峰网。
以存换算,本质上是在计算成本和存储成本之间找一个平衡点。已经算过的历史 KV,是直接丢掉、下次重新计算,还是保存下来,在后续请求命中时直接复用?现在行业给出的答案,显然是后者。
章衡举例,假设 KV Cache 命中率从 90% 提高到 95%,需要重新计算的部分就会从 10% 降到 5%。" 相当于重新计算的那部分算力开销减少了一半。" 章衡说。
但命中率继续提高,也意味着需要保存更多历史 KV。尤其到了高命中率区间,为了再覆盖最后几个百分点的长尾数据,所需存储容量可能明显增加。
要算的第一笔账,是这些 KV Cache 值不值得存。
在某头部存储厂商负责人李辉看来,不同应用的数据生命周期差异很大。有些消费端应用中的 KV Cache 可能几分钟或一两个小时后就被清理。
而部分企业端应用更看重上下文的持续性,KV Cache 的数据生命周期也可能更长。对这类业务来说,让历史 KV 跨请求保留更久、供后续复用的价值也更高。
第二笔账则是存在哪里。李辉认为,如果 DRAM 足够便宜、供应也充足,全部放在 DRAM 里当然最省事,性能也最好——但现实是 DRAM 既贵又缺,这给 SSD 留下了空间。
但这种替换不是简单的把 1TB DRAM 简单换成 1TB SSD。一方面,李辉表示,从整体成本来看,DRAM 和 SSD 之间不是 1:1 的替换,而是 "1:N",在一些方案中甚至可能达到一比五、一比十。
另一方面,按相同容量计算,李辉估算 DRAM 与企业级 SSD 的成本可以相差数十倍。
正是这种价差,让内存卸载从过去资源不足时的 " 兜底手段 ",逐渐进入新系统的初始设计。(关于 DRAM、SSD 的实际应用,欢迎添加作者微信 treelog10 分享、交流)
企业虽然能用更便宜的 SSD 替代部分 DRAM 容量,但需要增加的 SSD 规模也会更大,最终仍要同时计算容量、性能和采购成本。
章衡则告诉雷峰网,现阶段多数推理场景还没有到必须增加独立 KV 存储设备才能运行的程度。
企业通常会先利用已有的 DRAM、内存池和本地 SSD,再逐步考虑外部存储。" 肯定是先把服务器内已有的资源用满。" 章衡说。
华为 M900 和英伟达 CMX 的出现,则说明这种原本更多发生在服务器内部的 KV 分层,已经开始进一步走向独立的共享存储层。
02
KV 需求冒头,SSD 标准却没跟上
独立 KV 存储设备已经出现,但真正承接这些 KV Cache 的 SSD,还没有形成一个成熟、统一的产品品类。
李辉告诉雷峰网,现在行业已经开始讨论面向 AI 推理、尤其是 KV Cache 负载优化的 SSD,但真正落到采购端,大多数客户买的仍然是普通企业级 SSD。
" 现在业内都在聊这个趋势,但还没有一个标准化、大规模上量的产品。" 李辉说。目前市场上更多还是三星、闪迪、美光等厂商的传统企业级 SSD。
原因并不是 SSD 本身做不出来,而是 KV Cache 究竟会给 SSD 带来什么样的负载,行业还没有完全摸清楚。
李辉举例,他接触到的一类相关方案,最初对 SSD 耐写能力的要求大约是 3 DWPD,后来又提高到 9 DWPD。DWPD 即 Drive Writes Per Day,表示一块 SSD 每天能够承受多少次整盘写入。
" 有可能明天变 12,后天又变成 5。" 李辉说。
指标之所以会反复变化,首先取决于 KV Cache 到底要保存多久。如果一批缓存只保存几分钟,数据需要频繁更新,SSD 每天承受的写入压力会更高,对耐久度的要求也随之上升。
但如果数据需要保存几个星期,写入频率下降后,耐写能力反而不再是主要矛盾,容量需求会更加突出。
李辉提到,现在不同业务中的数据生命周期可能从分钟、小时,一直延伸到天甚至周。在应用形态和数据生命周期还没有稳定下来的情况下,SSD 究竟需要多大的容量、多高的耐久度,以及怎样的性能指标,也很难提前确定。
对于存储厂商来说,SSD 本身是一个高度依赖规模的产品。" 如果没有标准化,这个市场就很难形成规模。"李辉坦言。
如果不同客户根据自己的业务分别定义一套 SSD 规格,产品就很容易停留在定制化阶段,无法形成足够大的统一市场。李辉举例,如果头部互联网大厂最终需要的产品都不一样,存储厂商很难依靠单一规格获得规模。
所以现在,行业还需要时间在不同方案之间磨合,等实际负载逐渐收敛之后才可能形成更统一的产品标准。按李辉的估算,行业形成较统一的产品共识可能还需要 6 至 12 个月;即使标准确定,后续产品开发、验证和优化还可能再花约 1 年。
李辉还提到,北美市场已经有客户因为 AI 推理和 KV Cache 增加 SSD 采购;中国市场也开始出现加单,但速度相对更慢,目前国内 SSD 需求的大头仍在训练和常规推理,KV Cache 相关需求还在方案阶段。(有关 SSD 的市场采购现状,欢迎添加作者微信 treelog10 分享、吐槽)
"KV Cache 未来的确可能成为企业级 SSD 的重要增量之一,但这块市场目前仍处于‘百花齐放’的阶段。" 李辉说。
03
存储压力下去了,搬运成本还在
既然这么多历史 KV Cache 被搬走,HBM 和 DRAM 的工作负载有没有被缓解呢?
目前最直接缓解的,是 DRAM 的负载压力。章衡告诉雷峰网,外置 KV 缓存的目标之一,是减少服务器对大容量 DRAM 的依赖。
" 核心目标其实是换内存,不是要换显存。现在内存太贵了,那不如少买点内存,多买点 SSD。"章衡笑言。在这类方案里,原本需要长期留在 DRAM 中的一部分历史 KV,可以继续下沉到 SSD,从而减少内存配置。
相比之下,KV Cache 外置对 HBM 的缓解没有那么直接。章衡认为,外部存储更多影响的是首 Token 延迟。历史 KV 从外部存储调回来的速度,会影响模型多久开始生成首个 Token;而一旦开始生成 Token,相关 KV 已经回到显存,后续生成速度仍然依赖高速显存。
李辉也提到,随着不同存储层级之间的价差和供应差异扩大,分层和卸载正在更早进入推理系统的设计。
但把历史 KV 放到更大容量的存储里,只解决了容量和成本问题。当前推理过程中,模型权重和数据仍然需要不断搬运。
SSD 解决的是存得下、存得有性价比,但它解决不了搬得够不够快。
AI 芯片公司创始人顾淮告诉雷峰网,存算一体(CIM)试图减少的,正是模型权重和当前数据的搬运开销。在传统推理架构中,模型权重和中间数据需要在存储单元与计算单元之间频繁移动;存算一体则希望把部分计算尽量放到数据附近完成,减少反复搬运带来的开销。
当前请求为了快速生成 Token,相关数据会放在 DRAM、或者更靠近计算单元的 SRAM 中;模型权重和 KV 等数据如果能够在靠近计算的位置被重复利用,就可以减少反复搬运。
顾淮认为,这种优势在 Prefill 阶段尤其明显,高并发场景下,同一组模型参数可以服务多个请求。顾淮以 100 路并发举例,同一组参数可以被多个请求复用,因此不需要为每个请求重复搬运一遍。" 并发数越多越好。" 顾淮说。
到了 Decode 阶段,不同请求使用的 KV 缓存并不完全相同,能够在请求之间重复利用的数据更少。因此,存算一体在这一阶段的收益没有 Prefill 明显。
在顾淮看来,如果未来存算一体进入服务器,一个直接作用是降低首 Token 延迟,并支撑更高并发。
但是,存算一体并不能替代历史 KV Cache 的存储需求。历史对话产生的大量 KV 仍然需要 SSD 等大容量介质保存,后续请求再次命中时,再把需要的数据调回当前计算路径中。" 历史对话的 KV Cache 还是要存在 SSD 里,否则存储量太大。" 顾淮说。
那么,再次回到那个问题,存储那些可能被复用的推理缓存,到底是一笔怎样的账单?
它并不是简单地多花一笔存储成本,就能等额省下一笔算力成本。KV Cache 保存多久、能够被复用多少次、使用什么介质,以及调取过程中还要付出多少数据搬运成本,都在影响最终选择。
大模型记住过去,基础设施也开始为 " 记忆 " 买单。
(关于单独管理 KV Cache 的行业难题、困境,欢迎添加作者微信 treelog10 分享、吐槽)
* 文中章衡、李辉、顾淮均为化名。

▼


登录后才可以发布评论哦
打开小程序可以发布评论哦