littlebot
Published on 2025-04-18 / 0 Visits
0

【源码】基于Python的CPMLM文本生成系统

项目简介

本项目致力于推动中文自然语言处理研究,提供了CPM-LM (2.6B) 模型的文本生成代码,可用于文本生成的本地测试,为零次学习/少次学习等场景的研究奠定基础。

项目的主要特性和功能

  1. 模型推理:具备高效推理工具,支持1060以上显卡单卡推理,采用多GPU并行处理提升推理效率。
  2. 环境搭建:支持传统pip安装依赖与APEX库,也能通过Docker容器快速搭建运行环境。
  3. 文本生成:有命令行交互式文本生成功能,也可指定输入文本文件进行生成。
  4. 模型并行调整:可动态调整模型并行参数,生成不同并行数的新模型。
  5. Tokenization处理:对文本进行分词和BPE编码,解决空格和换行符编码问题。
  6. 零次学习任务:提供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】