LLM-DataDist接口列表
在大模型推理场景下,全量图和增量图一起部署时,会造成计算资源的浪费,原因如下:
- 全量图计算对算力要求高,序列长度不一致,在算力约束下可能导致时延增长;
 - 增量图单次计算量小,可以增大batch以提升算力利用率。
 
LLM-DataDist:大模型分布式集群和数据加速组件,提供了集群KV数据管理能力,以支持全量图和增量图分离部署。
支持的产品形态:Atlas A2训练系列产品/Atlas 800I A2推理产品。
当前仅支持python3.9与python3.11。安装方法请参考python官网https://www.python.org/。
LLM-DataDist接口列表如下。
LLM-DataDist
接口名称  | 
        简介  | 
       
|---|---|
构造LLMDataDist。  | 
       |
初始化LLMDataDist。  | 
       |
释放LLMDataDist。  | 
       |
添加模型。  | 
       |
建链。  | 
       |
断链。  | 
       |
完成请求,释放请求所占内存。  | 
       |
获取KvCacheManager实例。  | 
       |
切换当前LLM-DataDist的角色。  | 
       |
用于在推理前检查本轮想要执行的请求的kv cache是否可以缓存下。  | 
       
LLMModel
接口名称  | 
        简介  | 
       
|---|---|
拉取kv。  | 
       |
合并kv。  | 
       |
预加载前缀kv。  | 
       |
释放前缀kv所占内存。  | 
       |
执行模型推理。  | 
       |
PagedAttention场景下,拉取kv。  | 
       
KvCacheManager
接口名称  | 
        简介  | 
       
|---|---|
查询KvCacheManager实例是否已初始化。  | 
       |
分配Cache,Cache分配成功后,会同时被cache_id与cache_keys引用,只有当这些引用都解除后,cache所占用的资源才会实际释放。  | 
       |
释放Cache。  | 
       |
移除CacheKey,仅当LLMRole为PROMPT时可调用。  | 
       |
根据CacheKey,从对应的Prompt节点拉取KV到本地KvCache,仅当LLMRole为DECODER时可调用。  | 
       |
拷贝KV。  | 
       |
获取cache tensor。  | 
       |
PagedAttention场景下,分配多个blocks的Cache。  | 
       |
PagedAttention场景下,根据BlocksCacheKey,通过block列表的方式从对应的Prompt节点拉取KV到本地KvCache, 仅当LLMRole为DECODER时可调用。  | 
       |
PagedAttention场景下,拷贝KV。  | 
       
ModelRunner
接口名称  | 
        简介  | 
       
|---|---|
执行模型,用户需要集成ModelRunner并实现该接口。 该接口会在执行LLMModel.predict时被调用。  | 
       |
当ModelRunner关联的Decoder LLMModel分配了KvCache后回调。  | 
       |
当ModelRunner关联的Decoder LLMModel释放了KvCache后回调。  | 
       
TensorDesc
接口名称  | 
        简介  | 
       
|---|---|
构造TensorDesc。  | 
       |
获取dtype属性值。  | 
       |
获取shape属性值。  | 
       
Tensor
接口名称  | 
        简介  | 
       
|---|---|
构造Tensor。  | 
       |
获取tensor的numpy数据。  | 
       
ModelConfig
接口名称  | 
        简介  | 
       
|---|---|
构造ModelConfig。  | 
       |
生成模型配置项字典。  | 
       |
配置每个kv的维度信息,对应底层llm.RefInputShapes配置项。  | 
       |
配置每个kv数据类型,对应底层llm.RefInputDtypes配置项。  | 
       |
配置序列长度所在维度,对应底层llm.RefInputSeqLenDimIndex配置项。  | 
       |
配置是否开启PagedAttention,对应底层llm.EnablePagedAttention配置项。  | 
       |
配置是否开启共享系统前缀,对应底层llm.EnableSharedSystemPrefix配置项。  | 
       |
配置模型列表,对应底层llm.OmCachePath配置项,如果是flow model,只需要配置一个模型路径。  | 
       |
配置模型是否是flow_model,对应底层llm.IsFlowModel配置项,如果传入模型是FlowModel时需要配置。  | 
       |
配置额外的GE配置项。  | 
       |
设置kv cache tensor的format。  | 
       
LLMConfig
接口名称  | 
        简介  | 
       
|---|---|
构造LLMConfig。  | 
       |
生成配置项字典。  | 
       |
PROMPT侧设置集群侦听信息,对应底层llm.listenIpInfo配置项。  | 
       |
设置当前进程device ID,对应底层ge.exec.deviceId配置项。  | 
       |
配置拉取kv等接口超时时间,对应底层llm.SyncKvCacheWaitTime配置项。  | 
       |
配置额外的GE配置项。  | 
       |
配置ge.flowGraphMemMaxSize内存的利用率。默认值0.95。  | 
       
LLMReq
接口名称  | 
        简介  | 
       
|---|---|
构造LLMReq。  | 
       |
设置请求ID。  | 
       |
设置请求prompt长度。  | 
       |
设置请求prompt集群ID。  | 
       |
设置请求decoder集群ID。  | 
       |
设置请求前缀ID。  | 
       
LLMClusterInfo
接口名称  | 
        简介  | 
       
|---|---|
构造LLMClusterInfo。  | 
       |
设置对端集群ID。  | 
       |
添加本地集群IP信息。  | 
       |
添加远端集群IP信息。  | 
       
其他
接口名称  | 
        简介  | 
       
|---|---|
构造CacheDesc。  | 
       |
构造CacheKey。  | 
       |
构造CacheKeyByIdAndIndex。  | 
       |
PagedAttention场景下,构造BlocksCacheKey。  | 
       |
构造KvCache。  |