开源之夏是由“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展,培养和发掘更多优秀的开发者。
活动联合国内外各大开源社区,针对重要开源软件的开发与维护提供项目任务,并面向全球高校学生开放报名。
2023 年,DLRover 社区加入中国科学院软件研究所的高校开源活动——“开源之夏 2023”,一共为大家准备了四个任务,涉及 AI、Python、Linux、Kubernetes、Deep learning、Docker、Algorithm 等多个领域。
DLRover 项目介绍
DLRover_(Distributed Deep Learning System)_是蚂蚁集团 AI Infra 团队维护的开源社区,是基于云原生技术打造的自动分布式深度学习系统。DLover 使得开发人员能够专注于模型架构的设计,而无需处理任何工程方面的细节,例如硬件加速和分布式运行等。目前,DLRover 支持使用 K8s、Ray 进行自动化操作和维护深度学习训练任务。
活动规则
开源之夏官网:
各位同学可以自由选择项目,与社区导师沟通实现方案并撰写项目计划书。被选中的学生将在社区导师指导下,按计划完成开发工作,并将成果贡献给社区。社区评估学生的完成度,主办方根据评估结果发放资助金额给学生。
DLRover 社区项目
项目链接:https://m.summer-ospp.ac.cn/org/orgdetail/3dd008dd-3875-4ee1-bd2c-016202e58f86
项目社区导师:长凡
数据并行同步训练自动资源配置算法
项目编号:233dd0048
项目难度:基础/Basic
在同步数据并行训练中,每个 Worker 计算一个 Micro Batch 后会和其他 Worker 通过 Allreduce 同步梯度,然后更新模型参数。Worker 数量会影响 Batch Size 和通信开销。Batch Size 会继而影响模型精度,而通信开销会影响训练吞吐,因此如何为模型寻找合适的 Worker 数量来提升训练吞吐和精度是比较难的。现阶段用户需要反复提交作业来寻找最优的配置。DLRover 现在支持数据并行的弹性训练,可以在训练过程中改变 Worker 数量,从而寻找最优的数量配置。
-
需要输出代码、文档、实验报告。
-
需要熟练使用 Kubernetes、Python。
项目社区导师:玄钛
支持 TorchRec 的弹性容错
项目编号:233dd0049
项目难度:基础/Basic
TorchRec 是 PyTorch 支持大规模推荐模型的框架,其训练采用同步的模型并行加数据并行训练。我们在云集群上提交 TorchRec 的分布式训练作业时,需要考虑容错和弹性。目前,DLRover 实现了数据并行训练和节点的容错与弹性调度,支持了 PyTorch 的 DDP。对于 DeepRec 模型并行训练,节点出错后需要考虑两种方式:节点重新拉起来恢复训练;节点资源被抢占,需要更新设备上的模型分片。
-
需要输出代码、文档、实验报告。
-
需要熟练使用 Kubernetes、Python、PyTorch。
项目社区导师:旧客
支持 Zero Redundancy Optimizer 分布式训练的弹性容错
项目编号:233dd0050
项目难度:基础/Basic
为了降低大模型数据并行训练时,单个节点的内存需求,Zero Redundancy Optimizer 将模型和优化期状态切分到多个 Worker 节点上,每个 Worker 并不再拥有完整的模型。这种情况下如何实现弹性容错相比简单的数据并行难点更大。在导出 Check Point 时候,每个 Worker 都要参与,在 Worker 数量变化后,模型和优化器的状态分片需要根据当前 Worker 数量进行调整。
-
需要输出代码、文档、实验报告。
-
需要熟练使用 Kubernetes、Python、PyTorch。
申请资格
-
本活动面向年满 18 周岁在校学生。
-
暑期即将毕业的学生,只要在申请时学生证处在有效期内,就可以提交申请。
-
中国籍学生参与活动需提供身份证、学生证、教育部学籍在线验证报告(学信网)或在读证明。
-
外籍学生参与活动需提供护照,同时提供录取通知书、学生卡、在读证明等文件用于证明学生身份。
活动流程