项目简介
本项目致力于推动中文自然语言处理研究,提供了CPM-LM (2.6B) 模型的文本生成代码,可用于文本生成的本地测试,为零次学习/少次学习等场景的研究奠定基础。
项目的主要特性和功能
- 模型推理:具备高效推理工具,支持1060以上显卡单卡推理,采用多GPU并行处理提升推理效率。
- 环境搭建:支持传统pip安装依赖与APEX库,也能通过Docker容器快速搭建运行环境。
- 文本生成:有命令行交互式文本生成功能,也可指定输入文本文件进行生成。
- 模型并行调整:可动态调整模型并行参数,生成不同并行数的新模型。
- Tokenization处理:对文本进行分词和BPE编码,解决空格和换行符编码问题。
- 零次学习任务:提供OCNLI、TNEWS和IFLYTEK三个任务的零次学习脚本。
安装使用步骤
安装
传统方式
pip install -r requirements.txt
cd apex
pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
Docker方式
docker pull dmye/cpm:v0
参考运行指令如下:
sudo docker run --gpus '"device=0,1"' -it -v <path>:/CPM --name=cpm cpm:v0
其中<path>
为代码所在目录,-v进行文件目录挂载。
模型准备
模型下载后文件夹的目录结构需设置如下:
.
├── 80000
│ ├── mp_rank_00_model_states.pt
│ └── mp_rank_01_model_states.pt
└── latest_checkpointed_iteration.txt
需确保下载文件的checksum与以下一致:
SHA1
71d6b6ad4f47b46724eb82c05da8fb9175e62a7d 80000/mp_rank_00_model_states.pt
42aa247a262e2011fa5e276f1a8389fad6d80edc 80000/mp_rank_01_model_states.pt
MD5
f3f6d2f7d84c6a45290a31dabf79ddac 80000/mp_rank_00_model_states.pt
b0e960be4b5226e759ae6fc5246f9160 80000/mp_rank_01_model_states.pt
使用
文本生成
交互式生成:
bash scripts/generate_text.sh /path/to/CPM
非交互式生成:
bash scripts/generate_text.sh /path/to/CPM example.txt
调整模型并行参数
python change_mp.py /path/to/CPM MPSIZE
这里的/path/to/CPM
为模型路径,MPSIZE
为一个整数,可以为1或者2的倍数,结果会生成一个新的模型,存储路径为/path/to/CPM_MPSIZE
。
零次学习任务
bash scripts/zero-shot-ocnli.sh /path/to/CPM /path/to/dataset
bash scripts/zero-shot-tnews.sh /path/to/CPM /path/to/dataset
bash scripts/zero-shot-iflytek.sh /path/to/CPM /path/to/dataset
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】