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.pswp.cn/diannao/83359.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83359.shtml
英文地址,請注明出處:http://en.pswp.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問題本質 判斷一棵二叉…