【LLM】基于ColossalAI-0.3.6对llama2-7B-Chat做全参数微调

环境

操作系统:

  • ubuntu22.04

机器规格:

  • CPU:96c;
  • 内存:736 GiB;
  • GPU:8 * NVIDIA V100 (32GB)

软件信息:

  • Python 3.11.5;
  • ColossalAI 0.3.6;
  • cuda_11.8;
  • pytorch 2.1.0+cu118
  • transformers 4.34.1

准备工作

下载llama2-7B

国内用户使用ModelScope下载会友好些,模型下载地址为:

https://modelscope.cn/models/modelscope/Llama-2-7b-chat-ms/files

SDK下载

#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('modelscope/Llama-2-7b-chat-ms')

Git下载

请确保 lfs 已经被正确安装

git lfs install
git clone https://www.modelscope.cn/modelscope/Llama-2-7b-chat-ms.git

下载ColossalAI

Colossal-AI 是一个集成的大规模深度学习系统,具有高效的并行化技术。该系统可以通过应用并行化技术在具有多个 GPU 的分布式系统上加速模型训练。该系统也可以在只有一个 GPU 的系统上运行。

关于ColossalAI的更多介绍:https://colossalai.org/zh-Hans/

Git地址:https://github.com/hpcaitech/ColossalAI

img

下载后上传至服务器解压,进入根目录,执行:

pip install .

进入applications/ColossalChat目录下,执行:

pip install .

至此,所有依赖已准备完毕。

接下来会基于ColossalAI项目中的applications/ColossalChat下的实例做模型的训练。

img

数据集准备

准备原始数据集

训练数据集为JSONL格式,每行是一个独立的JSON,示例如下:

{"messages": [{"from": "human", "content": "问题1"}, {"from": "assistant", "content": "回答1"}]}
{"messages": [{"from": "human", "content": "问题2"}, {"from": "assistant"