Skip to content

Commit ba371e5

Browse files
authored
Merge pull request #607 from haohongxiang/add_docs
[GPT] Add docs of single, dp, sharding and 3D
2 parents f1c697d + ff7d5c9 commit ba371e5

19 files changed

+759
-628
lines changed

examples/gpt/3D_parallelism/run.sh

-23
This file was deleted.

examples/gpt/README.md

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# GPT
2+
3+
## 模型介绍
4+
GPT-[2](https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf)/[3](https://arxiv.org/pdf/2005.14165.pdf) 是以[Transformer](https://arxiv.org/abs/1706.03762) 解码器为网络基本组件,使用自回归的方式在大规模无标注文本语料上进行预训练得到的语言生成模型。
5+
6+
本项目是语言模型 GPT 的 PaddlePaddle 大模型实现。下是本例的简要目录结构及说明:
7+
8+
```text
9+
.
10+
├── tools.py # 训练参数配置处理脚本
11+
├── single # 单卡模型训练
12+
├── configs_345m_single_card.yaml # 单卡345M模型配置文件
13+
├── configs_1.3B_single_card.yaml # 单卡1.3B模型配置文件
14+
├── run_pretrain.py # 单卡预训练入口
15+
├── run.sh # 单卡训练启动入口
16+
├── hybrid_parallel # 分布式模型训练
17+
├── configs_1.3B_dp8.yaml # 单机1.3B数据并行模型配置文件
18+
├── configs_6.7B_sharding16.yaml # 两机6.7B分组切片并行模型配置文件
19+
├── configs_175B_mp8_pp16.yaml # 16机175B混合并行模型配置文件
20+
├── run_pretrain.py # 分布式预训练入口
21+
├── run.sh # 分布式训练启动入口
22+
```
23+
24+
## 快速开始
25+
26+
### 环境依赖
27+
28+
- regex
29+
- colorlog
30+
- colorama
31+
- cached_path >= 1.1.5
32+
- omegaconf
33+
- sentencepiece >= 0.1.94
34+
- tqdm
35+
- visualdl
36+
- paddlepaddle-gpu >= 2.2rc
37+
- pybind11
38+
- lac (可选)
39+
- zstandard (可选)
40+
41+
**安装命令**
42+
```shell
43+
pip install regex colorlog colorama cached_path omegaconf sentencepiece tqdm visualdl pybind11 lac zstandard
44+
```
45+
注:需要PaddlePaddle版本大于等于2.2rc,或者使用最新develop版本,安装方法请参见Paddle[官网](https://www.paddlepaddle.org.cn)
46+
47+
### 数据准备
48+
49+
数据获取和制作详见[GPT 模型预训练数据准备流程](https://github.com/PaddlePaddle/FleetX/tree/develop/fleetx/data/data_tools/gpt)
50+
51+
为了方便用户运行测试本模型,此处提供处理好的300M的训练样本。
52+
53+
**数据下载命令**
54+
```shell
55+
cd single # 或者 cd hybrid_parallel
56+
57+
# 下载样例数据
58+
mkdir data && cd data
59+
wget https://bj.bcebos.com/paddlenlp/models/transformers/gpt/data/gpt_en_dataset_300m_ids.npy
60+
wget https://bj.bcebos.com/paddlenlp/models/transformers/gpt/data/gpt_en_dataset_300m_idx.npz
61+
62+
cd .. # 回到 single/hybrid_parallel 路径下
63+
```
64+
65+
### 模型训练
66+
67+
除了单卡训练,飞桨还支持数据并行、混合并行、重计算等多种分布式策略,减少显存占用、加速训练,达到大模型可训练且训得快的效果。在模型训练前,需要根据模型规模选择合适的并行策略。下面分别从单卡训练和混合并行训练两方面来介绍GPT模型训练的配置文件和启动方式。
68+
69+
70+
71+
- [单卡训练](./single/README.md)
72+
73+
- [混合并行训练](./hybrid_parallel/README.md)
74+
75+
76+
## 参考文献
77+
- [Language Models are Unsupervised Multitask Learners](https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf)
78+
- [Language Models are Few-Shot Learners](https://arxiv.org/pdf/2005.14165.pdf)
79+
- [CPM: A Large-scale Generative Chinese Pre-trained Language Model](https://arxiv.org/abs/2012.00413)

examples/gpt/data_parallel/run.sh

-22
This file was deleted.

examples/gpt/data_parallel/run_pretrain.py

-169
This file was deleted.

0 commit comments

Comments
 (0)