跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

双显卡环境下 LLaMA-Factory 大模型微调环境搭建

详细记录了在双显卡环境下搭建 LLaMA-Factory 大模型微调环境的完整步骤。内容包括环境检测、CUDA 与 PyTorch 版本匹配、llama.cpp 及 HuggingFace 工具安装、核心依赖库配置、Flash-Attention 与 Unsloth 等加速方案部署,以及训练前的测试与微调实战。针对 Windows 平台常见的依赖冲突、环境变量设置及显存优化问题提供了具体解决方案。

星云发布于 2026/4/6更新于 2026/7/2257 浏览
双显卡环境下 LLaMA-Factory 大模型微调环境搭建

查看环境

CPU:R7 9800X3D
RAM:96GB(5600)
GPU:RTX 4060Ti 16GB * 2

nvidia-smi

我的显卡是 RTX 4060Ti,CUDA 最高支持的版本为 12.9,理论上有 11.8、12.6、12.8 三个版本可以使用,但是在实际中,11.8、12.6 是不支持 50 系显卡的,所以需要使用 12.8。

安装环境

根据硬件环境确定了软件环境。选择环境为 Python3.12.10 + CUDA12.8 + PyTorch2.7.0。

在安装之前需要先安装 Anaconda、Python 和 Visual Studio 的 C++ 桌面开发环境。

安装 llama.cpp

下载(需要先安装 CUDA 和 python): 安装 curl(使用联网下载模型,可选)

git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
.ootstrap-vcpkg.bat
.
vcpkg install curl:x64-windows

需手动新建模型下载目录 C:\Users\Administrator\AppData\Local\llama.cpp。

git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
cmake -B build -DGGML_CUDA=ON -DLLAMA_CURL=OFF
cmake --build build --config Release
  • -B build:指定构建目录为 ./build。
  • -DGGML_CUDA=ON:启用 CUDA 支持(需已安装 CUDA 工具包)。
  • -DLLAMA_CURL=ON:启用 CURL 支持(需已安装 curl)。

安装依赖:

# 也可以手动安装 torch 之后,再安装剩下的依赖
pip install -r requirements.txt

进入 build\bin\Release 目录开始使用 llama。

安装 huggingface-cli

用于下载模型。

pip install -U huggingface_hub

设置环境变量:

变量名说明
HF_HOME模型保存路径
HF_ENDPOINT从什么地方下载模型:使用国内镜像站:https://hf-mirror.com

下载指令如下:

