# GPT
## 模型介绍
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) 解码器为网络基本组件,使用自回归的方式在大规模无标注文本语料上进行预训练得到的语言生成模型。
本项目是语言模型 GPT 的 PaddlePaddle 大模型实现。目前,PaddleFleetX 提供了 [GPT-345M](https://paddlefleetx.bj.bcebos.com/model/nlp/gpt/GPT_345M.tar.gz) 的预训练模型文件;分别基于 [LAMBADA](https://raw.githubusercontent.com/cybertronai/bflm/master/lambada_test.jsonl) 和 [WikiText](https://s3.amazonaws.com/research.metamind.io/wikitext/wikitext-103-v1.zip) 数据集,采用 ACC(accuracy) 和 PPL(perplexity) 指标后的评估结果如下:
| **模型文件** | **ACC** | **PPL** |
|---------|-----------|---------------|
| GPT-345M | 44.17% | 18.01 |
下面是本例的简要目录结构及说明:
```text
.
├── auto_export_gpt_345M_mp2.sh # 自动并行345M模型两卡张量并行导出入口
├── auto_gpt_345M_single_card.sh # 自动并行345M模型单卡预训练入口
├── auto_gpt_1.3B_single_card.sh # 自动并行1.3B模型单卡预训练入口
├── auto_gpt_1.3B_dp8.sh # 自动并行1.3B模型数据并行预训练入口
├── auto_gpt_6.7B_sharding16.sh # 自动并行6.7B模型分组切片并行预训练入口
├── evaluate_gpt_345M_single_card.sh # 单卡345M模型评估入口
├── export_gpt_345M_single_card.sh # 单卡345M模型动转静导出入口
├── finetune_gpt_345M_single_card.sh # 单卡345M模型finetune训练入口
├── inference_gpt_345M_single_card.sh # 单卡345M模型推理入口
├── pretrain_gpt_345M_single_card.sh # 单卡345M模型预训练入口
├── pretrain_gpt_1.3B_single_card.sh # 单卡1.3B模型预训练入口
├── pretrain_gpt_1.3B_dp8.sh # 8卡1.3B模型数据并行预训练入口
├── pretrain_gpt_6.7B_sharding16.sh # 16卡6.7B模型分组切片并行预训练入口
├── pretrain_gpt_175B_mp8_pp16.sh # 128卡175B模型混合并行预训练入口
├── qat_gpt_345M_single_card.sh # 单卡345M模型量化训练入口
├── qat_gpt_345M_mp8.sh # 8卡345M模型模型并行量化训练入口
├── qat_gpt_6.7B_sharding16.sh # 16卡6.7B模型分组切片并行量化训练入口
├── eval_qat_gpt_345M_single_card.sh # 单卡345M量化模型验证入口
├── export_qat_gpt_345M_single_card.sh # 单卡345M量化模型导出入口
```
## 快速开始
### 环境依赖
请确保已根据根目录 requirements.txt 安装所需依赖,或者通过以下命令快速安装
```shell
python -m pip install -r https://raw.githubusercontent.com/PaddlePaddle/PaddleFleetX/develop/requirements.txt -i https://mirror.baidu.com/pypi/simple
```
### 数据准备
数据获取和制作详见[GPT 模型预训练数据准备流程](https://github.com/PaddlePaddle/PaddleFleetX/tree/develop/ppfleetx/data/data_tools/gpt)
为了方便用户运行测试本模型,此处提供处理好的300M的训练样本,在单卡训练或混合并行训练前都需要通过以下命令获取数据。
**数据下载命令**
```shell
cd PaddleFleetX # 如果已在 PaddleFleetX 根目录下,则忽略
# 下载样例数据
mkdir data && cd data
wget -O gpt_en_dataset_300m_ids.npy https://bj.bcebos.com/paddlenlp/models/transformers/gpt/data/gpt_en_dataset_300m_ids.npy
wget -O gpt_en_dataset_300m_idx.npz https://bj.bcebos.com/paddlenlp/models/transformers/gpt/data/gpt_en_dataset_300m_idx.npz
cd .. # 回到 PaddleFleetX 根目录下
```
### 模型训练
除了单卡训练,飞桨还支持数据并行、混合并行、自动并行、重计算等多种分布式策略,减少显存占用、加速训练,达到大模型可训练且训得快的效果。在模型训练前,需要根据模型规模选择合适的并行策略。下面分别从单卡训练、混合并行训练和自动并行训练三个方面来介绍GPT模型训练的配置文件和启动方式。
- [单卡训练](./single_card.md)
- [混合并行训练](./hybrid_parallel.md)
- [自动并行训练](./auto_parallel.md)
### 文本生成体验
- [单卡预训练模型文本生成](./single_card.md#GPT-Zero-shot-文本生成)
- [混合并行预训练模型文本生成](./hybrid_parallel.md#GPT-Zero-shot-文本生成)
### 模型压缩
- [量化训练](./quantization_aware_training.md)
### 推理部署
- [推理部署](inference.md)
### GLUE 下游任务微调
- [单卡微调](./single_finetune.md)
## 参数释义
### 全局信息
全局参数指定训练的batch size,以及设备、随机种子等信息。
```yaml
Global:
device: gpu
seed: 1024
global_batch_size:
local_batch_size: 1
micro_batch_size: 1
```
其中参数对应的释义如下:
| **参数名** | **参数释义** |
|------------------------------|------------------------|
| device | 设备信息 |
| seed | 随机数种子 |
| global_batch_size | 全局的batch size大小,即一次参数更新等效的batch size |
| local_batch_size | 每个进程训练的batch size大小 |
| micro_batch_size | 每次前向计算的batch size大小 |
### Engine训练控制
Engine训练设置完成模型训练/验证/推理等过程中的参数设置,是fleetX的EagerEngine的必要参数,所有使用该Engine都必须指定该配置。 其中包含的参数有:
```yaml
Engine:
max_steps: 500000
num_train_epochs: 1
accumulate_steps:
logging_freq: 1
eval_freq: 500
eval_iters: 10
test_iters:
mix_precision:
enable: True
dtype: "float16"
level: "O2"
scale_loss: 32768.0
custom_black_list: ["reduce_sum", "c_softmax_with_cross_entropy", "elementwise_div"]
custom_white_list: ["lookup_table", "lookup_table_v2"]
save_load:
save_steps: 1000
save_epoch: 1
output_dir: ./output
ckpt_dir:
```
其中参数对应的释义如下:
| **参数名** | **参数释义** |
|------------------------------|------------------------|
| max_steps | 最大训练步数 |
| num_train_epochs | 训练的epoch数量 |
| accumulate_steps | 梯度累加次数 |
| logging_freq | 训练日志打印的频率 |
| eval_freq | 模型评估间隔 |
| eval_iters | 模型评估时训练评估测试集的轮数 |
| test_iters | 模型测试或推理时的轮数 |
| enable | 是否使用混合精度策略进行训练 |
| dtype | 混合精度训练数据类型使用float16还是bfloat16,默认为float16类型 |
| level | 混合精度训练模式,默认``O2``模式 |
| scale_loss | 使用fp16混合精度策略下,loss的放缩比例 |
| custom_black_list | 自定义算子黑名单。这个名单中的算子在支持混合精度计算时会被认为是数值危险的,它们的影响也可能会在下游操作中观察到。这些算子通常不会转为float16/bfloat16计算 |
| custom_white_list | 自定义算子白名单。这个名单中的算子在支持混合精度计算时会被认为是数值安全的,并且对性能至关重要。如果设置了白名单,该名单中的算子会使用float16/bfloat16计算 |
| save_steps | 保存模型间隔step数 |
| save_epoch | 保存模型间隔epoch数
没有合适的资源?快使用搜索试试~ 我知道了~
飞桨大模型开发套件,提供大语言模型、跨模态大模型、生物计算大模型等领域的全流程开发工具链。.zip
共520个文件
py:197个
sh:154个
yaml:106个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 65 浏览量
2024-03-14
22:55:04
上传
评论
收藏 2.89MB ZIP 举报
温馨提示
垂直领域大模型,多模态,人工智能,易于部署,学习交流使用
资源推荐
资源详情
资源评论
收起资源包目录
飞桨大模型开发套件,提供大语言模型、跨模态大模型、生物计算大模型等领域的全流程开发工具链。.zip (520个子文件)
fast_index_map_helpers.cpp 26KB
helpers.cpp 50B
topp_sampling.cu 22KB
Dockerfile 601B
.gitignore 1KB
.gitignore 6B
copyright.hook 4KB
cpplint_pre_commit.hook 932B
pylint_pre_commit.hook 784B
clang_format.hook 528B
demo.jpg 37KB
LICENSE 11KB
Makefile 309B
Makefile 32B
deployment_faq.md 31KB
single_finetune.md 16KB
single_finetune.md 15KB
README.md 15KB
auto_parallel.md 13KB
hybrid_parallel.md 13KB
hybrid_parallel.md 13KB
README.md 13KB
README.md 13KB
README.md 12KB
hybrid_profiler.md 12KB
hybrid_profiler.md 12KB
standard.md 11KB
single_card.md 11KB
single_card.md 11KB
quick_start.md 10KB
WuDaoCorpusBase.md 7KB
README.md 7KB
README.md 6KB
quantization_aware_training.md 6KB
README.md 5KB
README.md 5KB
quantization_aware_training.md 5KB
cluster_deployment.md 5KB
README.md 5KB
README.md 5KB
inference.md 4KB
compression.md 4KB
inference.md 4KB
README.md 4KB
CLUECorpusSmall.md 3KB
structured_pruning.md 3KB
structured_pruning.md 3KB
OpenWebText2.md 2KB
docker_install.md 2KB
inference.md 1KB
inference.md 852B
CLUECorpus2020.md 652B
README.md 0B
UFO_v2_1.png 648KB
UFO_v2_2.png 455KB
Imagen_theme.png 428KB
throughput_compare_graph.png 201KB
throughput_compare.png 192KB
fleetx_arc.png 115KB
UFO_Perf.png 56KB
paddlefleetx-logo.png 38KB
debertav2_tokenizer.py 99KB
t5_tokenizer.py 89KB
tokenization_utils_base.py 74KB
hybrid_model.py 67KB
modeling.py 59KB
single_model.py 56KB
auto_model.py 50KB
unet.py 50KB
modeling.py 50KB
evoformer.py 42KB
hybrid_model.py 42KB
t5_tokenization_utils.py 39KB
distributed_transformer.py 39KB
auto_transformer.py 38KB
modeling.py 38KB
eager_engine.py 37KB
transformer.py 37KB
auto_model.py 37KB
residue_constants.py 36KB
single_model.py 34KB
gpt_tokenizer.py 33KB
language_module.py 32KB
attentions.py 28KB
glue_dataset.py 26KB
gpt_dataset.py 25KB
config.py 24KB
dataset_utils.py 24KB
model_outputs.py 24KB
metrics.py 24KB
quat_affine.py 23KB
vit.py 20KB
config.py 20KB
sharded_moe.py 18KB
ernie_dataset.py 17KB
r3.py 17KB
vision_dataset.py 15KB
create_pretraining_data.py 14KB
utils.py 14KB
template.py 14KB
共 520 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
极致人生-010
- 粉丝: 3406
- 资源: 3073
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- maven下载、安装、配置与使用教程(windows、Linux)
- html css网页制作成品案例.zip
- 神经网络介绍及教程&案例.docx
- 重庆市首席信息官(CIO)协会 《软件及信息化工程造价规范V5.0》T/CQCIO 001-2019
- 联想Y471老A卡笔记本开机黑屏 需等待黑屏结束才能进入桌面,解决方法
- elasticsearch-7.14.0和ik分词器
- 利用MPI计算任意范围内的质数
- EnviroSkyandWeather v2.1.1(u2017.1.2)真实动态天气系统包
- React框架介绍及相关教程、案例.docx
- 基于Springboot和Vue教务评教系统(PC端+server端源码+数据库MySQL脚本+环境部署步骤讲解+运行步骤讲解)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功