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

ip address

ubuntu更改国内源

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错误,就按下图方式解决

sudo rm /var/lib/apt/lists/* -vf

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

sudo lshw -C display

sudo lspci |grep -i nvidia

ubuntu实时查看nvdia显卡usage

watch -n 2 nvidia-smi

2. 安装Nvidia驱动,cuda, cudnn

2.1 先来一套准备工作

安装依赖

	sudo apt-get update  
	sudo apt-get install g++
	sudo apt-get install gcc
	sudo apt-get install make

卸载驱动

	sudo apt-get remove --purge nvidia*   # 或者nvidia-*

下载Nvidia驱动官方驱动 | NVIDIA

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

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

sudo nano/etc/modprobe.d/blacklist.conf 或者(blacklist-nouveau.conf)

在末尾添加

blacklist nouveau
options nouveau modeset=0

输入命令

sudo update-initramfs -u

重启

sudo reboot

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

lsmod | grep nouveau

关闭桌面

sudo telinit 3

禁用x-window服务

sudo /etc/init.d/gdm3 stop或者(sudo service gdm3 stop)

2.2 正式安装nvidia驱动

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

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)

重新启动界面

sudo init 5 

测试显卡是否安装成功

nvidia-smi

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

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

去官网寻找适合的版本

CUDA Toolkit Archive | NVIDIA Developer

下载下来以后安装

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可以看到)

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

mkdir -p /home/llmdev/app/cuda/

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

然后设置cuda环境变量

export PATH=/home/llmdev/apps/cuda/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/llmdev/apps/cuda/lib64

生效命令

source ~/.bashrc

查看是否成功

nvcc -V

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

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

2.4 安装cudnn

下载对应版本

cuDNN Archive | NVIDIA Developer

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

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

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*

验证是否安装成功

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的感觉)

sudo apt install python3.10-venv

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

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

./pip3 install torch torchvision torchaudio

验证是否跑在gpu上

安装llama其他依赖

./pip install -r requirements

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

 /home/llmdev/Desktop/llama-recipes/llmdevenv/bin/python -m lama recipes.finetuning

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/310126.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32——高级定时器输出比较模式实验

1高级定时器输出比较模式实验 1.1高级定时器输出比较模式实验原理 1.2高级定时器输出比较模式实验实验配置步骤 1,配置定时器基础工作参数 HAL_TIM_OC_Init() 2,定时器PWM输出MSP初始化 HAL_TIM_OC_MspInit() 配置NVIC、CLOCK、GPIO等 3,配…

计算机组成原理之计算机硬件发展和计算机系统的组成

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

【目标跟踪】多相机多目标跟踪

文章目录 前言一、计算思路二、代码三、结果 前言 单相机目标跟踪之前博客已经有过基本介绍,本篇博客主要介绍一种多相机目标跟踪的计算方法已知各相机内外参,如何计算共视区域像素投影?废话不多说,见下图。 同一时刻相机A与相机…

HCIA-Datacom题库(自己整理分类的)_09_Telent协议【13道题】

一、单选 1.某公司网络管理员希望能够远程管理分支机构的网络设备,则下面哪个协议会被用到? RSTP CIDR Telnet VLSM 2.以下哪种远程登录方式最安全? Telnet Stelnet v100 Stelnet v2 Stelnet v1 解析: Telnet 明文传输…

cocos uuid 相关问题一

暂时记录 1.9.x 通过UUID搜索资源 uuid压缩 Editor.UuidUtils.compressUuid uuid解压 Editor.UuidUtils.decompressUuid 新版本 uuid 压缩 Editor.Utils.UuidUtils.compressUuid uuid 解压 Editor.Utils.UuidUtils.decompressUuid 算法: decompressUui…

【卡方检验(Chi-Squared Test)的原理简介】

文章目录 卡方检验(Chi-Squared Test)的原理简介1. 卡方检验的流程借助scipy进行卡方检验3 连续变量的卡方检验4 借助sklearn进行卡方检验特征筛选 卡方检验(Chi-Squared Test)的原理简介 在一般情况下,卡方检验是针对…

数控开料机对比木工雕刻机的优势

数控开料机和木工雕刻机都属于木工机械加工设备,都可以用来开料和雕刻,但在市场价格、床体结构、技术要求等方面二者存在不小的差异,那么全自动数控开料机对比普通木工雕刻机有什么优势呢。 首先我们都知道,木工雕刻机主要应用于…

从优化设计到智能制造:生成式AI在可持续性3D打印中的潜力和应用

可持续性是现代工业中一个紧迫的问题,包括 3D 打印领域。为了满足环保制造实践日益增长的需求,3D 打印已成为一种有前景的解决方案。然而,要使 3D 打印更具可持续性,还存在一些需要解决的挑战。生成式人工智能作为一股强大的力量&…

计算机网络面试八股复习:常见的7/5/4层网络模型、各层协议以及键入网址到显示页面的流程

七层/五层/四层 网络模型 名称 OSI七层模型 TCP/IP四层模型 五层模型 关系图 常见协议 精简部分,完整版见上图 应用层 : TFTP(简单文件传输协议),HTTP,DNS,RIP(路由信息协议) 表…

阿里云实时计算企业级状态存储引擎 Gemini 技术解读

本文整理自阿里云 Flink 存储引擎团队李晋忠,兰兆千,梅源关于阿里云实时计算企业级状态存储引擎 Gemini 的研究,内容主要分为以下五部分: 流计算状态访问的痛点企业级状态存储引擎GeminiGemini 性能评测&线上表现结语参考 一、…

原型模式

为什么要使用原型模式 不用重新初始化对象,而是动态地获得对象运行时的状态。适用于当创建对象的成本较高时,如需进行复杂的数据库操作或复杂计算才能获得初始数据。 优点是可以隐藏对象创建的细节,减少重复的初始化代码;可以在…

DataFrame详解

清洗相关的API 清洗相关的API: 1.去重API: dropDupilcates 2.删除缺失值API: dropna 3.替换缺失值API: fillna 去重API: dropDupilcates dropDuplicates(subset):删除重复数据 1.用来删除重复数据,如果没有指定参数subset,比对行中所有字段内容,如果全部相同,则认为是重复数据,…

分布式数据库原理及技术题目汇总(上)

题目汇总 选择 1.(单选题,3.0分)以下说法中不正确的是(B )。 A.HIVE中create table命令使用时,表类型可以存储为ORC。 B.HIVE中create table命令使用时,必须包含row format delimited。 C.HIVE中create table命令使用时若含r…

儿童护眼台灯什么品牌好?儿童护眼台灯品牌排行

台灯大家都不陌生,但使用它的人有多少呢,准确使用的人又有多少呢,我们就是为了照明才会去买台灯,而时间久了,你就会眼睛刺痛,那就是没有选对台灯和没有正确使用台灯,还是建议大家买具有护眼功能…

首次落地零担快运!商用车自动驾驶跑出交付加速度

即将迈入2024年,还活着的自动驾驶玩家,身上有两个显著标签:选对了细分赛道、会玩。 10月以来,Cruise宣布在美国德州奥斯汀、休斯顿、亚利桑那州凤凰城和加州旧金山全面停止所有自动驾驶出租车队运营服务,通用汽车计划…

OSS 上传的操作

OSS 上传的操作&#xff1a; 依赖包&#xff1a; <!-- 阿里云OSS --><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version></dependency> 配置文…

基于Java SSM框架实现音乐推荐网站项目【项目源码+论文说明】

基于java的SSM框架实现音乐推荐网站演示 摘要 中国风音乐推介网站近年来已成为风靡全球的新兴艺术形式。国内涌现出了大批优秀、有才华的爱好者和许多经久不衰的经典作品。中国风音乐推介网站的兴起打破了音乐界格局,也突破了原有分类唱法发展中的瓶颈,为声乐艺术的发展开辟了…

为啥领导都爱说“我只看结果”?

点击下方“JavaEdge”&#xff0c;选择“设为星标” 第一时间关注技术干货&#xff01; 免责声明~ 任何文章不要过度深思&#xff01; 万事万物都经不起审视&#xff0c;因为世上没有同样的成长环境&#xff0c;也没有同样的认知水平&#xff0c;更「没有适用于所有人的解决方案…

SpringCloud 之HttpClient、HttpURLConnection、OkHttpClient切换源码

承接上文&#xff0c;之前已经分析过OpenFegin 的创建、发送请求源码了&#xff0c;接下来&#xff0c;分析下底层的HttpClient、HttpURLConnection、OkHttpClient切换从源码级别来看是如何做到的。 Spring Cloud OpenFegin&#xff08;创建、发送请求&#xff09;源码 Http…

创建mysql普通用户

一、创建mysql普通用户的原因&#xff1a; 权限控制&#xff1a;MySQL的权限系统允许您为每个用户分配特定的权限。通过创建普通用户&#xff0c;您可以根据需要为每个用户分配特定的数据库和表权限&#xff0c;而不是将所有权限授予一个全局管理员用户。这有助于提高数据库的…