英伟达GPU在大语言模型内存缓存中以键值对形式存储向量——KV缓存——采用多层结构分层存储,最终延伸到网络连接的SSD存储。
向量是大语言模型处理项目(词语、图像、视频帧、声音)的多维特征编码值,用于语义搜索以响应输入请求。这些请求本身也会被向量化,大语言模型处理它们并在向量存储中查找元素来构建响应。这些元素是存储在GPU高带宽内存中的键值对,作为KV缓存。当特定响应会话所需的向量大于可用GPU内存时就会出现问题。此时现有向量会被驱逐,如果再次需要则重新计算——这需要时间。更好的做法是将它们移动到内存-存储层次结构的下层,以便在需要时读回GPU内存,而不是重新计算。这就是分层KV缓存的作用,英伟达的Dynamo软件实现了这一功能。
大语言模型处理响应时有两个阶段:预填充和解码。在预填充阶段,输入请求被分解为Token——基本词语或词语片段——然后被向量化并在内存中表示为KV对。这个过程计算密集但可以并行化。解码阶段是大语言模型构建输出的阶段,按顺序一次生成一个Token。每个新Token都基于之前生成的Token进行预测,结果存储在KV缓存中。第一个输出Token依赖于所有提示Token。第二个输出Token依赖于所有提示Token加上第一个输出Token。第三个输出Token依赖于所有提示Token加上第一个和第二个输出Token,以此类推。
当输出完成时,KV缓存内容仍在GPU内存中,可能需要保留以供用户后续问题或迭代推理大语言模型使用。但当新请求到来时,KV缓存内容会被驱逐。除非存储在其他地方,否则再次需要时必须重新计算。vLLM和LMCache等技术将GPU的KV缓存卸载到GPU服务器的CPU DRAM(二级内存)中,这可能比可用的GPU内存更大。
Dynamo是一个低延迟KV缓存卸载引擎,适用于多节点系统。它支持vLLM和其他推理引擎,如TRT-LLM和SGLang,以及大规模分布式推理。Dynamo在内存和存储层次结构中工作,从HBM,通过CPU的DRAM,到直连SSD和网络化外部存储。
它有四个特性:分解式服务、智能路由器、分布式KV缓存管理器和英伟达推理传输库(NIXL)。英伟达表示:"分解预填充和解码显著提升性能,参与推理的GPU越多,效率提升越明显。"
Dynamo 1.0版本支持KV缓存卸载到系统CPU内存,后续版本将扩展支持SSD和网络对象存储。它是开源软件。
许多存储供应商支持英伟达的AI数据平台及其包含的英伟达AI企业软件和NIM微服务,Dynamo是其中一部分。我们了解到Cloudian、DDN、戴尔、日立万塔拉、HPE、IBM、NetApp、PEAK:AIO、Pure Storage、VAST Data和WEKA都将支持Dynamo,Cohesity也是如此。Hammerspace和Pliops也支持KV缓存分层。
例如:
Cloudian将支持KV缓存分层
DDN表示其Infinia对象存储系统"专为以亚毫秒延迟提供KV缓存服务而设计"。
VAST Data在其关于Dynamo支持的博客中说:"Dynamo背后的分布式架构自然支持实现分解式预填充和解码。这作为另一种策略,通过加速计算来增强调度,提升推理吞吐量并最小化延迟。它通过分配一组GPU运行预填充,并让NIXL使用RDMA将数据移动到另一组执行解码过程的GPU来工作。"
WEKA在其博客中讨论了使用增强内存网格概念的分层KV缓存方法,指出"当在HBM之外存储缓存时,WEKA增强内存网格快速异步存储KV缓存以最大化效率。"作为性能示例,它说:"基于我们实验室中配备72个NVMe驱动器的八主机WEKApod测试,单个八路H100(张量并行度为8)展示了每秒938,000个Token的检索率。"
好文章,需要你的鼓励
从浙江安吉的桌椅,到广东佛山的沙发床垫、河南洛阳的钢制家具,再到福建福州的竹藤制品,中国各大高度专业化的家具产业带,都在不约而同地探索各自的数字化出海路径。
哥伦比亚大学研究团队开发了MathBode动态诊断工具,通过让数学题参数按正弦波变化来测试AI的动态推理能力。研究发现传统静态测试掩盖了AI的重要缺陷:几乎所有模型都表现出低通滤波特征和相位滞后现象,即在处理快速变化时会出现失真和延迟。该方法覆盖五个数学家族的测试,为AI模型选择和部署提供了新的评估维度。
研究人员正探索AI能否预测昏迷患者的医疗意愿,帮助医生做出生死决策。华盛顿大学研究员Ahmad正推进首个AI代理人试点项目,通过分析患者医疗数据预测其偏好。虽然准确率可达三分之二,但专家担心AI无法捕捉患者价值观的复杂性和动态变化。医生强调AI只能作为辅助工具,不应替代人类代理人,因为生死决策依赖具体情境且充满伦理挑战。
这项研究首次发现AI推理模型存在"雪球效应"问题——推理过程中的小错误会逐步放大,导致AI要么给出危险回答,要么过度拒绝正常请求。研究团队提出AdvChain方法,通过训练AI学习"错误-纠正"过程来获得自我纠错能力。实验显示该方法显著提升了AI的安全性和实用性,用1000个样本达到了传统方法15000个样本的效果,为AI安全训练开辟了新方向。