ubuntu系统GPU从0开始构建大模型训练环境

一、环境搭建

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

在这里插入图片描述

  1. 编写推理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

在这里插入图片描述

----结束

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

保持成长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值