1.PagedAtteion算法

https://zhuanlan.zhihu.com/p/680153425

PagedAtteion就是在VLLM里面会分为逻辑内存和物理内存,物理内存是真实存放KV cache的地方,而逻辑内存可以理解为逻辑上面的存在,需要通过一个块表,去链接物理内存到逻辑内存上。

需要处理三种情况,

1)parallel sampling,意思就是一个prompt有多个输出时候,会为一个物理内存分配reference count,而reference就像一个智能指针一样,如果逻辑内存写数据时候,发现对应的物理内存有超过1的count,就需要把count减去1,并且修改块表,复制原本的物理内存到其他位置,再把逻辑内存新写入的值写进去。

2)beam search,没有特别理解,看上去就是说迭代时候只会保持top-k信息,会共享候选块,并且在不再使用块时候释放块。

3)shared prompt,意思就是提前计算system prompt的KV值缓存下来。

相关推荐
橘子真甜~14 小时前
C/C++ Linux网络编程15 - 网络层IP协议
linux·网络·c++·网络协议·tcp/ip·计算机网络·网络层
asiwxy15 小时前
OpenGL 材质
c++
阿华hhh16 小时前
Linux系统编程(标准io)
linux·开发语言·c++
程序喵大人16 小时前
推荐个 C++ 练习平台
开发语言·c++·工具推荐
fpcc17 小时前
跟我学C++中级篇——std::is_invocable的分析应
c++
Code Slacker19 小时前
LeetCode Hot100 —— 滑动窗口(面试纯背版)(四)
数据结构·c++·算法·leetcode
SHERlocked9320 小时前
摄像头 RTSP 流视频多路实时监控解决方案实践
c++·后端·音视频开发
tang&21 小时前
哈希碰撞攻防战:C++闭散列与开散列实现全解析
c++·哈希算法
眠りたいです21 小时前
现代C++:C++11并发支持库
开发语言·c++·多线程·c++11·c++并发支持库