清源CPM代码复现

踩坑2天,终于成功。趁热记下来。

还是在阿里云机器尝试。

项目主页:https://github.com/TsinghuaAI/CPM-Generate

1 机器

购买机器,按量计费。

-- ubuntu18,2块显卡P100,CUDA 10.2
-- 勾选自动安装GPU驱动,CUDA 10.2.89,cuDNN 7.6.5,等待。

2 软件环境配置

使用anaconda。当前最新是2020.11发布的,往后倒退一个版本。

Anaconda3-5.3.1-Linux-x86_64.sh 637.0M 2018-11-19 13:38:46
下载,wget https://repo.anaconda.com/archive/Anaconda3-5.3.1-Linux-x86_64.sh
安装,sh Anaconda3-5.3.1-Linux-x86_64.sh
配置都选择默认,等待完成。

source ~/anaconda3/bin/activate
conda create --name cpm1

等待安装
选择python环境,conda activate cpm1

root权限,apt install git , apt install cmake

3 CPM及依赖包的安装

3.1 源代码

cd ~/git/
git clone https://github.com/TsinghuaAI/CPM-Generate.git

3.2 依赖

source ~/anaconda3/bin/activate
conda activate cpm1
pip install -r requirements.txt
git clone https://github.com/NVIDIA/apex
cd apex
pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./

注意几点:

(1)我的jieba手动安装
pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout=100

(2)我的deepspeed手动安装
pip install deepspeed -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout=100

(3)我的sentencepiece没有安装成功,使用源码安装

git clone https://github.com/google/sentencepiece.git
cd sentencepiece
mkdir build
cd build
cmake ..
make -j $(nproc)
sudo make install
sudo ldconfig -v
cd ../python
python setup.py build
python setup.py install

4 下载模型

模型主页:https://cpm.baai.ac.cn/download.html

wget https://baai.org/l/QLtmx
mv QLtmx model-v1.tar.gz
tar -zxvf model-v1.tar.gz

5 运行示例

python generate_samples.py        
--model-parallel-size 2         
--num-layers 32         
--hidden-size 2560        
--load ./model-v1/80000/mp_rank_00_model_states.pt        
--num-attention-heads 32         
--seq-length 1024         
--max-position-embeddings 1024         
--fp16         
--cache-dir cache         
--out-seq-length 512         
--temperature 0.9         
--top_k 0         
--top_p 0         
--tokenizer-path bpe_3w_new/         
--vocab-size 30000        
--input-text example.txt

一个结果:

原文地址:https://www.cnblogs.com/xuehuiping/p/14036357.html