huggingface-cli download --resume-download deepseek-ai/DeepSeek-R1 --local-dir e:/model --local-dir-use-symlinks False
  • --repo-type dataset 下载数据集
  • --resume-download 已弃用
  • --local-dir 保存路径
  • deepseek-ai/DeepSeek-R1 为下载的模型
  • --local-dir-use-symlinks False 取消软连接,Windows 中没有软链接
  • 可以简化为:

    huggingface-cli download deepseek-ai/DeepSeek-R1
    

    下载 LLaMa-factory

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

    安装 LLaMa-factory

    如果出现环境冲突,请尝试使用 pip install --no-deps -e 解决。

    conda create -n llama_factory python=3.12
    conda activate llama_factory
    cd LLaMA-Factory
    pip install -e .[metrics]
    

    这里指定 metrics 参数是安装 jieba 分词库等,方便后续可能要训练或者微调中文数据集。

    可选的额外依赖项:torch、torch-npu、metrics、deepspeed、liger-kernel、bitsandbytes、hqq、eetq、gptq、aqlm、vllm、sglang、galore、apollo、badam、adam-mini、qwen、minicpm_v、modelscope、openmind、swanlab、quality。

    名称描述
    torch开源深度学习框架 PyTorch,广泛用于机器学习和人工智能研究中。
    torch-npuPyTorch 的昇腾设备兼容包。
    metrics用于评估和监控机器学习模型性能。
    deepspeed提供了分布式训练所需的零冗余优化器。
    bitsandbytes用于大型语言模型量化。
    hqq用于大型语言模型量化。
    eetq用于大型语言模型量化。
    gptq用于加载 GPTQ 量化模型。
    awq用于加载 AWQ 量化模型。
    aqlm用于加载 AQLM 量化模型。
    vllm提供了高速并发的模型推理服务。
    galore提供了高效全参微调算法。
    badam提供了高效全参微调算法。
    qwen提供了加载 Qwen v1 模型所需的包。
    modelscope魔搭社区,提供了预训练模型和数据集的下载途径。
    swanlab开源训练跟踪工具 SwanLab,用于记录与可视化训练过程
    dev用于 LLaMA Factory 开发维护。

    安装好后就可以使用 llamafactory-cli webui 打开 Web 页面了。

    如果出现找不到 llamafactory-cli,是没有将该路径加入环境变量,找到程序所在路径,加入 path 环境变量即可。

    安装 CUDA12.8+PyTorch2.7.0

    因为上述方式似乎默认安装了一个 CPU 版本的 pytorch,但是版本不是我们想要的,直接安装覆盖即可。具体方法根据 PyTorch 相应版本提供的安装方式进行安装。

    pip3 install torch==2.7.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
    

    CUDA 下载链接:https://developer.nvidia.com/cuda-toolkit-archive 选择适合的版本进行安装,安装好后通过 nvcc --version 查看是否安装成功,如果成功输出版本号则安装成功。

    nvcc --version
    

    安装 bitsandbytes

    如果要在 Windows 平台上开启量化 LoRA(QLoRA),需要安装 bitsandbytes 库。使用 pip 安装。

    pip install bitsandbytes
    

    也可以使用已经编译好的,支持 CUDA 11.1 到 12.2,根据 CUDA 版本情况选择适合的发布版本。

    pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.41.2.post2-py3-none-win_amd64.whl
    

    如果上面的方法都不行,就使用源码安装。

    git clone https://github.com/timdettmers/bitsandbytes.git
    cd bitsandbytes
    setCUDA_VERSION=128
    make cuda12x python setup.py install
    

    Windows 中如果无法使用 make 可以使用 cmake。

    cmake -B . -DCOMPUTE_BACKEND=cuda -S .
    cmake --build .
    pip install .
    

    Windows 的 make 下载地址:https://gnuwin32.sourceforge.net/packages/make.html

    加速

    LLaMA-Factory 支持多种加速技术,包括:FlashAttention、Unsloth、Liger Kernel。三种方法选择其中一个就可以了,或者不安装。

    安装 flash-attention

    FlashAttention 能够加快注意力机制的运算速度,同时减少对内存的使用。 检查环境:

    pip debug --verbose
    

    编译好的下载链接:https://github.com/bdashore3/flash-attention/releases

    由于没有完全匹配的版本,所以选择了最接近的一个版本。使用 pip 安装。

    pip install E:\wheels\flash_attn-2.7.4.post1+cu124torch2.6.0cxx11abiFALSE-cp312-cp312-win_amd64.whl
    

    如果无法使用可能需要源码编译安装。

    Unsloth 安装

    Unsloth 框架支持 Llama, Mistral, Phi-3, Gemma, Yi, DeepSeek, Qwen 等大语言模型并且支持 4-bit 和 16-bit 的 QLoRA/LoRA 微调,该框架在提高运算速度的同时还减少了显存占用。

    需要先安装 xformers, torch, BitsandBytes 和 triton,并且只支持 NVIDIA 显卡。

    pip install unsloth
    

    显存和参数关系:

    模型参数QLoRA (4-bit) VRAMLoRA (16-bit) VRAM
    3B3.5 GB8 GB
    7B5 GB19 GB
    8B6 GB22 GB
    9B6.5 GB24 GB
    11B7.5 GB29 GB
    14B8.5 GB33 GB
    27B22 GB64 GB
    32B26 GB76 GB
    40B30 GB96 GB
    70B41 GB164 GB
    81B48 GB192 GB
    90B53 GB212 GB
    405B237 GB950 GB

    Liger Kernel 安装

    Liger Kernel 是一个大语言模型训练的性能优化框架,可有效地提高吞吐量并减少内存占用。

    测试

    测试 PyTorch 和 CUDA

    编写一个测试程序。

    import os
    import torch
    os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
    print("PyTorch Version:", torch.__version__)
    print("CUDA Available:", torch.cuda.is_available())
    if torch.cuda.is_available():
        print("CUDA Version:", torch.version.cuda)
        print("Current CUDA Device Index:", torch.cuda.current_device())
        print("Current CUDA Device Name:", torch.cuda.get_device_name(0))
    else:
        print("CUDA is not available on this system.")
    

    测试依赖库

    对基础安装的环境做一下校验,输入以下命令获取训练相关的参数指导,否则说明库还没有安装成功。

    llamafactory-cli train -h
    

    Windows 中如果报 libuv 的错,则使用以下命令。

    set USE_LIBUV=0 && llamafactory-cli train -h
    

    双显卡在 Windows 平台会报错,需要禁用一张显卡,或者使用以下环境变量试试。

    set CUDA_VISIBLE_DEVICES=0,1
    

    测试环境是否正常

    Windows 似乎不支持 CUDA_VISIBLE_DEVICES=0 指定显卡,并且也不支持''换行 console,分别对应修改: 对于第一个问题,一种方式是修改环境变量,在用户变量或者系统变量加一行就可以。CUDA_VISIBLE_DEVICES 0。

    llamafactory-cli webchat --model_name_or_path /media/codingma/LLM/llama3/Meta-Llama-3-8B-Instruct --template llama3
    llamafactory-cli webchat E:hf\hub\LLaMA-Factory\examples\inference\llama3.yaml
    

    训练

    安装 deepseep。

    pip install deepspeed
    

    Windows 平台下在模型训练的过程中出现 'RuntimeError: CUDA Setup failed despite GPU being available' 的错误,导致训练中断。

    处理方法 1:

    pip uninstall bitsandbytes
    pip install bitsandbytes-windows
    

    执行上述的命令如果没有解决问题,试一下一下方法:

    pip uninstall bitsandbytes
    pip install bitsandbytes-cuda128
    pip uninstall bitsandbytes-cuda128
    pip install bitsandbytes
    

    在运行过程中所有的错误无非两种情况造成的。

    • 情况 1:安装环境出现冲突(包的依赖出现冲突或者 CUDA 的版本没有安装对);
    • 情况 2:权限不够(sudo 运行或者管理员下运行即可解决,一般报错信息中会出现 permission 字样)。

    WebUI 微调

    代码微调

    ''' 需要的依赖 torch transformers datasets peft bitsandbytes '''
    # 测试模型是否可用
    from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments
    
    # 加载模型 Hugging face 提前下载
    model_name = r'E:\hf\DeepSeekR1DistillQwen1.5B'
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    
    # 模型加载成功之后注释 model 代码,否则每次都占用内存 (如果内存不够,可以使用 device_map='auto')
    model = AutoModelForCausalLM.from_pretrained(model_name, device_map='auto', trust_remote_code=True)
    
    for name, param in model.named_parameters():
        if param.is_meta:
            raise ValueError(f"Parameter {name} is in meta device.")
    print('---------------模型加载成功-------------')
    
    # 制作数据集
    from data_prepare import samples
    import json
    with open('datasets.jsonl', 'w', encoding='utf-8') as f:
        for s in samples:
            json_line = json.dumps(s, ensure_ascii=False)
            f.write(json_line + '\n')
    else:
        print('-------数据集制作完成------')
    
    # 准备训练集和测集
    from datasets import load_dataset
    dataset = load_dataset('json', data_files='datasets.jsonl')
    

    目录

    1. 查看环境
    2. 安装环境
    3. 安装 llama.cpp
    4. 也可以手动安装 torch 之后,再安装剩下的依赖
    5. 安装 huggingface-cli
    6. 下载 LLaMa-factory
    7. 安装 LLaMa-factory
    8. 安装 CUDA12.8+PyTorch2.7.0
    9. 安装 bitsandbytes
    10. 加速
    11. 安装 flash-attention
    12. Unsloth 安装
    13. Liger Kernel 安装
    14. 测试
    15. 测试 PyTorch 和 CUDA
    16. 测试依赖库
    17. 测试环境是否正常
    18. 训练
    19. WebUI 微调
    20. 代码微调
    21. 测试模型是否可用
    22. 加载模型 Hugging face 提前下载
    23. 模型加载成功之后注释 model 代码,否则每次都占用内存 (如果内存不够,可以使用 device_map='auto')
    24. 制作数据集
    25. 准备训练集和测集
    • 免费图片AI生成工具免费生成了解详情
    • Magick API 一键接入全球大模型注册送1000万token查看
    • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
    • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
    • 100+免费在线小游戏爽一把
    极客日志微信公众号二维码

    微信扫一扫,关注极客日志

    微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

    更多推荐文章

    查看全部
    • VSCode Copilot 接入 OpenAI 兼容自定义模型方案
    • AM32 无人机电调源码架构与工作原理解析
    • Stable Diffusion 详细使用教程:安装、配置与实战指南
    • CentOS 7 安装 JDK 1.8 及解决 wget 命令缺失问题
    • Python 副业变现的常见渠道与合规建议
    • Cursor 搭配 GitHub Copilot 实战:构建高效 AI 编程工作流
    • 微信小程序城市公交查询与失物招领系统的开发笔记
    • 金融系统高危 SSRF 漏洞挖掘实战
    • DeepSeek-V4 深度技术报告:原生多模态架构
    • Stable Diffusion 本地部署教程:环境搭建与 4K 人像生成
    • MacBook 配置 Java 开发环境指南
    • Java CRM 系统架构设计与高并发实战解析
    • 几款主流免费 AI 视频生成工具推荐
    • 开源硬件与Python融合:青少年科技创新教育实践指南
    • 基于 LLaMA-Factory 微调 ChatGLM3 模型实战
    • 从三年前端到韩国 CS 硕士:我的留学复盘与回归
    • 基于 Isaac Lab 的 Cartpole 平衡机器人训练与代码解析
    • AGV调度系统(RCS)详解:架构、功能与核心调度算法
    • Linux 底层核心精讲:环境变量、命令行参数与程序地址空间
    • JDK 21 开发环境配置指南

    相关免费在线工具

    • 加密/解密文本

      使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

    • RSA密钥对生成器

      生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

    • Mermaid 预览与可视化编辑

      基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

    • 随机西班牙地址生成器

      随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

    • Gemini 图片去水印

      基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

    • curl 转代码

      解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online