LLM-DataDist接口列表
在大模型推理场景下,全量图和增量图一起部署时,会造成计算资源的浪费,原因如下:
- 全量图计算对算力要求高,序列长度不一致,在算力约束下可能导致时延增长。
- 增量图单次计算量小,可以增大batch以提升算力利用率。
LLM-DataDist:大模型分布式集群和数据加速组件,提供了集群KV数据管理能力,以支持全量图和增量图分离部署。
- 支持的产品形态:
Atlas 800I A2 推理产品 。 - 当前仅支持python3.9与python3.11。安装方法请参考python官网https://www.python.org/。
- 最大注册50GB的Device内存。注册内存越大,占用的OS内存越多。
LLM-DataDist接口列表如下。
LLM-DataDist
接口名称 |
简介 |
---|---|
构造LLMDataDist。 |
|
初始化LLMDataDist。 |
|
释放LLMDataDist。 |
|
KvCache管理模式的建链。 |
|
KvCache管理模式的断链。 |
|
在KvCache管理模式下,调用此接口可快速检测链路状态是否正常。 |
|
在KvCache管理模式下,获取KvCacheManager实例。 |
|
切换当前LLMDataDist的角色,建议仅在使用PagedAttention的场景使用,在开启CacheManager的情况下,不同角色功能没有限制,调用该接口直接返回,无任何作用。 |
|
用于在推理前检查本轮想要执行的请求的kv cache是否可以缓存下。 |
|
在开启CacheManager的场景下,调用此接口通过建立通信域方式建链。 开启方式CacheManager是在初始化LLMDataDist时设置llm.EnableCacheManager为1。 |
|
在开启CacheManager的场景下,调用此接口进行断链。 开启方式CacheManager是在初始化LLMDataDist时设置llm.EnableCacheManager为1。 |
|
在开启CacheManager的场景下,调用此接口查询注册内存状态。 开启方式CacheManager是在初始化LLMDataDist时设置llm.EnableCacheManager为1。 |
|
在开启CacheManager的场景下,获取CacheManager实例。 开启方式CacheManager是在初始化LLMDataDist时设置llm.EnableCacheManager为1。 |
|
添加模型。 |
|
完成请求,释放请求所占内存。 |
LLMConfig
接口名称 |
简介 |
---|---|
构造LLMConfig。 |
|
生成配置项字典。 |
|
设置当前进程device ID,对应底层ge.exec.deviceId配置项。 |
|
配置拉取kv等接口超时时间,对应底层llm.SyncKvCacheWaitTime配置项。 |
|
配置是否支持角色平滑切换,对应底层llm.EnableSwitchRole配置项。 |
|
配置额外的GE配置项。 |
|
PROMPT侧设置集群侦听信息,对应底层llm.listenIpInfo配置项。 |
|
配置ge.flowGraphMemMaxSize内存的利用率。默认值0.95。 |
|
用户指定内存档位配置,提高内存申请性能和使用率。 |
|
配置是否开启CacheManager模式,对应底层llm.EnableCacheManager配置项。 |
|
在开启CacheManager场景下,配置内存池相关配置项。 |
|
在开启CacheManager场景下,配置host内存池相关配置项。 |
|
在开启CacheManager场景下,配置是否开启远端Cache可直接访问功能。 |
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。 |
|
对cpu_cache和npu_cache进行换入换出。 |
|
异步分层传输KvCache。 |
KvCache
接口名称 |
简介 |
---|---|
构造KvCache。 |
|
创建cpu cache。 |
CacheManager
接口名称 |
简介 |
---|---|
分配Cache,Cache分配成功后,会同时被cache_id与cache_keys引用,只有当这些引用都解除后,cache所占用的资源才会实际释放。 |
|
释放Cache。 如果该Cache在Allocate时关联了CacheKey,则实际的释放会延后到所有的CacheKey被拉取或执行了remove_cache_key。 |
|
移除CacheKey。 移除CacheKey后,该Cache将无法再被pull_cache拉取。 |
|
根据CacheKey,从对应的对端节点拉取到本地Cache。 |
|
拷贝Cache。 |
|
PagedAttention场景下,分配多个blocks的Cache,Cache分配成功后,可通过deallocate_blocks_cache释放内存。 |
|
PagedAttention场景下,释放allocate_blocks_cache申请的Cache。 |
|
PagedAttention场景下,根据BlocksCacheKey,通过block列表的方式从对端节点拉取Cache到本地Cache。 |
|
PagedAttention场景下,拷贝block。 |
|
对cpu_cache和npu_cache进行换入换出。 |
|
注册一个自行申请的内存。 |
|
PagedAttention场景下,调用此接口注册一个自行申请的内存。 |
|
异步分层传输Cache。 |
Cache
接口名称 |
简介 |
---|---|
构造Cache。 |
|
创建cpu cache。 |
LLMClusterInfo
接口名称 |
简介 |
---|---|
构造LLMClusterInfo。 |
|
设置对端集群ID。 |
|
添加本地集群IP信息。 |
|
添加远端集群IP信息。 |
CacheTask
接口名称 |
简介 |
---|---|
构造CacheTask。 |
|
等待所有层传输完成,并获取整体执行结果。 |
|
等待所有层传输完成,并获取每个TransferConfig对应执行结果。 |
其他
接口名称 |
简介 |
---|---|
LLMRole的枚举值。 |
|
RegisterMemStatus的枚举值。 |
|
CacheDesc的字段,表示cache所在的设备类型。 |
|
构造CacheDesc。 |
|
构造CacheKey。 |
|
构造CacheKeyByIdAndIndex,通常在KvCacheManager的pull_cache或者CacheManager的pull_cache接口中作为参数类型使用。 |
|
PagedAttention场景下,构造BlocksCacheKey。 |
|
check_capacity接口的返回值,表示内存情况。 |
|
等待模型指定层执行完成,用户需要继承LayerSynchronizer并实现该接口。 该接口会在执行KvCacheManager.transfer_cache_async时被调用,当该接口返回成功,则开始当前层cache的传输。 |
|
构造TransferConfig。 |
|
获取异常的错误码。错误码列表详见LLMStatusCode。 |
|
LLMStatusCode的枚举值。 |