Ubuntu22.04,Nvidia4070配置llama2

大部分内容参考了这篇非常详细的博客,是我最近看到的为数不多的保姆级别的教学博客,建议大家去给博主点个赞【Ubuntu 20.04安装和深度学习环境搭建 4090显卡】_ubuntu20.04安装40系显卡驱动-CSDN博客

本篇主要是基于这篇博客结合自己配置的过程中一些注意点和补充说明(其实主要是方便自己以后配置)

本篇主要包含以下4个部分

++1. 安装配置Ubuntu++

++2. 安装nvidia驱动,cuda, cudnn++

++3. 配置python环境++

++4. 执行llama2训练模型++

在正式开始前,先送上配置过程中的第一个,**!!!!!!!双显卡的机器必须在bios里面切换成独立显卡!!!!!!**一定要改,一定要改,一定要改,不切换到独立显卡,后面配置都是白搭,配置过程中又不会报错,最后你会发现你的机器根本没有识别到nvidia的显卡

1. 安装ubuntu

1.1 下载Ubuntu

下载Ubuntu桌面系统 | Ubuntu

1.2 制作Ubuntu系统盘

下载Rufus工具:Rufus - Create bootable USB drives the easy way

注意分区类型选择GPT

1.3 安装Ubuntu

将镜像U盘插入电脑,通过U盘启动,具体不多说了,教程很多,有一个注意点就是简单粗暴点,选全部擦除后自动安装(图后面补),千万别折腾自己手动分区啥的了,linux也有一套自己的分区规则,需要花时间慢慢搞

1.4 配置Ubuntu

ubuntu查看当前ip

bash 复制代码
ip address

ubuntu更改国内源

bash 复制代码
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak


sudo rm /etc/apt/sources.list
# 使用vi时会自动创建文件
sudo vi /etc/apt/sources.list

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse 

sudo apt update

ubuntu中sudo apt update如果lock错误,就按下图方式解决

