imyzx 09e4c846c6 | 2 years ago | |
---|---|---|
.. | ||
Docs | 2 years ago | |
src/AISyncore | 2 years ago | |
LICENSE | 2 years ago | |
PKG-INFO | 2 years ago | |
README.md | 2 years ago | |
pyproject.toml | 2 years ago | |
setup.py | 2 years ago |
AISynergy-core(AISyncore
)是一个面向协同训练任务的计算框架。
本项目是基于flower发展而来,我们基于此拓展了协同计算场景下AI计算需要的功能和优化策略,如大模型参数分片传输、模型参数压缩传输、模型参数加密等。
作为AISynergy套件的计算核心,用户需要在server服务器端配置通信端口,并启动AISyncore的服务端程序,在协同计算的参与节点上,稍加修改自定义的算法,启动client训练任务,并指定server服务器的EIP和端口,即可开始执行AISynergy协同计算任务。AISyncore框架设计的特性有:
易用性: AISynergy用户,只需准备好带有算法脚本的容器环境,然后在算法代码中封装一行代码(需传入【'dl_framework', 'model', 'train_ds', 'test_ds', 'train_func', 'test_func' , mindspore模型训练时可选的'callback'】),以及加入一句server端口配置的代码,即可快速启动协同训练任务。
框架自适应性: 用户初始化AISyncore.client.NumPyClientAdap时,传入当前算法使用的dl_framework深度学习框架字段,AISyncore即可自动适配不同框架特性,调用相应API,实现模型参数获取并上传server、server参数下拉及load进模型、模型训练、模型测试功能。用户只需执行一行代码,AISyncore.client.run_numpyAdap_client,即可启动协同训练任务。
可拓展性: AISyncore支持各种自定义的参数融合策略,支持训练各类自定义的算法,支持不同参与方使用异构深度学习框架。目前支持的通信协议为gRPC,后续将支持更多的通信方式,比如socket。
欢迎提问和交流,AISynergy!
[协同计算框架介绍]
[AISyncore安装]
[AISyncore快速使用手册]
協同計算架构如下图所示。协同计算的各参与方拥有自有数据,并且这些数据不会通过平台向第三方传播。各方参与方拥有私有的GPU、NPU、MLU、CPU算力,以及可控的本地深度学习框架(如Tensorflow、Pytorch、mindspore等)。各方参与方利用本地的算力和深度学习框架对私有数据进行训练,训练完成的结果通过协同计算平台进行融合计算。融合计算后的结果返回参与方。作为本地训练下一轮训练的模型初始值,由于本地模型训练过程中融入其他参与方的参数特征,此过程经过若干轮,本地模型的精度可以达到将数据集中训练时的模型精度。
项目拉取
git clone https://git.openi.org.cn/PCL-Platform.Intelligence/AISynergy.git
cd AISynergy/AISynergy-core
# 源码安装
python setup.py bdist_wheel
pip install dist/*
# 快速使用手册
用户编写好模型训练的算法后,此时算法应该定义了[model, train_dataset, test_dataset, train_function, test_function]。只需修改几行代码,并明确算法使用的深度学习框架dl_framework,即可自适应框架,启动协同训练的服务端和客户端。客户端自适应框架接口为run_numpyAdap_client,目前支持将mindspore、pytorch框架的模型参数自动转换为numpy list进行通信传输。
### 1、在配置外网IP的参数服务器上
# 导入AISyncore
import AISyncore as aisc
# 定义参数融合策略strategy,默认采用联邦平均
strategy = aisc.server.strategy.FedAvg()
# 启动参数服务器(分配端口、配置融合轮次、导入融合策略、【可选】配置gRPC通信传输pb序列的限制长度)
aisc.server.run_server(
server_address="[::]:30003",
config={"num_rounds": 3},
strategy=strategy,
grpc_max_message_length=1536870912,
)
### 2、在训练参与方服务器上
# 导入AISyncore
import AISyncore as aisc
# 传入算法使用深度学习框架字符串,如'pytorch', 'mindspore',定义参数融合策略strategy,默认采用联邦平均
client = aisc.client.NumPyClientAdap('{your_algorithm_framework}', model, train_dataset, test_dataset, train_function, test_function, callbacks=None) # 注意如果使用mindspore框架进行训练,通常需要定义相关的回调函数callbacks
# 启动参数服务器(分配端口、配置融合轮次、导入融合策略、【可选】配置gRPC通信传输pb序列的限制长度)
aisc.client.run_numpyAdap_client("your_server_EIP:port", client)
鹏城众智AI协同计算平台AISynergy是一个分布式智能协同计算平台。该平台的目标是通过智算网络基础设施使能数据、算力、模型、网络和服务,完成跨多个智算中心的协同计算作业,进而实现全新计算范式和业务场景,如大模型跨域协同计算、多中心模型聚合、多中心联邦学习等。
Java Vue Python JavaScript Go other
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》