贡献指南

欢迎加入 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

写作风格

  • 使用清晰、简洁的语言

  • 包含代码示例和预期输出

  • 为复杂概念添加图表

  • 保持中英文版本同步

问题报告

报告之前

  1. 检查现有 issues

  2. 搜索 discussions

  3. 尝试main分支的最新版本

问题模板

主要包含Bug报告特性请求两个问题模板,可以参考issue提交界面。