相信很多人都看了使用colossal-AI复现Chatgpt的流程的文章,但实际上看过了,不免有人发出“说得贼明白,就是自己做不出来”的感叹吧。本人公开一下实战过程,给有兴趣复现chatgpt流程的朋友一个参考。
一、环境搭建:
1.腾讯云购买P40 GPU服务器(T4 GPU 16G跑不动哦,OOM),该服务器是24G GPU,软件环境是:ubutun18.04+torch1.9
2.使用git clone下载colossalAI的源代码,使用了https://ghproxy.com进行了加速。
git clone https://ghproxy.com/https://github.com/hpcaitech/ColossalAI
3.搭建nvidia docker运行环境。
请参考:https://zhuanlan.zhihu.com/p/361934132
4. 使用nvidia的镜像(如:nvcr.io/nvidia/pytorch:22.05-py3),注意:hpcaitech/colossalai:0.2.5的镜像无法使用--gpus参数。
sudo docker pull nvcr.io/nvidia/pytorch:22.05-py3
5. 进入ColosaalAI,创建gpt容器
sudo docker run --name gpt --gpus=all --ipc=host --rm -it -v $PWD:/gpt -p 6006 -p 8888 --ulimit memlock=-1 -v /etc/localtime:/etc/localtime:ro -d nvcr.io/nvidia/pytorch:22.05-py3
6.进入gpt容器
sudo docker exec -it gpt /bin/bash
7. 在ColossalAI\applications\ChatGPT下,安装chatgpt及依赖,使用豆瓣加速源。
pip install . -i https://pypi.douban.com/simple
二、开始训练prompt data
1.进入example目录,下载prompts.csv,可以开始运行prompts的训练了。
python train_prompts.py prompts.csv --strategy naive
2.训练完成后,生成了两个模型文件,GPU占用大概9个G左右。
三、开始训练reward model
1.在宿主服务中(非docker环境)安装git-lfs,用于管理模型中的大文件。
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
2.进入到ColossalAI\applications\ChatGPT\examples目录,下载bloom-560m.
git clone https://huggingface.co/bigscience/bloom-560m
这个时间比较长,要下载3个多G的模型文件,耐心等待。
3. 在gpt容器中训练reward model
python train_reward_model.py --pretrain bloom-560m
四、运行benckmark
相信你知道该如何做了,参考ReadMe.md即可。
五、展望
实际上要达成chatgpt一样的效果,还需要很多的努力,包括数据如何组织,prompt如何编写,奖励模型的实现方式,人类反馈的结果是否有偏等。