文章

Windows部署LLaMA-Factory微调大模型

1.安装Conda

建议安装在专门进行模型训练的盘,勾选环境变量配置便于直接使用系统自带终端操作

下载地址:https://www.anaconda.com/products/navigator

# 查看conda最新版本:https://github.com/conda/conda/releases
# 升级到最新版本,确保powershell7可以直接使用conda命令
conda install -n base -c defaults conda=25.3.1

# Conda创建llama_factory环境
conda create -n llama_factory python=3.12

# 进入创建的环境
conda activate llama_factory

pip安装慢可以更改镜像

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn

2.安装LLaMA-Factory

git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e '.[torch,metrics]'

有需要可以查看github文档:https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md

3.安装CUDA torch

# 卸载当前PyTorch
pip uninstall torch torchvision torchaudio

# 当前cuda是12.9,官网只到12.8,不低于Torch需要的版本即可
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128

若torch下载速度慢

# 可根据终端给出的地址,直接用下载器先下载whl
https://download.pytorch.org/whl/cu128/torch-2.7.0%2Bcu128-cp312-cp312-win_amd64.whl

# 安装whl
pip install torch-2.7.0+cu128-cp312-cp312-win_amd64.whl

# 再使用命令安装
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu128

验证

python

import torch
# 需要等待导入时间

torch.__version__
# 输出版本:'2.7.0+cu128'

torch.cuda.current_device()
# 输出:0

torch.cuda.get_device_name(0)
# 输出显卡信息:'NVIDIA GeForce RTX 4090'

4.下载模型

可以用modelscope或者hf-mirror,本文使用Qwen/Qwen3-8B模型文件进行微调

modelscope:https://www.modelscope.cn/models/Qwen/Qwen3-8B/files

hf-mirror:https://hf-mirror.com/Qwen/Qwen3-8B/tree/main

模型一般默认会下载到~/.cache/modelscope/hub默认路径,下载时可以增加指定路径

pip install modelscope
modelscope download --model 'Qwen/Qwen3-8B' --local_dir 'T:\LLM'

5.数据集制作

千问微调的数据格式

[
 {
    "from": "user",
    "value": "介绍自己"
  },
  {
    "from": "assistant",
    "value": "我是千问"
  },
  {
    "from": "user",
    "value": "你好"
  },
  {
    "from": "assistant",
    "value": "你好!很高兴为您服务"
  }
]

数据集的excel表可以做成以下形式

user        | assistant
------------|-------------
介绍自己     | 我是千问
你好        | 你好!很高兴为您服务

excel转换成json的脚本

import pandas as pd
import json

# 读取 Excel 文件
file_path = 'your_file.xlsx'  # 替换为你的 Excel 文件路径

df = pd.read_excel(file_path, engine='openpyxl')

# 初始化对话列表
dialogue_data = []

# 遍历每一行数据
for _, row in df.iterrows():
    user_content = row['user']
    assistant_content = row['assistant']

    # 添加用户消息
    dialogue_data.append({
        "from": "user",
        "value": user_content
    })

    # 添加助手回复
    dialogue_data.append({
        "from": "assistant",
        "value": assistant_content
    })

# 保存为 JSON 文件
output_path = 'output.json'  # 输出文件路径

with open(output_path, 'w', encoding='utf-8') as f:
    json.dump(dialogue_data, f, ensure_ascii=False, indent=2)

print(f"转换完成,JSON 文件已保存到 {output_path}")

6.微调

启动wedui界面,首次启动需要点时间,启动后可以修改左上角第一个菜单,变更为中文

llamafactory-cli webui

自定义数据

llamafactory默认的数据集路径在 ~/LLaMA-Factory/data

如果不使用默认数据集路径,需要在自定义数据集文件夹下新增一个dataset_info.json文件,可以直接在data文件夹拷一份出来放进去修改

{
  "train": {
    "file_name": "train.json",
    "columns": {
      "prompt": "from",
      "response": "value"
    }
  },
  "valid": {
    "file_name": "valid.json",
    "columns": {
      "prompt": "from",
      "response": "value"
    }
  }
}

具体参数调整建议根据实际情况调整。

参考文章:

https://deepseek.csdn.net/67c95e5b3b685529b705db8c.html

https://blog.csdn.net/zw81929/article/details/126383677

许可协议:  CC BY 4.0