贡献指南
欢迎加入 Hetu-Galvatron 社区!我们很兴奋能够与您一起推进大规模AI模型的自动分布式训练技术。
完整贡献指南: 查看我们的 CONTRIBUTING.md 文件,了解详细的环境设置说明、编码标准和社区信息。
如何贡献
代码贡献
我们欢迎各种类型的代码贡献:
高影响力领域
新的并行策略: 实现新颖的并行训练方法
硬件支持: 为新的GPU/TPU架构添加支持
性能优化: 提升训练效率和内存使用
新结构模型: 如多模态模型等,扩展超越语言模型的支持
新手友好任务
文档: 改进代码注释和用户指南
Bug修复: 解决标记为
good first issue的问题测试: 添加单元测试和集成测试
示例: 创建教程和示例脚本
硬件和模型测量: 为新的硬件和模型添加测量数据
非代码贡献
您的专业知识在编码之外同样宝贵:
文档翻译: 帮助让Galvatron在全球范围内更易使用
社区支持: 在问题和讨论中回答问题
教程创作: 编写博客文章、视频或研讨会
测试反馈: 试用新功能并报告您的体验
技术推广: 在会议或聚会上展示Galvatron
快速开始指南
开发环境设置
# Fork并克隆仓库
git clone https://github.com/your-username/Hetu-Galvatron.git
cd Hetu-Galvatron
# 设置开发环境
conda create -n galvatron-dev python=3.8
conda activate galvatron-dev
# 以开发模式安装
pip install -r requirements.txt
pip install -e .
进行您的第一次贡献
# 为您的功能创建新分支
git checkout -b feature/your-awesome-feature
# 进行更改
# ... 编辑文件 ...
# 测试您的更改
python -m pytest tests/
# 提交并附上清晰的消息
git add .
git commit -m "[Runtime] feat: add awesome new feature"
# 推送并创建PR
git push origin feature/your-awesome-feature
代码标准
提交消息
类似于 约定式提交:
[修改模块]<类型>(<范围>): <描述>
修改模块:Runtime, Search Engine, Profiler, Misc
类型: feat, fix, docs, style, refactor, test, chore
示例: feat(profiler): add GPU memory profiling support
测试
为新功能编写测试
保持测试覆盖率在80%以上
使用pytest作为测试框架
模拟外部依赖
新手上路——尝试进行硬件和模型测量
在models文件夹中,我们提供了一些示例模型,并在模型的configs文件夹中提供了模型的计算和内存测量信息,以及推荐的并行策略。但是,对于所有模型和硬件设备都测量出对应的测量数据是不现实的,因此我们鼓励您进行不同的硬件和模型测量,并提交PR。具体的测量方法可以参考使用 Galvatron 进行性能分析章节。
文档指南
文档类型
API文档: 所有公共函数的文档字符串
用户指南: 逐步教程
开发者指南: 技术实现细节
示例: 完整的工作代码样本
本地构建文档
# 英文文档
cd docs/en
make html
open _build/html/index.html
# 中文文档
cd docs/zh_CN
make html
open _build/html/index.html
写作风格
使用清晰、简洁的语言
包含代码示例和预期输出
为复杂概念添加图表
保持中英文版本同步
问题报告
报告之前
检查现有 issues
搜索 discussions
尝试main分支的最新版本
问题模板
主要包含Bug报告和特性请求两个问题模板,可以参考issue提交界面。