EMS存储初始化
功能说明
Ems是访问EMS服务的Python客户端,它为调用者提供一系列与EMS服务进行交互的接口,提供EMS内存池健康检查等能力,以及ContextCaching等存储功能。
方法定义
init(config)
构造函数参数描述
参数名称 |
参数类型 |
是否必选 |
描述 |
---|---|---|---|
config |
是 |
参数解释: EMS存储SDK初始化配置。 约束限制: 不能为None。 取值范围: 无。 默认取值: 无。 |
|
access_id |
string |
否 |
参数解释: 业务访问内存池身份凭证,由用户指定并保证唯一性,用于多租隔离场景。 约束限制: 长度 1~512 个字符;支持数字、小写字母 "."、"-"、"_";需全局唯一。 取值范围: 符合上述规则的字符串 默认取值: None |
access_key |
string |
否 |
参数解释: SDK 访问内存池资源的密钥,与 access_id 配合使用,需要通过控制面 Restful 接口预先申请。 约束限制: 长度 32~256 个字符;支持数字、大小写字母、"+"、"/"、"="。 取值范围: 符合上述规则的字符串 默认取值: None |
参数名称 |
参数类型 |
是否必选 |
描述 |
---|---|---|---|
rank_id |
int |
是 |
参数解释: 当前计算进程,使用加速卡的全局rank ID。 约束限制:
取值范围: [0,当前实例rank个数)。 默认取值: 无。 |
device_id |
int |
是 |
参数解释: 当前计算进程,使用加速卡的本地节点rank ID。 约束限制:
取值范围: [0,当前实例本节点内rank个数) 默认取值: 无。 |
model_id |
string |
是 |
参数解释: 唯一标识当前实例使用的推理模型ID。 约束限制:
取值范围: 无。 默认取值: 无。 |
tp_world_size |
int |
否 |
参数解释: 实例TP并行度。 约束限制: 必须为数字。 取值范围: [1,当前实例总rank数]。 默认取值: 1。 |
pp_world_size |
int |
否 |
参数解释: 实例PP并行度。 约束限制: 必须为数字。 取值范围: [1,当前实例总rank数]。 默认取值: 1。 |
rank_in_tp_group |
int |
否 |
参数解释: 实例TP索引。 约束限制: 必须为数字。 取值范围: [0,当前实例rank个数)。 默认取值: 0。 |
rank_in_pp_group |
int |
否 |
参数解释: 实例PP索引。 约束限制: 必须为数字。 取值范围: [0,当前实例rank个数)。 默认取值: 0。 |
llm_engine |
string |
否 |
参数解释: 当前实例的推理引擎。 约束限制: 必须为字符串。 取值范围: 无(通常为"vllm",如需对接其他推理引擎时可修改)。 默认取值: "vllm"。 |
kvcache_type |
否 |
参数解释: 指定KVCache的实现类型。 约束限制: 必须为字符串枚举值。 取值范围: "GQA"、"MHA"、"MLA"、"MQA"。 默认取值: "MHA"。 |
代码样例
- 初始化Ems,示例为支持ContextCaching对象初始化:
# 引入模块 import os from ems import Ems, EmsConfig, EmsException, CcConfig # 初始化cc配置 cc_config = CcConfig(rank_id=8, device_id=0, model_id="llama2-13b") # 初始化Ems config = EmsConfig(cc_config=cc_config) try: Ems.init(config) except EmsException as e: print(f"exception: {e}.")

- 一个进程中只会初始化一次Ems,以及Context Caching对象。