bash 复制代码
sudo rm /var/lib/apt/lists/* -vf

ubuntu查看显卡命令,再三确认下是否找到nvidia显卡,没找到的话就不要往下配置了,先解决找不到显卡的问题

bash 复制代码
sudo lshw -C display
bash 复制代码
sudo lspci |grep -i nvidia

ubuntu实时查看nvdia显卡usage

bash 复制代码
watch -n 2 nvidia-smi

2. 安装Nvidia驱动,cuda, cudnn

2.1 先来一套准备工作

安装依赖

bash 复制代码
	sudo apt-get update  
	sudo apt-get install g++
	sudo apt-get install gcc
	sudo apt-get install make

卸载驱动

bash 复制代码
	sudo apt-get remove --purge nvidia*   # 或者nvidia-*

下载Nvidia驱动官方驱动 | NVIDIA

这里有个,按照官网的自动推荐的版本,我会报一个错(忘记截图了),意思就是版本不匹配,所以可以点击下面这个查询历史版本,一个个找直到找到合适的为止

禁用nouveau(我也不知道是什么玩意,照着做就是了)

bash 复制代码
sudo nano/etc/modprobe.d/blacklist.conf 或者(blacklist-nouveau.conf)

在末尾添加

bash 复制代码
blacklist nouveau
options nouveau modeset=0

输入命令

bash 复制代码
sudo update-initramfs -u

重启

bash 复制代码
sudo reboot

重启后在终端输入如下命令,如果没有输出则说明成功禁用nouveau

bash 复制代码
lsmod | grep nouveau

关闭桌面

bash 复制代码
sudo telinit 3

禁用x-window服务

bash 复制代码
sudo /etc/init.d/gdm3 stop或者(sudo service gdm3 stop)

2.2 正式安装nvidia驱动

cd命令进入到存放驱动的目录,输入命令

bash 复制代码
sudo chmod 777 NVIDIA-Linux-x86_64-535.54.03.run   #给你下载的驱动赋予可执行权限,才可以安装
sudo ./NVIDIA-Linux-x86_64-535.54.03.run --no-opengl-files   #安装

安装过程中如果出现下面的选项则选择对应的操作

The distribution-provided pre-install script failed! Are you sure you want to continue?

选 yes

Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?

选 No

Nvidia's 32-bit compatibility libraries?

选 No

Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.

选 Yes(原作者说yes会卡在开机界面,我没有碰到,如果碰到安装以后卡在开机界面试试选No)

重新启动界面

bash 复制代码
sudo init 5 

测试显卡是否安装成功

bash 复制代码
nvidia-smi

如果看到这个界面了,就表示安装成功了

2.3 安装cuda(装驱动够烦了,这个也烦)

去官网寻找适合的版本

CUDA Toolkit Archive | NVIDIA Developer

下载下来以后安装

bash 复制代码
sudo sh cuda_11.8.0_520.61.05_linux.run

以下安装cuda步骤全部来自原作者博客,亲测有效

选accept

上下移动光标按空格 取消,只保留cuda toolkit 11,8

选择options,回车进入

选择toolkit options,回车进去,把需要去掉的东西去掉

修改安装路径,非root用户要放到 /home/用户名/app/cuda/下,root用户直接默认装就好了(原作者这么说的,我也不知道为什么)

这里有个**坑,**ubuntu 22.04版本home目录下没有用户名文件夹(只有在other locations可以看到)

反正我也怕不照着做出错,我就建了个文件夹

bash 复制代码
mkdir -p /home/llmdev/app/cuda/

建好文件夹以后,就可以把这个路径贴进去(忘记截图了,用原作者的,回头补上)

然后设置cuda环境变量

bash 复制代码
export PATH=/home/llmdev/apps/cuda/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/llmdev/apps/cuda/lib64

生效命令

bash 复制代码
source ~/.bashrc

查看是否成功

bash 复制代码
nvcc -V

出现这个画面就表示成功了

(装个东西为什么要这么复杂)

2.4 安装cudnn

下载对应版本

cuDNN Archive | NVIDIA Developer

这里原博客选了linux版本,其实有ubuntu版本,不知道为什么不选,我反正已经配的要吐了,怕出错,也选择linux版本,没有尝试ubuntu版本

下载完成需要把文件拷贝到cuda里去并赋予权限(这里原博客写的有点问题,需要全部拷贝而不是只拷贝cudnn.h)

bash 复制代码
sudo cp /home/llmdev/Desktop/cudnn/include/cudnn* /home/mdev/apps/cuda122/include
cp /home/llmdev/Desktop/cudnn/lib64/libcudnn* /home/lmdev/apps/cuda122/lib64sudo
sudo chmod a+r /home/lmdev/apps/cuda122/include/cudnn.h
sudo chmod a+r /home/lmdev/apps/cuda122/lib64/libcudnn*

验证是否安装成功

bash 复制代码
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

这样就成了(原地阵亡)

提个醒,这篇博客中所有关于路径的部分,大家都要关注一下,需要根据自己的实际情况有所变更。

3. 配置python环境

具体看这篇windows版本的,大差不差,就是linux命令和windows命令不一样而已

llama2 保姆级windows环境配置,训练,部署及常见问题解决方法-CSDN博客

下面简单描述下过程,git clone llama项目后,在项目内创建python 虚拟环境(网上的教程基本全是conda的,本人非常不喜欢用conda,就喜欢原生python的感觉)

bash 复制代码
sudo apt install python3.10-venv

python3 -m venv /home/lmdev/Desktop/llama-recipes/llmdevenv

安装torch环境(去官网看命令)

bash 复制代码
./pip3 install torch torchvision torchaudio

验证是否跑在gpu上

安装llama其他依赖

bash 复制代码
./pip install -r requirements

可以开始训练了(吐血。。。)

bash 复制代码
 /home/llmdev/Desktop/llama-recipes/llmdevenv/bin/python -m lama recipes.finetuning

过程太长了,细节后面等缓一口气再慢慢补充

相关推荐
数据小爬虫@2 小时前
深入解析:使用 Python 爬虫获取苏宁商品详情
开发语言·爬虫·python
健胃消食片片片片2 小时前
Python爬虫技术:高效数据收集与深度挖掘
开发语言·爬虫·python
飞行的俊哥4 小时前
Linux 内核学习 3b - 和copilot 讨论pci设备的物理地址在内核空间和用户空间映射到虚拟地址的区别
linux·驱动开发·copilot
ℳ₯㎕ddzོꦿ࿐5 小时前
解决Python 在 Flask 开发模式下定时任务启动两次的问题
开发语言·python·flask
CodeClimb5 小时前
【华为OD-E卷 - 第k个排列 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
一水鉴天5 小时前
为AI聊天工具添加一个知识系统 之63 详细设计 之4:AI操作系统 之2 智能合约
开发语言·人工智能·python
Channing Lewis5 小时前
什么是 Flask 的蓝图(Blueprint)
后端·python·flask
B站计算机毕业设计超人5 小时前
计算机毕业设计hadoop+spark股票基金推荐系统 股票基金预测系统 股票基金可视化系统 股票基金数据分析 股票基金大数据 股票基金爬虫
大数据·hadoop·python·spark·课程设计·数据可视化·推荐算法
hunter2062065 小时前
ubuntu向一个pc主机通过web发送数据,pc端通过工具直接查看收到的数据
linux·前端·ubuntu
不会飞的小龙人6 小时前
Docker Compose创建镜像服务
linux·运维·docker·容器·镜像