Awesome
CPM-2 Pre-Train
Pre-train CPM-2 此分支为110亿非 MoE 模型的预训练代码,MoE 模型的预训练代码请切换到 moe 分支
CPM-2技术报告请参考link。
若您想使用CPM-2进行推理,我们建议使用高效推理工具BMInf,支持1060以上显卡单卡推理。
0 模型下载
请在智源资源下载页面进行申请,文件介绍如下:
文件名 | 描述 | 参数大小 |
---|---|---|
100000.tar | 纯中文模型 | 110亿 |
32000.tar | 中英文双语模型 | 110亿 |
300000.tar | 中英文MoE模型 | 1980亿 |
1 安装
可以直接拉取我们提供的 Docker 环境:
docker pull gyxthu17/cpm-2:1.2
由于运行环境都已在 Docker 中配置好,因此不需要设置额外的环境变量。运行前需要将本目录挂载到 Docker 中,例如将本目录挂载到 Docker 中的 /mnt,可以使用以下命令运行 Docker 环境:
docker run -ti -v ${PWD}:/mnt gyxthu17/cpm-2:1.2 /bin/bash
Docker 启动之后在 /mnt 下操作即可。
2 数据
scripts/gen_data.sh
中给出了生成数据文件的脚本示例。该脚本将一个多行的纯文本文件(一个 document 一行)转化为二进制文件(会输出三个 .bin 和三个 .idx 文件),方便模型读取。
3 训练
首先需要将 WORKING_DIR
变量换成 CPM-2 目录的所在路径。调整 NUM_WORKERS
和 NUM_GPUS_PER_WORKER
指定机器数量与每台机器的 GPU 设备数量。修改 ${WORKING_DIR}/src/configs/host_files/hostfile-cpm2
文件将其中的主机名称替换成每台机器的 IP 地址或者和 IP 地址相关联的主机名称。
运行命令:
cd src
bash scripts/pretrain_enc_dec.sh
4 引用
如果您使用了我们的代码,请您引用下面的文章。
@article{cpm-v2,
title={CPM-2: Large-scale Cost-efficient Pre-trained Language Models},
author={Zhang, Zhengyan and Gu, Yuxian and Han, Xu and Chen, Shengqi and Xiao, Chaojun and Sun, Zhenbo and Yao, Yuan and Qi, Fanchao and Guan, Jian and Ke, Pei and Cai, Yanzheng and Zeng, Guoyang and Tan, Zhixing and Liu, Zhiyuan and Huang, Minlie and Han, Wentao and Liu, Yang and Zhu, Xiaoyan and Sun, Maosong},
year={2021}
}