AISynergy-core
AISynergy-core(AISyncore
)是一个面向协同训练任务的计算框架。作为AISynergy套件的计算核心,用户需要在server服务器端启动AISyncore的服务端程序,在协同计算的参与节点上,稍加修改自定义的算法,启动client训练任务,并指定server服务器的EIP和端口,即可开始执行AISynergy协同计算任务。AISyncore框架设计的特性有:
-
易用性: AISynergy用户,只需准备好带有算法脚本的容器环境,然后在算法代码中封装一行代码(需传入【'dl_framework', 'model', 'train_ds', 'test_ds', 'train_func', 'test_func' , ms可选的'callback'】),以及加入一句server端口配置的代码,即可快速启动协同训练任务。
-
框架自适应性: 用户初始化AISyncore.client.NumPyClientAdap时,传入当前算法使用的dl_framework深度学习框架字段,AISyncore即可自动适配不同框架特性,调用相应API,实现模型参数获取并上传server、server参数下拉及load进模型、模型训练、模型测试功能。用户只需执行一行代码,AISyncore.client.run_numpyAdap_client,即可启动协同训练任务。
-
可拓展性: AISyncore支持各种自定义的参数融合策略,支持训练各类自定义的算法,支持不同参与方使用异构深度学习框架。目前支持的通信协议为gRPC,后续将支持更多的通信方式,比如socket。
欢迎提问和交流,AISynergy!
协同计算框架介绍
協同計算架构如下图所示。协同计算的各参与方拥有自有数据,并且这些数据不会通过平台向第三方传播。各方参与方拥有私有的GPU、NPU、MLU、CPU算力,以及可控的本地深度学习框架(如Tensorflow、Pytorch、mindspore等)。各方参与方利用本地的算力和深度学习框架对私有数据进行训练,训练完成的结果通过协同计算平台进行融合计算。融合计算后的结果返回参与方。作为本地训练下一轮训练的模型初始值,由于本地模型训练过程中融入其他参与方的参数特征,此过程经过若干轮,本地模型的精度可以达到将数据集中训练时的模型精度。
内容简介
# 源码安装
python setup.py bdist_wheel
pip install dist/*
# 直接安装whl包
pip3 install whls/user_platform/AISyncore-0.1.0-py3-none-any.whl
主要技术特点
下面提供了一个简短的技术特点列表,其中包括:
- 接口灵活可用:用户只需要添加几行代码就可以将算法变为协同训练的算法,形成统一向上的接口
- 分布式性能更优:通过并行策略、显存优化、计算优化、网络拓扑通信优化等提供高效的分布式协同训练
- benchmark:提供benchmark,负责收集有关设备和训练模型的信息(内存、通信延迟、计算能力)等,提供每个子任务多个优化的协同计算资源分配方案
- 丰富的案例:提供不同框架、不同模型参数量的案例