昇腾社区首页
中文
注册
开发者
下载

LLM-DataDist接口列表

LLM-DataDist:大模型分布式集群和数据加速组件,提供了集群KV数据管理能力,以支持全量图和增量图分离部署。

  • 支持的产品形态如下:
    • Atlas 800I A2 推理产品/A200I A2 Box 异构组件
    • Atlas A3 训练系列产品/Atlas A3 推理系列产品,该场景下采用HCCS传输协议时,不支持Host内存作为远端Cache。
  • 当前仅支持Python3.9与Python3.11。安装方法请参考Python官网https://www.python.org/
  • 最大注册50GB的Device内存。注册内存越大,占用的OS内存越多。

LLM-DataDist接口列表如下。

LLM-DataDist

表1 LLM-DataDist接口

接口名称

简介

LLMDataDist构造函数

构造LLMDataDist。

init

初始化LLMDataDist。

finalize

释放LLMDataDist。

link_clusters

建链。

unlink_clusters

断链。

check_link_status

调用此接口可快速检测链路状态是否正常。

kv_cache_manager

获取KvCacheManager实例。

switch_role

切换当前LLMDataDist的角色,建议仅在使用PagedAttention的场景使用。

LLMConfig

表2 LLMConfig接口

接口名称

简介

LLMConfig构造函数

构造LLMConfig。

generate_options

生成配置项字典。

device_id

设置当前进程Device ID,对应底层ge.exec.deviceId配置项。

sync_kv_timeout

配置拉取kv等接口超时时间,对应底层llm.SyncKvCacheWaitTime配置项。

enable_switch_role

配置是否支持角色平滑切换,对应底层llm.EnableSwitchRole配置项。

ge_options

配置额外的GE配置项。

listen_ip_info

PROMPT侧设置集群侦听信息,对应底层llm.listenIpInfo配置项。

mem_utilization

配置ge.flowGraphMemMaxSize内存的利用率。默认值0.95。

buf_pool_cfg

用户指定内存档位配置,提高内存申请性能和使用率。

KvCacheManager

表3 KvCacheManager接口

接口名称

简介

KvCacheManager构造函数

介绍KvCacheManager构造函数。

is_initialized

查询KvCacheManager实例是否已初始化。

allocate_cache

分配Cache,Cache分配成功后,会同时被cache_id与cache_keys引用,只有当这些引用都解除后,cache所占用的资源才会实际释放。

deallocate_cache

释放Cache。

remove_cache_key

移除CacheKey,仅当LLMRole为PROMPT时可调用。

pull_cache

根据CacheKey,从对应的Prompt节点拉取KV到本地KV Cache,仅当LLMRole为DECODER时可调用。

copy_cache

拷贝KV。

get_cache_tensors

获取cache tensor。

allocate_blocks_cache

PagedAttention场景下,分配多个blocks的Cache。

pull_blocks

PagedAttention场景下,根据BlocksCacheKey,通过block列表的方式从对应的Prompt节点拉取KV到本地KV Cache,仅当LLMRole为DECODER时可调用。

copy_blocks

PagedAttention场景下,拷贝KV。

swap_blocks

对cpu_cache和npu_cache进行换入换出。

transfer_cache_async

异步分层传输KV Cache。

KvCache

表4 KVCache接口

接口名称

简介

KvCache构造函数

构造KVCache。

cache_id

获取KvCache的id。

cache_desc

获取KvCache描述。

per_device_tensor_addrs

获取KvCache的地址。

create_cpu_cache

创建cpu cache。

LLMClusterInfo

表5 LLMClusterInfo接口

接口名称

简介

LLMClusterInfo构造函数

构造LLMClusterInfo。

remote_cluster_id

设置对端集群ID。

append_local_ip_info

添加本地集群IP信息。

append_remote_ip_info

添加远端集群IP信息。

CacheTask

表6 CacheTask

接口名称

简介

CacheTask构造函数

构造CacheTask。

synchronize

等待所有层传输完成,并获取整体执行结果。

get_results

等待所有层传输完成,并获取每个TransferConfig对应执行结果。

其他

表7 其他

接口名称

简介

LLMRole

LLMRole的枚举值。

Placement

CacheDesc的字段,表示cache所在的设备类型。

CacheDesc

构造CacheDesc。

CacheKey

构造CacheKey。

CacheKeyByIdAndIndex

构造CacheKeyByIdAndIndex,通常在pull_cache接口中作为参数类型使用。

BlocksCacheKey

PagedAttention场景下,构造BlocksCacheKey。

LayerSynchronizer

等待模型指定层执行完成,用户需要继承LayerSynchronizer并实现该接口。

该接口会在执行KvCacheManager.transfer_cache_async时被调用,当该接口返回成功,则开始当前层cache的传输。

TransferConfig

构造TransferConfig。

TransferWithCacheKeyConfig

构造TransferWithCacheKeyConfig。

LLMException

获取异常的错误码。错误码列表详见LLMStatusCode

LLMStatusCode

LLMStatusCode的枚举值。

DataType

DataType的枚举类。