一、环境搭建
1. 安装系统
参考百度,以ubuntu22.04
系统为例
2. 基础配置
2.1 配置管理IP
a) 使用系统安装中创建的用户与密码登录Ubuntu操作系统。
b) 执行如下命令设置root用户密码。
sudo passwd root
c) 输入密码确认密码,切换root用户登录。
d) 执行如下命令编辑配置文件,配置文件一般以.yaml结尾。
sudo vi /etc/netplan/00-installer-config.yaml
e) 配置管理IP。参考下图配置。
f) 执行如下命令使配置生效。
netplan apply
2.2 配置DNS
vim /etc/systemd/resolved.conf
执行命令重启服务
systemctl restart systemd-resolved
2.3 更换清华源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
sed -i “s|http://archive.ubuntu.com/ubuntu| https://mirrors.tuna.tsinghua.edu.cn/ubuntu/|g” /etc/apt/sources.list
##更新apt源
sudo apt update
sudo apt upgrade -y
3. 安装gcc、make编译器
sudo apt install gcc make -y
4. 下载并安装nvidia显卡驱动
4.1 禁用nouveau驱动。
a. 将nouveau驱动加入黑名单。
执行以下命令,编辑配置文件。
vi /etc/modprobe.d/blacklist.conf
将如下内容加入到文件中。
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiaf
b. 执行sudo update-initramfs -u
命令更新现有initramfs映像文件。
c. 执行reboot
重启服务器。
d. 执行以下命令,如果没有输出则证明禁用成功。
sudo lsmod | grep nouveau
4.2 安装GPU驱动
a. 执行以下命令,查看服务器显卡信息,获取后4位PCI ID,示例为27b8。
sudo lspci | grep -i nvidia
b. 在http://pci-ids.ucw.cz/mods/PC/10de/1eb8上输入PCIID后,单击“Jump”,获取显卡型号,示例显卡型号为L4。
c. 在NVIDIA官方网站下载对应版本的显卡驱动。
显卡驱动版本选择建议大于等于460,小于等于525。
d. 以NVIDIA-Linux-x86_64-525.105.17.run
为例,执行以下命令进行安装。
sudo chmod a+x NVIDIA-Linux-x86_64-525.105.17.run
sudo ./NVIDIA-Linux-x86_64-525.105.17.run -no-x-check -no-nouveau-check -no-opengl-files
o 在安装前需要先安装完成gcc、make。
o 若安装过程中出现如下提示,请安装kernel-devel和kernel-headers,再次执行安装即可。
o 若安装过程中出现如下提示,请执行apt-get install build-essential命令安装build-essential。
o 若安装过程中出现“The distribution-provided pre-install script failed! Are you sure you want to continue?”提示,请选择Continue installation,继续安装。
f. 系统出现如下提示,表明安装完成。
g. 执行nvidia-smi
,如果出现GPU相关信息则表明安装驱动成功。
h. 执行以下命令,开启GPU的Persistence Mode。
nvidia-smi -pm 1
5. 下载并安装cuda toolkit(从此步骤开始,后续所有操作可以选择在容器内进行;本次操作以物理机为例)
5.1 获取软件包
登录CUDA Toolkit网站(https://developer.nvidia.com/cuda-downloads),
点击“Archive of Previous CUDA Releases
”进入cuda历史版本的页面,寻找合适的cuda版本。如11.8
选择cuda 11.8版本(与我们上述的Nvidia显卡驱动版本兼容,因为我们的Nvidia显卡驱动支持最高到12.2的cuda版本)。点击“CUDA Toolkit 11.8.0”, 进入如下图Fig. 5所示的网页,
5.2 安装cuda
a) 执行安装
./ cuda_11.8.0_520.61.05_linux.run
如下图,Driver选项不要勾选了,前面已经安装GPU驱动了。
b) 添加环境变量
vim ~/.bashrc
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
c) 创建软连接
sudo ln -s /usr/local/cuda/bin/nvcc /usr/bin/nvcc
d) 查看cuda版本
nvcc –V
6. 下载并安装cudnn深度学习加速库
6.1 下载安装包
登录https://developer.nvidia.com/cudnn-downloads?target_os=Linux
6.2 安装cudnn
a) 上传cudnn软件包
b) 执行命令解压
tar -xvf cudnn-linux-x86_64-8.9.0.131_cuda12-archive.tar.xz
c) 将cuDNN解压出来的文件拷贝到之前安装的cuda文件加中,然后给cudnn和cudnnlib等文件读取权限。
cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include #cuda实际安装目录
cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
d) 验证
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
7. 下载并安装miniconda3
7.1 下载软件包并安装
a) 首先,从 Miniconda 的官方网站下载安装脚本。你可以使用 wget 命令直接下载最新的 Miniconda 安装包:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
b) 运行安装脚本:
下载并验证完安装脚本后,运行以下命令来启动 Miniconda 的安装过程:
bash Miniconda3-latest-Linux-x86_64.sh
安装脚本将引导你完成 Miniconda 的安装,界面如下:
执行安装脚本后,会提示你阅读许可协议。按 Enter 键滚动到协议末尾,然后输入 yes 同意许可协议。
接着,确认安装的路径。默认安装路径是你的主目录下的 ~/miniconda3
。你可以直接按 Enter 接受默认路径,或者输入自定义路径。
初始化 Miniconda:
安装过程结束后,系统会询问是否将 Miniconda 初始化为默认 shell 环境。建议你选择 yes,以便 Miniconda 自动配置你的环境。
安装和初始化完成后,你可以通过以下命令激活 Miniconda 环境:
source ~/.bashrc
conda --version
8. 创建并进入conda环境
conda create -n test python=3.10
9. 安装pytorch深度学习框架
访问 PyTorch 官网 下滑,点击历史版本;
选取所需版本,如torch==2.1.0.
获取下载链接
根据获取的命令进行安装
测试可用性:
Python
Import torch
Torch.cuda.is_availabe()
二、 模型训练(以ChatGLM-6B为例
)
1. 克隆开源代码仓
##pip修改为清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config list
##克隆代码仓
git clone https://github.com/THUDM/ChatGLM-6B.git
cd ChatGLM-6B
vim requirements.txt
pip install -r requirements.txt
pip install deepspeed
pip install rouge_chinese nltk jieba datasets
2. 下载数据集
ADGEN 数据集数据集格式:
从 Google Drive 或者 Tsinghua Cloud 下载处理好的 ADGEN 数据集,将解压后的 AdvertiseGen 目录放到本目录下
3. 下载模型权重(通过modelScope下载)
##安装lfs
apt install git-lfs
##克隆权重
git clone git clone https://www.modelscope.cn/zhipuai/chatglm-6b.git
##如果由于网络原因下载不下来,先通过windows下载至本地,然后上传至服务器
4. 模型训练
编写训练启动脚本:
vim train.sh
拉起训练
bash train.sh
- 编写推理demo(使用pretrain模型)
vim infencendemo.py
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("chatglm-6B", trust_remote_code=True)
model = AutoModel.from_pretrained("chatglm-6B", trust_remote_code=True).half().cuda()
model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)
response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)
print(response)
执行推理脚本:
python infencedemo.py
----结束