README.md 14.7 KB
Newer Older
1
# Colossal-AI
2
<div id="top" align="center">
3

4
5
   [![logo](https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/Colossal-AI_logo.png)](https://www.colossalai.org/)

binmakeswell's avatar
binmakeswell committed
6
   Colossal-AI: A Unified Deep Learning System for Big Model Era
7

8
9
10
11
   <h3> <a href="https://arxiv.org/abs/2110.14883"> Paper </a> | 
   <a href="https://www.colossalai.org/"> Documentation </a> | 
   <a href="https://github.com/hpcaitech/ColossalAI-Examples"> Examples </a> |   
   <a href="https://github.com/hpcaitech/ColossalAI/discussions"> Forum </a> | 
12
   <a href="https://medium.com/@hpcaitech"> Blog </a></h3>
13

Frank Lee's avatar
Frank Lee committed
14
   [![Build](https://github.com/hpcaitech/ColossalAI/actions/workflows/build.yml/badge.svg)](https://github.com/hpcaitech/ColossalAI/actions/workflows/build.yml)
15
   [![Documentation](https://readthedocs.org/projects/colossalai/badge/?version=latest)](https://colossalai.readthedocs.io/en/latest/?badge=latest)
16
   [![CodeFactor](https://www.codefactor.io/repository/github/hpcaitech/colossalai/badge)](https://www.codefactor.io/repository/github/hpcaitech/colossalai)
Frank Lee's avatar
Frank Lee committed
17
   [![HuggingFace badge](https://img.shields.io/badge/%F0%9F%A4%97HuggingFace-Join-yellow)](https://huggingface.co/hpcai-tech)
binmakeswell's avatar
binmakeswell committed
18
   [![slack badge](https://img.shields.io/badge/Slack-join-blueviolet?logo=slack&amp)](https://join.slack.com/t/colossalaiworkspace/shared_invite/zt-z7b26eeb-CBp7jouvu~r0~lcFzX832w)
19
   [![WeChat badge](https://img.shields.io/badge/微信-加入-green?logo=wechat&amp)](https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/WeChat.png)
Frank Lee's avatar
Frank Lee committed
20
   
binmakeswell's avatar
binmakeswell committed
21
22

   | [English](README.md) | [中文](README-zh-Hans.md) |
23

24
</div>
ver217's avatar
ver217 committed
25

binmakeswell's avatar
binmakeswell committed
26
27
## Latest News

binmakeswell's avatar
binmakeswell committed
28
29
30
31
32
* [2022/11] [Diffusion Pretraining and Hardware Fine-Tuning Can Be Almost 7X Cheaper](https://www.hpc-ai.tech/blog/diffusion-pretraining-and-hardware-fine-tuning-can-be-almost-7x-cheaper)
* [2022/10] [Use a Laptop to Analyze 90% of Proteins, With a Single-GPU Inference Sequence Exceeding 10,000](https://www.hpc-ai.tech/blog/use-a-laptop-to-analyze-90-of-proteins-with-a-single-gpu-inference-sequence-exceeding)
* [2022/10] [Embedding Training With 1% GPU Memory and 100 Times Less Budget for Super-Large Recommendation Model](https://www.hpc-ai.tech/blog/embedding-training-with-1-gpu-memory-and-10-times-less-budget-an-open-source-solution-for)
* [2022/09] [HPC-AI Tech Completes $6 Million Seed and Angel Round Fundraising](https://www.hpc-ai.tech/blog/hpc-ai-tech-completes-6-million-seed-and-angel-round-fundraising-led-by-bluerun-ventures-in-the)
* [2022/07] [Colossal-AI Seamlessly Accelerates Large Models at Low Costs with Hugging Face](https://www.hpc-ai.tech/blog/colossal-ai-seamlessly-accelerates-large-models-at-low-costs-with-hugging-face)
binmakeswell's avatar
binmakeswell committed
33

34
35
## Table of Contents
<ul>
binmakeswell's avatar
binmakeswell committed
36
 <li><a href="#Why-Colossal-AI">Why Colossal-AI</a> </li>
37
38
 <li><a href="#Features">Features</a> </li>
 <li>
binmakeswell's avatar
binmakeswell committed
39
   <a href="#Parallel-Training-Demo">Parallel Training Demo</a> 
40
41
42
43
   <ul>
     <li><a href="#GPT-3">GPT-3</a></li>
     <li><a href="#GPT-2">GPT-2</a></li>
     <li><a href="#BERT">BERT</a></li>
binmakeswell's avatar
binmakeswell committed
44
     <li><a href="#PaLM">PaLM</a></li>
binmakeswell's avatar
binmakeswell committed
45
     <li><a href="#OPT">OPT</a></li>
46
     <li><a href="#ViT">ViT</a></li>
47
     <li><a href="#Recommendation-System-Models">Recommendation System Models</a></li>
48
49
   </ul>
 </li>
50
 <li>
binmakeswell's avatar
binmakeswell committed
51
   <a href="#Single-GPU-Training-Demo">Single GPU Training Demo</a> 
52
53
54
55
56
   <ul>
     <li><a href="#GPT-2-Single">GPT-2</a></li>
     <li><a href="#PaLM-Single">PaLM</a></li>
   </ul>
 </li>
binmakeswell's avatar
binmakeswell committed
57
 <li>
binmakeswell's avatar
binmakeswell committed
58
   <a href="#Inference-Energon-AI-Demo">Inference (Energon-AI) Demo</a> 
binmakeswell's avatar
binmakeswell committed
59
60
   <ul>
     <li><a href="#GPT-3-Inference">GPT-3</a></li>
binmakeswell's avatar
binmakeswell committed
61
     <li><a href="#OPT-Serving">OPT-175B Online Serving for Text Generation</a></li>
62
     <li><a href="#BLOOM-Inference">175B BLOOM</a></li>
binmakeswell's avatar
binmakeswell committed
63
   </ul>
64
65
 </li>
   <li>
fastalgo's avatar
fastalgo committed
66
   <a href="#Colossal-AI-in-the-Real-World">Colossal-AI for Real World Applications</a> 
67
   <ul>
binmakeswell's avatar
binmakeswell committed
68
     <li><a href="#AIGC">AIGC: Acceleration of Stable Diffusion</a></li>
binmakeswell's avatar
binmakeswell committed
69
     <li><a href="#Biomedicine">Biomedicine: Acceleration of AlphaFold Protein Structure</a></li>
70
   </ul>
binmakeswell's avatar
binmakeswell committed
71
 </li>
72
73
74
75
76
77
78
79
80
81
82
83
 <li>
   <a href="#Installation">Installation</a>
   <ul>
     <li><a href="#PyPI">PyPI</a></li>
     <li><a href="#Install-From-Source">Install From Source</a></li>
   </ul>
 </li>
 <li><a href="#Use-Docker">Use Docker</a></li>
 <li><a href="#Community">Community</a></li>
 <li><a href="#contributing">Contributing</a></li>
 <li><a href="#Cite-Us">Cite Us</a></li>
</ul>
binmakeswell's avatar
binmakeswell committed
84

binmakeswell's avatar
binmakeswell committed
85
86
87
88
89
90
## Why Colossal-AI
<div align="center">
   <a href="https://youtu.be/KnXSfjqkKN0">
   <img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/JamesDemmel_Colossal-AI.png" width="600" />
   </a>

fastalgo's avatar
fastalgo committed
91
   Prof. James Demmel (UC Berkeley): Colossal-AI makes training AI models efficient, easy, and scalable.
binmakeswell's avatar
binmakeswell committed
92
93
94
95
</div>

<p align="right">(<a href="#top">back to top</a>)</p>

binmakeswell's avatar
binmakeswell committed
96
97
## Features

binmakeswell's avatar
binmakeswell committed
98
Colossal-AI provides a collection of parallel components for you. We aim to support you to write your
fastalgo's avatar
fastalgo committed
99
distributed deep learning models just like how you write your model on your laptop. We provide user-friendly tools to kickstart
binmakeswell's avatar
binmakeswell committed
100
distributed training and inference in a few lines.
binmakeswell's avatar
binmakeswell committed
101

Jiarui Fang's avatar
Jiarui Fang committed
102
103
104
- Parallelism strategies
  - Data Parallelism
  - Pipeline Parallelism
binmakeswell's avatar
binmakeswell committed
105
106
  - 1D, [2D](https://arxiv.org/abs/2104.05343), [2.5D](https://arxiv.org/abs/2105.14500), [3D](https://arxiv.org/abs/2105.14450) Tensor Parallelism
  - [Sequence Parallelism](https://arxiv.org/abs/2105.13120)
binmakeswell's avatar
binmakeswell committed
107
  - [Zero Redundancy Optimizer (ZeRO)](https://arxiv.org/abs/1910.02054)
108
  - [Auto-Parallelism](https://github.com/hpcaitech/ColossalAI/tree/main/examples/language/gpt/auto_parallel_with_gpt)
Jiarui Fang's avatar
Jiarui Fang committed
109

fastalgo's avatar
fastalgo committed
110
- Heterogeneous Memory Management 
Jiarui Fang's avatar
Jiarui Fang committed
111
112
113
  - [PatrickStar](https://arxiv.org/abs/2108.05818)

- Friendly Usage
binmakeswell's avatar
binmakeswell committed
114
  - Parallelism based on configuration file
binmakeswell's avatar
binmakeswell committed
115

binmakeswell's avatar
binmakeswell committed
116
117
118
- Inference
  - [Energon-AI](https://github.com/hpcaitech/EnergonAI)

119
- Colossal-AI in the Real World 
binmakeswell's avatar
binmakeswell committed
120
  - Biomedicine: [FastFold](https://github.com/hpcaitech/FastFold) accelerates training and inference of AlphaFold protein structure
121
122
<p align="right">(<a href="#top">back to top</a>)</p>

binmakeswell's avatar
binmakeswell committed
123
## Parallel Training Demo
binmakeswell's avatar
binmakeswell committed
124

125
### GPT-3
Jiarui Fang's avatar
Jiarui Fang committed
126
<p align="center">
Sze-qq's avatar
Sze-qq committed
127
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/GPT3-v5.png" width=700/>
Jiarui Fang's avatar
Jiarui Fang committed
128
</p>
binmakeswell's avatar
binmakeswell committed
129

fastalgo's avatar
fastalgo committed
130
- Save 50% GPU resources, and 10.7% acceleration
131
132

### GPT-2
Shen Chenhui's avatar
Shen Chenhui committed
133
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/GPT2.png" width=800/>
134

fastalgo's avatar
fastalgo committed
135
- 11x lower GPU memory consumption, and superlinear scaling efficiency with Tensor Parallelism
136

Sze-qq's avatar
Sze-qq committed
137
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/(updated)GPT-2.png" width=800>
138

Sze-qq's avatar
Sze-qq committed
139
140
- 24x larger model size on the same hardware
- over 3x acceleration
binmakeswell's avatar
binmakeswell committed
141
### BERT
Shen Chenhui's avatar
Shen Chenhui committed
142
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/BERT.png" width=800/>
binmakeswell's avatar
binmakeswell committed
143

144
- 2x faster training, or 50% longer sequence length
binmakeswell's avatar
binmakeswell committed
145

binmakeswell's avatar
binmakeswell committed
146
147
148
### PaLM
- [PaLM-colossalai](https://github.com/hpcaitech/PaLM-colossalai): Scalable implementation of Google's Pathways Language Model ([PaLM](https://ai.googleblog.com/2022/04/pathways-language-model-palm-scaling-to.html)).

binmakeswell's avatar
binmakeswell committed
149
### OPT
150
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/OPT_update.png" width=800/>
binmakeswell's avatar
binmakeswell committed
151
152

- [Open Pretrained Transformer (OPT)](https://github.com/facebookresearch/metaseq), a 175-Billion parameter AI language model released by Meta, which stimulates AI programmers to perform various downstream tasks and application deployments because public pretrained model weights.
binmakeswell's avatar
binmakeswell committed
153
- 45% speedup fine-tuning OPT at low cost in lines. [[Example]](https://github.com/hpcaitech/ColossalAI-Examples/tree/main/language/opt) [[Online Serving]](https://service.colossalai.org/opt) 
binmakeswell's avatar
binmakeswell committed
154
155

Please visit our [documentation](https://www.colossalai.org/) and [examples](https://github.com/hpcaitech/ColossalAI-Examples) for more details.
binmakeswell's avatar
binmakeswell committed
156

157
158
159
160
161
162
163
### ViT
<p align="center">
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/ViT.png" width="450" />
</p>

- 14x larger batch size, and 5x faster training for Tensor Parallelism = 64

164
### Recommendation System Models
165
- [Cached Embedding](https://github.com/hpcaitech/CachedEmbedding), utilize software cache to train larger embedding tables with a smaller GPU memory budget.
166

167
<p align="right">(<a href="#top">back to top</a>)</p>
binmakeswell's avatar
binmakeswell committed
168

binmakeswell's avatar
binmakeswell committed
169
## Single GPU Training Demo
170
171
172
173
174
175
176
177

### GPT-2
<p id="GPT-2-Single" align="center">
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/GPT2-GPU1.png" width=450/>
</p>

- 20x larger model size on the same hardware

Jiarui Fang's avatar
Jiarui Fang committed
178
179
180
181
182
183
<p id="GPT-2-NVME" align="center">
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/GPT2-NVME.png" width=800/>
</p>

- 120x larger model size on the same hardware (RTX 3080)

184
185
186
187
188
189
190
191
192
### PaLM
<p id="PaLM-Single" align="center">
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/PaLM-GPU1.png" width=450/>
</p>

- 34x larger model size on the same hardware

<p align="right">(<a href="#top">back to top</a>)</p>

binmakeswell's avatar
binmakeswell committed
193

binmakeswell's avatar
binmakeswell committed
194
## Inference (Energon-AI) Demo
binmakeswell's avatar
binmakeswell committed
195
196
197
198
199
200
201

<p id="GPT-3-Inference" align="center">
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/inference_GPT-3.jpg" width=800/>
</p>

- [Energon-AI](https://github.com/hpcaitech/EnergonAI): 50% inference acceleration on the same hardware

binmakeswell's avatar
binmakeswell committed
202
203
204
205
206
207
<p id="OPT-Serving" align="center">
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/OPT_serving.png" width=800/>
</p>

- [OPT Serving](https://service.colossalai.org/opt): Try 175-billion-parameter OPT online services for free, without any registration whatsoever.

208
209
210
211
212
213
<p id="BLOOM-Inference" align="center">
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/BLOOM%20Inference.PNG" width=800/>
</p>

- [BLOOM](https://github.com/hpcaitech/EnergonAI/tree/main/examples/bloom): Reduce hardware deployment costs of 175-billion-parameter BLOOM by more than 10 times.

binmakeswell's avatar
binmakeswell committed
214
215
<p align="right">(<a href="#top">back to top</a>)</p>

216
217
## Colossal-AI in the Real World

binmakeswell's avatar
binmakeswell committed
218
### AIGC
219
Acceleration of AIGC (AI-Generated Content) models such as [Stable Diffusion v1](https://github.com/CompVis/stable-diffusion) and [Stable Diffusion v2](https://github.com/Stability-AI/stablediffusion).
binmakeswell's avatar
binmakeswell committed
220
<p id="diffusion_train" align="center">
221
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/Stable%20Diffusion%20v2.png" width=800/>
binmakeswell's avatar
binmakeswell committed
222
223
</p>

224
- [Training](https://github.com/hpcaitech/ColossalAI/tree/main/examples/images/diffusion): Reduce Stable Diffusion memory consumption by up to 5.6x and hardware cost by up to 46x (from A100 to RTX3060).
binmakeswell's avatar
binmakeswell committed
225
226

<p id="diffusion_demo" align="center">
227
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/DreamBooth.png" width=800/>
binmakeswell's avatar
binmakeswell committed
228
229
</p>

230
231
232
233
234
235
236
237
238
- [DreamBooth Fine-tuning](https://github.com/hpcaitech/ColossalAI/tree/hotfix/doc/examples/images/dreambooth): Personalize your model using just 3-5 images of the desired subject.

<p id="inference" align="center">
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/Stable%20Diffusion%20Inference.jpg" width=800/>
</p>

- [Inference](https://github.com/hpcaitech/EnergonAI/tree/main/examples/bloom): Reduce inference GPU memory consumption by 2.5x.


binmakeswell's avatar
binmakeswell committed
239
240
<p align="right">(<a href="#top">back to top</a>)</p>

binmakeswell's avatar
binmakeswell committed
241
242
243
244
245
246
247
248
249
### Biomedicine
Acceleration of [AlphaFold Protein Structure](https://alphafold.ebi.ac.uk/)

<p id="FastFold" align="center">
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/FastFold.jpg" width=800/>
</p>

- [FastFold](https://github.com/hpcaitech/FastFold): accelerating training and inference on GPU Clusters, faster data processing, inference sequence containing more than 10000 residues.

250
251
252
253
<p id="xTrimoMultimer" align="center">
<img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/xTrimoMultimer_Table.jpg" width=800/>
</p>

binmakeswell's avatar
binmakeswell committed
254
255
- [xTrimoMultimer](https://github.com/biomap-research/xTrimoMultimer): accelerating structure prediction of protein monomers and multimer by 11x.

256
257
258

<p align="right">(<a href="#top">back to top</a>)</p>

zbian's avatar
zbian committed
259
260
## Installation

261
### Download From Official Releases
ver217's avatar
ver217 committed
262

binmakeswell's avatar
binmakeswell committed
263
You can visit the [Download](https://www.colossalai.org/download) page to download Colossal-AI with pre-built CUDA extensions.
264

ver217's avatar
ver217 committed
265

266
### Download From Source
ver217's avatar
ver217 committed
267

268
> 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. :)
zbian's avatar
zbian committed
269
270

```shell
271
git clone https://github.com/hpcaitech/ColossalAI.git
zbian's avatar
zbian committed
272
cd ColossalAI
273

zbian's avatar
zbian committed
274
275
276
277
278
279
280
# install dependency
pip install -r requirements/requirements.txt

# install colossalai
pip install .
```

ver217's avatar
ver217 committed
281
If you don't want to install and enable CUDA kernel fusion (compulsory installation when using fused optimizer):
zbian's avatar
zbian committed
282
283

```shell
284
NO_CUDA_EXT=1 pip install .
zbian's avatar
zbian committed
285
286
```

287
<p align="right">(<a href="#top">back to top</a>)</p>
binmakeswell's avatar
binmakeswell committed
288

Frank Lee's avatar
Frank Lee committed
289
290
## Use Docker

291
292
293
294
295
296
297
### Pull from DockerHub

You can directly pull the docker image from our [DockerHub page](https://hub.docker.com/r/hpcaitech/colossalai). The image is automatically uploaded upon release.


### Build On Your Own

Frank Lee's avatar
Frank Lee committed
298
299
Run the following command to build a docker image from Dockerfile provided.

300
301
302
> Building Colossal-AI from scratch requires GPU support, you need to use Nvidia Docker Runtime as the default when doing `docker build`. More details can be found [here](https://stackoverflow.com/questions/59691207/docker-build-with-nvidia-runtime).
> We recommend you install Colossal-AI from our [project page](https://www.colossalai.org) directly.

303

Frank Lee's avatar
Frank Lee committed
304
305
306
307
308
309
310
311
312
313
314
```bash
cd ColossalAI
docker build -t colossalai ./docker
```

Run the following command to start the docker container in interactive mode.

```bash
docker run -ti --gpus all --rm --ipc=host colossalai bash
```

315
<p align="right">(<a href="#top">back to top</a>)</p>
binmakeswell's avatar
binmakeswell committed
316
317
318
319
320

## Community

Join the Colossal-AI community on [Forum](https://github.com/hpcaitech/ColossalAI/discussions),
[Slack](https://join.slack.com/t/colossalaiworkspace/shared_invite/zt-z7b26eeb-CBp7jouvu~r0~lcFzX832w),
fastalgo's avatar
fastalgo committed
321
and [WeChat](https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/WeChat.png "qrcode") to share your suggestions, feedback, and questions with our engineering team.
binmakeswell's avatar
binmakeswell committed
322

323
324
## Contributing

binmakeswell's avatar
binmakeswell committed
325
326
327
If you wish to contribute to this project, please follow the guideline in [Contributing](./CONTRIBUTING.md).

Thanks so much to all of our amazing contributors!
328

binmakeswell's avatar
binmakeswell committed
329
330
331
<a href="https://github.com/hpcaitech/ColossalAI/graphs/contributors"><img src="https://raw.githubusercontent.com/hpcaitech/public_assets/main/colossalai/img/contributor_avatar.png" width="800px"></a>

*The order of contributor avatars is randomly shuffled.*
332

333
334
<p align="right">(<a href="#top">back to top</a>)</p>

zbian's avatar
zbian committed
335

336
## Cite Us
zbian's avatar
zbian committed
337

338
339
340
341
342
343
344
345
```
@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}
}
```
346

fastalgo's avatar
fastalgo committed
347
<p align="right">(<a href="#top">back to top</a>)</p>