LLaMA-Factory:环境准备

一、硬件和系统

  • 操作系统: Ubuntu 24.04.2 LTS(64位)
  • GPU: NVIDIA RTX 4090 笔记本 GPU,16GB显存
  • CPU: 建议高性能多核 CPU(如 Intel i7/i9 或 AMD Ryzen 7/9)以支持数据预处理,我的是32核。
  • RAM: 至少 32GB,推荐 64GB 以支持大型模型加载和数据处理,我的是64GB内存。
  • 存储: NVMe SSD(至少 500GB 可用空间),用于存储模型权重、数据集和缓存文件,我的SSD2TB。
  • 网络: 稳定的科学的网络连接,用于下载依赖和模型

注意: RTX 4090 笔记本 GPU 的 16GB VRAM 限制了可运行的模型大小。建议使用 4-bit 或 8-bit 量化模型(如 LLaMA 3.1 8B 或 13B)以适应 VRAM 限制。

二、安装NVIDIA驱动和CUDA

RTX 4090 需要最新的 NVIDIA 驱动和 CUDA 工具包以支持 GPU 加速。安装前检查机器配置,要适配自己的机器配置才行。

1、检查GPU识别

lspci | grep -i nvidia
# 输出应显示类似 "NVIDIA Corporation Device" 的信息。
# 如果没有输出,可能需要检查硬件连接或 BIOS 设置。
01:00.0 VGA compatible controller: NVIDIA Corporation GN21-X11 (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 22bb (rev a1)

2、检查推荐的驱动

ubuntu-drivers devices## 输出内容找到类似 "driver   : nvidia-driver-575 - third-party non-free recommended" 的信息
vendor   : NVIDIA Corporation
model    : GN21-X11
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-575 - third-party non-free recommended
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-570-server-open - distro non-free

输出会显示推荐的驱动版本(如 nvidia-driver-575)。注意recommended信息。

3、安装推荐的驱动

sudo apt install nvidia-driver-575 -y

4、重启系统后验证驱动安装

sudo reboot
nvidia-smi
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.133.20             Driver Version: 570.133.20     CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+

输出应显示 RTX 4090 的信息和驱动版本(如 550.XX)。

⚠️注意:安装推荐的驱动时自动安装的是CUDA运行时环境(包含基础库和头文件),但不会包含完整的CUDA Toolkit开发工具链(如nvcc编译器)。如需完整开发环境仍需单独安装。

nvidia-smi  # 确认驱动版本和CUDA兼容性
ls /usr/local  # 查看已安装的CUDA版本目录

假如我的驱动版本和CUDA版本分别是:Driver Version: 570.133.20 CUDA Version: 12.8 ,再查看已安装的CUDA版本目录,假如根据我的目录结构(已存在cuda-12.9),安装CUDA 12.8时需注意以下关键点:


‌1. 版本共存机制‌

  • CUDA支持多版本共存,不同版本会安装到独立目录(如/usr/local/cuda-12.8/usr/local/cuda-12.9
  • 默认符号链接/usr/local/cuda会指向最后安装的版本,可通过ls -l /usr/local/cuda查看当前激活版本

2.安装CUDA12.8

# 添加NVIDIA官方仓库(Ubuntu 24.04)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update# 安装指定版本
sudo apt install cuda-12-8

3.切换版本

# 修改符号链接指向目标版本
sudo rm /usr/local/cuda
sudo ln -s /usr/local/cuda-12.8 /usr/local/cuda# 更新环境变量
echo 'export PATH=/usr/local/cuda-12.8/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

4.冲突排查

  • 驱动兼容性‌:CUDA 12.8要求驱动版本≥570.41.03,你的驱动570.133.20已满足
  • 路径冲突‌:若安装失败,检查/usr/local/cuda-12.8是否已存在,可手动删除旧目录
  • 工具链验证‌:安装后运行nvcc --versionnvidia-smi确认版本对应关系

⚠️注意

  • 同时只能有一个CUDA版本通过/usr/local/cuda符号链接激活,但编译时可显式指定路径(如I/usr/local/cuda-12.9/include
  • 深度学习框架(如PyTorch)通常依赖特定CUDA版本,需匹配其要求
  • 如果需要可以使用update-alternatives管理多版本,自己查一下使用方法。
  • 另外根据我的驱动版本(570.133.20)和当前环境,NVIDIA驱动570.133.20同时支持CUDA 12.8和12.923,安装CUDA 12.9无需升级驱动。‌
    • 若项目明确要求CUDA 12.8,需保持当前版本
    • 若需Blackwell GPU(如RTX 5090)或最新特性,推荐CUDA 12.94
    • 灵活一些,再查看/usr/local/cuda-12.8发现已经安装好了,我就不切换cuda版本了。

至此,GPU驱动和CUDA工具包都安装完成了。

三、安装Python和依赖

LLaMA-Factory 基于 Python,需要安装适当的 Python 版本和依赖。

1、安装python

Ubuntu 24.04 默认包含 Python 3.12。确认版本:

python3 --version

⚠️注意:如果需要特定版本(如 3.10),可以自行安装。另外最好使用虚拟环境,用venv、uv或者conda都可以,避免以来冲突,可以自行检索搭建。

2、安装PyTorch

为 RTX 4090 安装支持 CUDA 的 PyTorch:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu123

验证 PyTorch 是否识别 GPU:

记得切换环境,比如我用的conda,切换到指定环境conda activate llama_factory

python -c "import torch; print(torch.cuda.is_available())"

输出应为 True。


至此python环境准备完毕。这与平常python环境安装无异,很简单。

四、安装LLaMA-Factory

LLaMA-Factory 是一个用于高效微调 LLaMA 模型的框架。

⚠️注意:要科学上网

1、克隆LLaMA-Factory仓库,或者其他办法,把源码弄过来,进入LLaMA-Factory目录。

git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory

2、安装依赖

安装LLama-Factory所需依赖,⚠️注意切换到虚拟环境,后续就不再提示了。

pip install -r requirements.txt
  • 注意: 如果遇到依赖冲突,可尝试升级 pip:

    pip install --upgrade pip

3、安装额外工具

为支持量化(如 4-bit 或 8-bit)和高效推理,安装以下工具:

pip install bitsandbytes
pip install transformers>=4.41.0
pip install accelerate

至此LLaMA-Factory框架应该已经安装完成,它提供了直观的web界面,可以通过llamafactory-cli webui 启动访问。接下来就是《准备模型和数据集》。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 uniapp的请求封装工具类以及使用【拿来就用】

一、创建一个http请求封装的js文件,名字自定义:my_http.js /*** 基础API请求地址(常量,全大写命名规范)* type {string}* constant*/ let BASE_URL //通过环境来判断基础路径 if (process.env.NODE_ENV development…

Qt应用程序启动时的一些思路:从单实例到性能优化的处理方案

程序启动时优化的价值 在桌面软件开发领域,应用程序的启动过程就像音乐的序曲,决定了用户对软件品质的第一印象。比如首次启动等待超过3秒时,会让大多数用户产生负面看法,而专业工具软件的容忍阈值甚至更低。Qt框架作为跨平台开发的利器,其启动过程的优化不仅关乎用户体验…

Node.js入门指南:开启JavaScript全栈开发之旅

Hi,我是布兰妮甜 !Node.js让JavaScript突破了浏览器的限制,成为全栈开发的利器。作为基于V8引擎的高性能运行时,它彻底改变了JavaScript只能做前端开发的局面。本文将带你快速掌握Node.js的核心用法:环境搭建与模块系统…

MySQL MCP 使用案例

## 概述 MySQL MCP(MySQL Multi-Channel Protocol)是MySQL的多通道协议实现,提供了高效的数据库连接池和负载均衡功能。本文档将介绍MySQL MCP的基本使用方法和常见案例。 ## 环境准备 ### 安装MySQL MCP bash pip install mysql-mcp ### 基…

基于 React Hook 封装 Store 的三种方案

基于 React Hook 封装 Store 的三种方案 方案一&#xff1a;基于 useSyncExternalStore 的轻量级 Store&#xff08;推荐&#xff09; import { useSyncExternalStore } from react;type Store<T> {state: T;listeners: Set<() > void>; };function createSt…

MySQL 8.0 OCP 1Z0-908 131-140题

Q131.You have upgraded the MySQL binaries from 5.7.28 to 8.0.18 by using an in-place upgrade. Examine the message sequence generated during the first start of MySQL 8.0.18: 。。。[System]。。。/usx/sbin/mysqld (mysqld 8.0.18-commercial) starting as process…

正向代理和反向代理的区别?

前言 在现代网络架构中&#xff0c;代理服务器扮演着至关重要的角色。无论是企业网络还是互联网服务&#xff0c;代理技术都广泛应用以提高性能、安全性和可管理性。正向代理和反向代理是两种最常见的代理类型&#xff0c;虽然它们都作为中间人处理客户端和服务器之间的通信&am…

技术融资:概念与形式、步骤与案例、挑战与应对、发展趋势

一、技术融资概述 技术融资是指通过外部资金支持技术研发、产品开发或市场扩展的过程。它通常涉及风险投资、天使投资、私募股权、众筹等多种形式。技术融资的核心目标是为技术创新提供资金保障&#xff0c;推动技术从概念到市场的转化。 技术融资的主要形式包括以下几种&…

从硬件角度理解“Linux下一切皆文件“,详解用户级缓冲区

目录 前言 一、从硬件角度理解"Linux下一切皆文件" 从理解硬件是种“文件”到其他系统资源的抽象 二、缓冲区 1.缓冲区介绍 2.缓冲区的刷新策略 3.用户级缓冲区 这个用户级缓冲区在哪呢&#xff1f; 解释关于fork再加重定向“>”后数据会打印两份的原因 4.内核缓冲…

车道线检测----CLRERNet

CLRerNet&#xff1a;利用LaneIoU提升车道检测置信度 摘要 车道标检测在自动驾驶和驾驶辅助系统中至关重要。现代深度车道检测方法在车道检测基准测试中表现出色。通过初步的预言机实验&#xff0c;我们首次拆解车道表示组件以确定研究方向。我们表明&#xff0c;正确的车道位…

ML307R 的 USB Vendor ID (VID):0x2ECC ML307R 的 USB Product ID (PID):0x3012

可以的&#xff0c;在文档的「Table 3. VID、PID查询表」中明确指出&#xff1a; ML307R 的 USB Vendor ID (VID)&#xff1a;0x2ECCML307R 的 USB Product ID (PID)&#xff1a;0x3012 你可以将这对 VID/PID 加到 Linux 的 option 驱动中&#xff0c;比如&#xff1a; ech…

论信息系统项目的范围管理

论信息系统项目的范围管理 前言一、规划范围管理&#xff0c;收集需求二、定义范围三、创建工作分解结构四、确认范围五、控制范围 前言 为了应对烟草零售客户数量大幅度增长所带来的问题&#xff0c;切实履行控烟履约的相关要求&#xff0c;同时也为了响应国务院“放管服”政策…

MongoDB与PostgreSQL两个数据库的特点详细对比

MongoDB 和 PostgreSQL 是两种不同类型的数据库&#xff0c;分别属于 ​​NoSQL&#xff08;文档型&#xff09;​​ 和 ​​关系型&#xff08;SQL&#xff09;​​ 数据库。它们在数据模型、查询语言、扩展性、事务支持等方面有显著差异。以下是详细对比&#xff1a; ​​1. …

计算机网络:什么是电磁波以及有什么危害?

电磁波详解 电磁波(Electromagnetic Wave)是由电场和磁场相互激发、在空间中传播的能量形式。它既是现代通信的基石(如手机、Wi-Fi、卫星信号),也是自然界中光、热辐射等现象的本质。以下从定义、产生、特性、分类及应用全面解析: 一、电磁波的本质 1. 核心定义 电场与…

如何使用 Solana Yellowstone gRPC 重新连接和重放插槽

Yellowstone gRPC 是一个功能强大、可用于生产环境且经过实战检验的工具&#xff0c;用于流式传输实时的 Solana 数据。但在实际条件下&#xff0c;网络中断或服务器重启可能导致连接中断。如果没有适当的重连策略&#xff0c;你的应用程序可能会错过区块链的关键更新。 为了防…

foxmail - foxmail 启用超大附件提示密码与帐号不匹配

foxmail 启用超大附件提示密码与帐号不匹配 问题描述 在 foxmail 客户端中&#xff0c;启用超大附件功能&#xff0c;输入了正确的账号&#xff08;邮箱&#xff09;与密码&#xff0c;但是提示密码与帐号不匹配 处理策略 找到 foxmail 客户端目录/Global 目录下的 domain.i…

MySQL 事务(一)

文章目录 CURD不加控制&#xff0c;会有什么问题CURD满足什么属性&#xff0c;能解决上述问题&#xff1f;什么是事务为什么要有事务事务的版本支持了解事务的提交方式 事务常见操作方式研究并发场景事务的正常操作事务的非正常情况的案例结论事务操作的注意事项 CURD不加控制&…

CSS面试题汇总

在前端开发领域&#xff0c;CSS 是一项不可或缺的技术。无论是页面布局、样式设计还是动画效果&#xff0c;CSS 都扮演着重要的角色。因此&#xff0c;在前端面试中&#xff0c;CSS 相关的知识点往往是面试官重点考察的内容。为了帮助大家更好地准备面试&#xff0c;本文汇总了…

Java 后端给前端传Long值,精度丢失的问题与解决

为什么后端 Long 类型 ID 要转为 String&#xff1f; 在前后端分离的开发中&#xff0c;Java 后端通常使用 Long 类型作为主键 ID&#xff08;如雪花算法生成的 ID&#xff09;。但如果直接将 Long 返回给前端&#xff0c;可能会导致前端精度丢失的问题&#xff0c;特别是在 J…

对称二叉树的判定:双端队列的精妙应用

一、题目解析 题目描述 给定一个二叉树&#xff0c;检查它是否是镜像对称的。例如&#xff0c;二叉树 [1,2,2,3,4,4,3] 是对称的&#xff1a; 1/ \2 2/ \ / \ 3 4 4 3而 [1,2,2,null,3,null,3] 则不是镜像对称的&#xff1a; 1/ \2 2\ \3 3问题本质 判断一棵二叉…