LLaMA-Factory:环境准备

news2025/7/19 10:05:31

一、硬件和系统

  • 操作系统: 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.coloradmin.cn/o/2378788.html

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

相关文章

ArrayList-集合使用

自动扩容,集合的长度可以变化,而数组长度不变,集合更加灵活。 集合只能存引用数据类型,不能直接存基本数据类型,除非包装 ArrayList会拿[]展示数据

一分钟用 MCP 上线一个 贪吃蛇 小游戏(CodeBuddy版)

我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 你好,我是悟空。 背景 上篇我们用 MCP 上线了一个 2048 小游戏,这次我们继续做一个 …

TTS:F5-TTS 带有 ConvNeXt V2 的扩散变换器

1,项目简介 F5-TTS 于英文生成领域表现卓越,发音标准程度在本次评测软件中独占鳌头。再者,官方预设的多角色生成模式独具匠心,能够配置多个角色,一次性为多角色、多情绪生成对话式语音,别出心裁。 最低配置…

大型语言模型中的QKV与多头注意力机制解析

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

基于地图的数据可视化:解锁地理数据的真正价值

目录 一、基于地图的数据可视化概述 (一)定义与内涵 (二)重要性与意义 二、基于地图的数据可视化的实现方式 (一)数据收集与整理 (二)选择合适的可视化工具 (三&a…

分布式链路跟踪

目录 链路追踪简介 基本概念 基于代理(Agent)的链路跟踪 基于 SDK 的链路跟踪 基于日志的链路跟踪 SkyWalking Sleuth ZipKin 链路追踪简介 分布式链路追踪是一种监控和分析分布式系统中请求流动的方法。它能够记录和分析一个请求在系统中经历的每…

刷leetcodehot100返航版--二叉树

二叉树理论基础 二叉树的种类 满二叉树和完全二叉树,二叉树搜索树 满二叉树 如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 节点个数2^n-1【n为树的深度】 完全二叉树 在完全二叉树…

双重差分模型学习笔记4(理论)

【DID最全总结】90分钟带你速通双重差分!_哔哩哔哩_bilibili 目录 总结:双重差分法(DID)在社会科学中的应用:理论、发展与前沿分析 一、DID的基本原理与核心思想 二、经典DID:标准模型与应用案例 三、…

Mysql 8.0.32 union all 创建视图后中文模糊查询失效

记录问题,最近在使用union all聚合了三张表的数据,创建视图作为查询主表,发现字段值为中文的筛选无法生效.......... sql示例: CREATE OR REPLACE VIEW test_view AS SELECTid,name,location_address AS address,type,"1" AS data_type,COALESCE ( update_time, cr…

Jenkins 执行器(Executor)如何调整限制?

目录 现象原因解决 现象 Jenkins 构建时,提示如下: 此刻的心情正如上图中的小老头,火冒三丈,但是不要急,因为每一次错误,都是系统中某个环节在说‘我撑不住了’。 原因 其实是上图的提示表示 Jenkins 当…

编程错题集系列(一)

编程错题集系列(一) 人生海海,山山而川。 谨以此系列作为自己一路的见证。本期重点:明明已经安装相关库,但在PyCharm中无法调用 最大的概率是未配置合适的解释器,也就是你的书放在B房间,你在A…

【原创】基于视觉大模型gemma-3-4b实现短视频自动识别内容并生成解说文案

📦 一、整体功能定位 这是一个用于从原始视频自动生成短视频解说内容的自动化工具,包含: 视频抽帧(可基于画面变化提取关键帧) 多模态图像识别(每帧图片理解) 文案生成(大模型生成…

Spark(32)SparkSQL操作Mysql

(一)准备mysql环境 我们计划在hadoop001这台设备上安装mysql服务器,(当然也可以重新使用一台全新的虚拟机)。 以下是具体步骤: 使用finalshell连接hadoop001.查看是否已安装MySQL。命令是: rpm -qa|grep ma…

基于 Python 的界面程序复现:标准干涉槽型设计计算及仿真

基于 Python 的界面程序复现:标准干涉槽型设计计算及仿真 在工业设计与制造领域,刀具的设计与优化是提高生产效率和产品质量的关键环节之一。本文将介绍如何使用 Python 复现一个用于标准干涉槽型设计计算及仿真的界面程序,旨在帮助工程师和…

c++成员函数返回类对象引用和直接返回类对象的区别

c成员函数返回类对象引用和直接返回类对象的区别 成员函数直接返回类对象&#xff08;返回临时对象&#xff0c;对象拷贝&#xff09; #include <iostream> class MyInt { public:int value;//构造函数explicit MyInt(int v0) : value(v){}//加法操作,返回对象副本&…

数字化转型- 数字化转型路线和推进

数字化转型三个阶段 百度百科给出的企业的数字化转型包括信息化、数字化、数智化三个阶段 信息化是将企业在生产经营过程中产生的业务信息进行记录、储存和管理&#xff0c;通过电子终端呈现&#xff0c;便于信息的传播与沟通。数字化通过打通各个系统的互联互通&#xff0c;…

IP68防水Type-C连接器实测:水下1米浸泡72小时的生存挑战

IP68防水Type-C连接器正成为户外设备、水下仪器和高端消费电子的核心组件。其宣称的“1米水深防护”是否真能抵御长时间浸泡&#xff1f;我们通过极限实测&#xff0c;将三款主流品牌IP68防水Type-C连接器沉入1米盐水&#xff08;模拟海水浓度&#xff09;中持续72小时&#xf…

【技术追踪】InverseSR:使用潜在扩散模型进行三维脑部 MRI 超分辨率重建(MICCAI-2023)

LDM 实现三维超分辨率~ 论文&#xff1a;InverseSR: 3D Brain MRI Super-Resolution Using a Latent Diffusion Model 代码&#xff1a;https://github.com/BioMedAI-UCSC/InverseSR 0、摘要 从研究级医疗机构获得的高分辨率&#xff08;HR&#xff09;MRI 扫描能够提供关于成像…

list重点接口及模拟实现

list功能介绍 c中list是使用双向链表实现的一个容器&#xff0c;这个容器可以实现。插入&#xff0c;删除等的操作。与vector相比&#xff0c;vector适合尾插和尾删&#xff08;vector的实现是使用了动态数组的方式。在进行头删和头插的时候后面的数据会进行挪动&#xff0c;时…

Java 框架配置自动化:告别冗长的 XML 与 YAML 文件

在 Java 开发领域&#xff0c;框架的使用极大地提升了开发效率和系统的稳定性。然而&#xff0c;传统框架配置中冗长的 XML 与 YAML 文件&#xff0c;却成为开发者的一大困扰。这些配置文件不仅书写繁琐&#xff0c;容易出现语法错误&#xff0c;而且在项目规模扩大时&#xff…