CANN/hixl LLM配置指南
LLMConfig【免费下载链接】hixlHIXLHuawei Xfer Library是一个灵活、高效的昇腾单边通信库面向集群场景提供简单、可靠、高效的点对点数据传输能力。项目地址: https://gitcode.com/cann/hixl产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√说明针对Atlas A2 训练系列产品/Atlas A2 推理系列产品仅支持Atlas 800I A2 推理服务器、A200I A2 Box 异构组件。LLMConfig构造函数函数功能构造LLMConfig调用init接口需要传入一个配置项字典为了简化配置可以通过此类来构造该配置项字典。Decode和Prompt可以双向拉取Cache。该模式下的相关接口包括enable_cache_manager、mem_pool_cfg和listen_ip_info。函数原型__init__()参数说明无调用示例from llm_datadist import LLMConfig llm_config LLMConfig()返回值返回LLMConfig的实例。约束说明无generate_options函数功能生成配置项字典。函数原型generate_options()参数说明无调用示例from llm_datadist import LLMConfig llm_config LLMConfig() ... engine_options llm_config.generate_options()返回值返回配置项字典。约束说明无device_id函数功能设置当前进程Device ID对应底层ge.exec.deviceId配置项。函数原型device_id(device_id)参数说明参数名称数据类型取值说明device_idUnion[int, List[int], Tuple[int]]设置当前进程的Device ID。当前只支持配置一个调用示例from llm_datadist import LLMConfig llm_config LLMConfig() llm_config.device_id 0返回值正常情况下无返回值。参数错误可能抛出TypeError或ValueError。约束说明无sync_kv_timeout函数功能配置pull_cache、pull_blocks、push_blocks、push_cache接口的超时时间对应底层llm.SyncKvCacheWaitTime配置项。函数原型sync_kv_timeout(sync_kv_timeout)参数说明参数名称数据类型取值说明sync_kv_timeoutint或str同步kv超时时间单位ms。不配置默认为1000ms。调用示例from llm_datadist import LLMConfig llm_config LLMConfig() llm_config.sync_kv_timeout 1000返回值正常情况下无返回值。参数错误可能抛出TypeError或ValueError。约束说明无ge_options函数功能配置额外的GE配置项。函数原型ge_options(ge_options)参数说明参数名称数据类型取值说明ge_optionsdict[str, str]配置GE配置项。其中ge.flowGraphMemMaxSize比较重要表示所有KV cache占用的最大内存如果设置的过大会压缩模型的可用内存需根据实际情况指定。调用示例from llm_datadist import LLMConfig ge_options { ge.flowGraphMemMaxSize: 4106127360 } llm_config LLMConfig() llm_config.ge_options ge_options返回值正常情况下无返回值。参数错误可能抛出TypeError或ValueError。约束说明无listen_ip_info函数功能设置集群侦听信息对应底层llm.listenIpInfo配置项。函数原型listen_ip_info(listen_ip_info)参数说明参数名称数据类型取值说明listen_ip_infostr设置为Host侧的IP地址和端口支持配置为一个例如192.168.1.1:26000调用示例from llm_datadist import LLMConfig llm_config LLMConfig() llm_config.listen_ip_info 192.168.1.1:26000返回值正常情况下无返回值。参数错误可能抛出TypeError或ValueError。约束说明无enable_cache_manager函数功能配置是否开启CacheManager模式对应底层llm.EnableCacheManager配置项。函数原型enable_cache_manager(self, enable_cache_manager: bool)参数说明参数名称数据类型取值说明enable_cache_managerbool是否开启CacheManager模式。需配置为开启。- True开启。- False不开启不配置默认为不开启。Ascend 950PR/Ascend 950DT场景下不支持配置为False。调用示例from llm_datadist import LLMConfig llm_config LLMConfig() llm_config.enable_cache_manager True返回值正常情况下无返回值。参数错误可能抛出TypeError或ValueError。约束说明无enable_remote_cache_accessible函数功能配置是否开启远端Cache可直接访问功能。开启该Option后会在本地缓存远端Cache元数据索引内存地址等从而加速Pull流程。但也会引入相关约束详见“约束说明”。函数原型enable_remote_cache_accessible(self, enable_remote_cache_accessible: bool)参数说明参数名称数据类型取值说明enable_remote_cache_accessiblebool是否开启远端Cache可直接访问功能。取值如下。- True开启- False不开启默认为不开启。不开启该option时Atlas A3 训练系列产品/Atlas A3 推理系列产品仅支持RDMA传输协议。建议开启该option以支持更多类型的传输协议。不开启该option时Atlas A3 训练系列产品/Atlas A3 推理系列产品仅支持RDMA传输协议。建议开启该option以支持更多类型的传输协议。Ascend 950PR/Ascend 950DT场景下不支持配置为False。调用示例from llm_datadist import LLMConfig llm_config LLMConfig() llm_config.enable_remote_cache_accessible True返回值正常情况下无返回值。参数错误可能抛出TypeError或ValueError。约束说明索引的更新只在第一次Pull时触发对端在第一次Pull之后的Cache操作对本端不可见。用户需要保证Cache的有效性。所以该Option更适用于PA的场景因为该场景下Cache只会在用户脚本初始化阶段分配/注册而不会频繁改变。rdma_traffic_class函数功能用于配置RDMA网卡的traffic class。函数原型rdma_traffic_class(self, rdma_traffic_class: int)参数说明参数名称数据类型取值说明rdma_traffic_classint用于配置RDMA网卡的traffic class。和环境变量HCCL_RDMA_TC功能如同时配置当前option优先级更高未同时配置以配置的一方为准。取值范围为[0,255]且需要配置为4的整数倍默认值为132。如上表格中的环境变量请参考《环境变量参考》。调用示例from llm_datadist import LLMConfig llm_config LLMConfig() llm_config.rdma_traffic_class 100返回值正常情况下无返回值。参数错误可能抛出TypeError或ValueError。约束说明无。rdma_service_level函数功能用于配置RDMA网卡的service level。函数原型rdma_service_level(self, rdma_service_level: int)参数说明参数名称数据类型取值说明rdma_service_levelint用于配置RDMA网卡的service level。和环境变量HCCL_RDMA_SL功能相同如同时配置当前option优先级更高未同时配置以配置的一方为准。取值范围为[0, 7]默认值为4。如上表格中的环境变量请参考《环境变量参考》。调用示例from llm_datadist import LLMConfig llm_config LLMConfig() llm_config.rdma_service_level 2返回值正常情况下无返回值。参数错误可能抛出TypeError或ValueError。约束说明无。local_comm_res函数功能用于配置本地通信资源。函数原型local_comm_res(local_comm_res)参数说明参数名称数据类型取值说明local_comm_resstr配置本地通信资源信息格式是json的字符串。仅需配置ranktable中当前llm datadist所使用Device信息无需配置ranktable中的server_count和rank_id字段。若未配置enable_cache_manager和enable_remote_cache_accessible参数在配置了当前option后这两个参数默认为True。Atlas A2 训练系列产品/Atlas A2 推理系列产品场景下仅需配置ranktable中当前llm datadist所使用Device信息无需配置ranktable中的server_count和rank_id字段。ranktable具体信息请参见《HCCL集合通信库用户指南》。配置示例如下。{ server_list: [ { device: [ { device_id: 0, device_ip: x.x.x.x }, ], server_id: xxxx } ], status: completed, version: 1.0 }该字段可以配置为空示例如下。local_comm_res Atlas A3 训练系列产品/Atlas A3 推理系列产品场景下仅需配置ranktable中当前llm datadist所使用Device信息无需配置ranktable中的server_count和rank_id字段。ranktable具体信息请参见《HCCL集合通信库用户指南》。配置示例如下。{ server_list: [ { device: [ { device_id: 0, device_ip: x.x.x.x }, ], server_id: xxxx } ], status: completed, version: 1.0 }该字段可以配置为空示例如下。local_comm_res Ascend 950PR/Ascend 950DT场景的配置格式参考gitcode同时需要使能transfer_backend为hixl传输后端。不支持配置为空。调用示例from llm_datadist import LLMConfig llm_config LLMConfig() llm_config.local_comm_res { status: completed, version: 1.0, server_list: [ { server_id: node_0, device: [ { device_id: 0, device_ip: x.x.x.x } ] } ] }返回值正常情况下无返回值。参数错误可能抛出TypeError或ValueError。约束说明配置了该option后存在如下约束。调用link_clusters或unlink_clusters时如果local_comm_res不为空则不需要配置“clusters”参数中的“append_local_ip_info”信息。如果local_comm_res为空则需要配置“clusters”参数中的“append_local_ip_info”信息。当前不支持enable_cache_manager和enable_remote_cache_accessible配置为“False”的场景。link_total_time函数功能用于配置HCCL建链失败的总超时时间。函数原型link_total_time(self, link_total_time: int)参数说明参数名称数据类型取值说明link_total_timeint用于配置HCCL的建链超时时间单位是秒在总超时时间内会根据重试次数来进行重试。取值范围为[0, 2^32-1], 默认值为0可不配置不配置自动传入0传入0后会自行读取HCCL_CONNECT_TIMEOUT环境变量默认120s。调用示例from llm_datadist import LLMConfig llm_config LLMConfig() llm_config.link_total_time 20返回值正常情况下无返回值。参数错误可能抛出TypeError或ValueError。约束说明无。link_retry_count函数功能用于配置HCCL建链失败的重试次数。函数原型link_retry_count(link_retry_count)参数说明参数名称数据类型取值说明link_retry_countint用于配置HCCL建链失败的重试次数单位是次在总超时时间内会根据重试次数来进行重试。取值范围为[1, 100]默认值为1可不配置不配置自动传入1。调用示例from llm_datadist import LLMConfig llm_config LLMConfig() llm_config.link_retry_count 2返回值正常情况下无返回值。参数错误可能抛出TypeError或ValueError。约束说明无transfer_backend函数功能用于配置LLM-DataDist使用的传输后端。函数原型transfer_backend(transfer_backend)参数说明参数名称数据类型取值说明transfer_backendstr取值为“hixl”指定hixl作为传输引擎后端。调用示例ffrom llm_datadist import LLMConfig llm_config LLMConfig() llm_config.transfer_backend hixl返回值正常情况下无返回值。参数错误可能抛出TypeError或ValueError。约束说明初始化option需指定listen_ip_info当配置使用hixl传输后端时每个传输端既可作为Client也可以作为Server。与对端发起传输前需要调用link_clusters发起建链。【免费下载链接】hixlHIXLHuawei Xfer Library是一个灵活、高效的昇腾单边通信库面向集群场景提供简单、可靠、高效的点对点数据传输能力。项目地址: https://gitcode.com/cann/hixl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考