PatrickStar是由腾讯WeChat AI团队开发的大规模预训练模型并行训练框架。它通过创新的内存管理技术,使得在有限的硬件资源下训练更大规模的模型成为可能。PatrickStar的主要特点包括:
安装PatrickStar:
docker pull nvcr.io/nvidia/pytorch:21.06-py3
使用示例:
from patrickstar.runtime import initialize_engine config = { "optimizer": { "type": "Adam", "params": { "lr": 0.001, "betas": (0.9, 0.999), "eps": 1e-6, "weight_decay": 0, "use_hybrid_adam": True, }, }, "fp16": { "enabled": True, "loss_scale": 0, "initial_scale_power": 2 ** 3, "loss_scale_window": 1000, "hysteresis": 2, "min_loss_scale": 1, }, "default_chunk_size": 64 * 1024 * 1024, "release_after_init": True, "use_cpu_embedding": False, } def model_func(): return MyModel(...) model, optimizer = initialize_engine(model_func=model_func, local_rank=0, config=config)
运行基准测试:
bash examples/run_transformers.sh
PatrickStar GitHub仓库: 包含源码、文档和示例。
详细设计文档: 深入了解PatrickStar的内部实现原理。
使用指南: 提供了详细的使用说明和最佳实践。
优化选项文档: 介绍了如何优化PatrickStar的性能。
更新日志: 了解PatrickStar的最新特性和改进。
基准测试结果: 查看PatrickStar与其他框架的性能对比。
如果您想深入了解PatrickStar的技术细节,可以阅读以下论文:
Fang, J., Yu, Y., Zhu, Z., Li, S., You, Y., & Zhou, J. (2021). PatrickStar: Parallel Training of Pre-trained Models via a Chunk-based Memory Management. arXiv preprint arXiv:2108.05818.
Fang, J., Zhu, Z., Li, S., Su, H., Yu, Y., Zhou, J., & You, Y. (2022). Parallel Training of Pre-Trained Models via Chunk-Based Dynamic Memory Management. IEEE Transactions on Parallel and Distributed Systems, 34(1), 304-315.