相关概念
- Prefill阶段:也叫prompt或者全量推理阶段,是对用户传入的输入第一次进行推理的阶段。该阶段的输入是用户传入的完整长度的语句。
- Decoder阶段:也叫增量推理阶段,基于Prefill阶段的输出进行迭代推理的阶段。由于该阶段每次迭代的输入都是上一次推理的输出,所以叫做增量推理。
- PD分离:也就是Prefill阶段和Decoder阶段分离执行。
- KV Cache:KV Cache其实是在大语言模型中使用的一种技术,用于缓存已经计算过的Key和Value,避免在每一步生成过程中重复计算整个上下文。本文代指计算完的Key和Value缓存。
- PagedAttention:简称PA。简单说是一种使用离散block的方式管理请求KV Cache的功能,相比未使用此功能的框架而言,能够达到节省KV Cache内存占用大小的效果。
- block_table:在PA场景下,表示请求KV Cache占用的block index的集合。
- 请求:可以理解为用户提的问题,该问题经过Prefill和Decoder阶段会有对应的回答,我们称这个过程为一次请求。
- role:表示LLM-DataDist代表的业务角色。业务角色分为Prefill和Decoder两种。
- cluster_id:表示LLM-DataDist所在的集群标识。主要用于Decoder侧通过cluster_id找到对应链路,从而找到Prefill侧缓存的对应请求的KV Cache。对于一个模型的不同切分部署到不同device的场景,当前在支持PD对等切分场景下,cluster_id在不同切分模型间设置一样。
- 集群动态扩缩容:根据业务闲忙,动态的调整集群的数量以及PD集群的配比,从而达到闲时节省资源,忙时提高吞吐的目的。
- D2D传输:指数据从Device设备往Device设备传输
- D2H传输:指数据从Device设备往Host设备传输
- H2D传输:指数据从Host设备往Device设备传输