From 753035edd310d9a996870b02499357a3d51ffb62 Mon Sep 17 00:00:00 2001 From: binmakeswell Date: Fri, 18 Feb 2022 16:28:37 +0800 Subject: [PATCH] add Chinese README --- README-zh-Hans.md | 207 +++++++++++++++++++++++++++++++++++++++ README.md | 64 ++++++++---- docs/images/BERT_seq.png | Bin 0 -> 336616 bytes docs/images/GPT_2_3.png | Bin 0 -> 424715 bytes docs/images/ViT_TP.png | Bin 0 -> 345946 bytes 5 files changed, 253 insertions(+), 18 deletions(-) create mode 100644 README-zh-Hans.md create mode 100644 docs/images/BERT_seq.png create mode 100644 docs/images/GPT_2_3.png create mode 100644 docs/images/ViT_TP.png diff --git a/README-zh-Hans.md b/README-zh-Hans.md new file mode 100644 index 000000000..208f85671 --- /dev/null +++ b/README-zh-Hans.md @@ -0,0 +1,207 @@ +# Colossal-AI + +[![logo](./docs/images/Colossal-AI_logo.png)](https://www.colossalai.org/) + +
+

论文 | + 文档 | + 样例 | + 论坛 | + 博客

+
+ + [![Build](https://github.com/hpcaitech/ColossalAI/actions/workflows/PR_CI.yml/badge.svg)](https://github.com/hpcaitech/ColossalAI/actions/workflows/PR_CI.yml) + [![Documentation](https://readthedocs.org/projects/colossalai/badge/?version=latest)](https://colossalai.readthedocs.io/en/latest/?badge=latest) + [![codebeat badge](https://codebeat.co/badges/bfe8f98b-5d61-4256-8ad2-ccd34d9cc156)](https://codebeat.co/projects/github-com-hpcaitech-colossalai-main) + + | [English](README.md) | [中文](README-zh-Hans.md) | +
+一个整合高效并行技术的AI大模型训练系统。 + +## 特点 + +Colossal-AI为您提供了一系列并行训练组件。我们的目标是让您的分布式AI模型训练像普通的单GPU模型一样简单。我们提供的友好工具可以让您在几行代码内快速开始分布式训练。 + +- 数据并行 +- 流水线并行 +- 1维, 2维, 2.5维, 3维张量并行 +- 序列并行 +- 友好的trainer和engine +- 可扩展新的并行方式 +- 混合精度 +- 零冗余优化器 (ZeRO) + +## 样例 +### ViT + + + +- 14倍批大小 +- 5倍训练速度 + +### GPT-3 & GPT-2 + +![GPT_2_3](./docs/images/GPT_2_3.png) + +- GPT-3:释放 50% GPU 资源占用, 或 10.7% 加速 +- GPT-2:降低11倍GPU显存占用,或超线性扩展 + +### BERT + +![BERT_seq](./docs/images/BERT_seq.png) + +- 2倍训练速度 +- 1.5倍序列长度 + +请访问我们的[文档和教程](https://www.colossalai.org/)以了解详情。 + + +## 安装 + +### PyPI + +```bash +pip install colossalai +``` +该命令将会安装CUDA extension,如果你已安装CUDA, NVCC和torch。 + +如果你不想安装CUDA extension, 可在命令中添加`--global-option="--no_cuda_ext"`, 例如: +```bash +pip install colossalai --global-option="--no_cuda_ext" +``` + +如果你想使用`ZeRO`, 你可以使用: +```bash +pip install colossalai[zero] +``` + +### 从源代码安装 + +> Colossal-AI的版本将与该项目的主分支保持一致。欢迎通过issue反馈你遇到的任何问题 :) + +```shell +git clone https://github.com/hpcaitech/ColossalAI.git +cd ColossalAI +# 安装依赖 +pip install -r requirements/requirements.txt + +# 安装 colossalai +pip install . +``` + +如果你不想安装和使用CUDA kernel fusion (使用fused优化器需安装): + +```shell +pip install --global-option="--no_cuda_ext" . +``` + +## 使用 Docker + +运行以下命令从我们提供的docker文件中建立docker镜像。 + +```bash +cd ColossalAI +docker build -t colossalai ./docker +``` + +运行以下命令从以交互式启动docker镜像. + +```bash +docker run -ti --gpus all --rm --ipc=host colossalai bash +``` + +## 做出贡献 + +欢迎为该项目做出贡献,请参阅[贡献指南](./CONTRIBUTING.md)。 + + +## 快速预览 + +### Start Distributed Training in Lines + +```python +import colossalai +from colossalai.utils import get_dataloader + + +# my_config可以是config文件的路径或字典对象 +# 'localhost' 仅适用于单节点,在多节点时需指明节点名 +colossalai.launch( + config=my_config, + rank=rank, + world_size=world_size, + backend='nccl', + port=29500, + host='localhost' +) + +# 构建模型 +model = ... + +# 构建数据集, dataloader会默认处理分布式数据sampler +train_dataset = ... +train_dataloader = get_dataloader(dataset=dataset, + shuffle=True + ) + + +# 构建优化器 +optimizer = ... + +# 构建损失函数 +criterion = ... + +# 初始化colossalai +engine, train_dataloader, _, _ = colossalai.initialize( + model=model, + optimizer=optimizer, + criterion=criterion, + train_dataloader=train_dataloader +) + +# 开始训练 +engine.train() +for epoch in range(NUM_EPOCHS): + for data, label in train_dataloader: + engine.zero_grad() + output = engine(data) + loss = engine.criterion(output, label) + engine.backward(loss) + engine.step() + +``` + +### 构建一个简单的2维并行模型 + +假设我们有一个非常巨大的MLP模型,它巨大的hidden size使得它难以被单个GPU容纳。我们可以将该模型的权重以二维网格的形式分配到多个GPU上,且保持你熟悉的模型构建方式。 + +```python +from colossalai.nn import Linear2D +import torch.nn as nn + + +class MLP_2D(nn.Module): + + def __init__(self): + super().__init__() + self.linear_1 = Linear2D(in_features=1024, out_features=16384) + self.linear_2 = Linear2D(in_features=16384, out_features=1024) + + def forward(self, x): + x = self.linear_1(x) + x = self.linear_2(x) + return x + +``` + + +## 引用 + +``` +@article{bian2021colossal, + title={Colossal-AI: A Unified Deep Learning System For Large-Scale Parallel Training}, + author={Bian, Zhengda and Liu, Hongxin and Wang, Boxiang and Huang, Haichen and Li, Yongbin and Wang, Chuanrui and Cui, Fan and You, Yang}, + journal={arXiv preprint arXiv:2110.14883}, + year={2021} +} +``` diff --git a/README.md b/README.md index 93282185f..65e05991b 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,52 @@ [![Build](https://github.com/hpcaitech/ColossalAI/actions/workflows/PR_CI.yml/badge.svg)](https://github.com/hpcaitech/ColossalAI/actions/workflows/PR_CI.yml) [![Documentation](https://readthedocs.org/projects/colossalai/badge/?version=latest)](https://colossalai.readthedocs.io/en/latest/?badge=latest) [![codebeat badge](https://codebeat.co/badges/bfe8f98b-5d61-4256-8ad2-ccd34d9cc156)](https://codebeat.co/projects/github-com-hpcaitech-colossalai-main) + + | [English](README.md) | [中文](README-zh-Hans.md) | An integrated large-scale model training system with efficient parallelization techniques. + +## Features + +Colossal-AI provides a collection of parallel training components for you. We aim to support you to write your +distributed deep learning models just like how you write your single-GPU model. We provide friendly tools to kickstart +distributed training in a few lines. + +- Data Parallelism +- Pipeline Parallelism +- 1D, 2D, 2.5D, 3D tensor parallelism +- Sequence parallelism +- Friendly trainer and engine +- Extensible for new parallelism +- Mixed Precision Training +- Zero Redundancy Optimizer (ZeRO) + +## Examples +### ViT + + + +- 14x larger batch size +- 5x faster training + +### GPT-3 & GPT-2 + +![GPT_2_3](./docs/images/GPT_2_3.png) + +- Free 50% GPU resources, or 10.7% acceleration for GPT-3 +- 11x lower GPU RAM, or superlinear scaling for GPT-2 + +### BERT + +![BERT_seq](./docs/images/BERT_seq.png) + +- 2x faster training +- 50% longer sequence length + +Please visit our [documentation and tutorials](https://www.colossalai.org/) for more details. + + ## Installation ### PyPI @@ -37,7 +80,7 @@ pip install colossalai[zero] ### Install From Source -> The documentation will be in line with the main branch of the repository. Feel free to raise an issue if you encounter any problem. :) +> The version of Colossal-AI will be in line with the main branch of the repository. Feel free to raise an issue if you encounter any problem. :) ```shell git clone https://github.com/hpcaitech/ColossalAI.git @@ -107,13 +150,13 @@ train_dataloader = get_dataloader(dataset=dataset, ) -# build your +# build your optimizer optimizer = ... # build your loss function criterion = ... -# build your lr_scheduler +# initialize colossalai engine, train_dataloader, _, _ = colossalai.initialize( model=model, optimizer=optimizer, @@ -157,21 +200,6 @@ class MLP_2D(nn.Module): ``` -## Features - -Colossal-AI provides a collection of parallel training components for you. We aim to support you to write your -distributed deep learning models just like how you write your single-GPU model. We provide friendly tools to kickstart -distributed training in a few lines. - -- Data Parallelism -- Pipeline Parallelism -- 1D, 2D, 2.5D, 3D and sequence parallelism -- Friendly trainer and engine -- Extensible for new parallelism -- Mixed Precision Training -- Zero Redundancy Optimizer (ZeRO) - -Please visit our [documentation and tutorials](https://www.colossalai.org/) for more details. ## Cite Us diff --git a/docs/images/BERT_seq.png b/docs/images/BERT_seq.png new file mode 100644 index 0000000000000000000000000000000000000000..1cdf782698b929ff68ff4d9fd1beebbc92d48856 GIT binary patch literal 336616 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�!ht_}3q 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
i+XQfvbt8uXote|?5_Dp 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