环境准备、数据准备、选择微调方法、执行训练、导出与部署这几个核心步骤。

一个比较清晰高效的路径是:使用 LLaMA-Factory 这类框架,它提供了图形化界面(WebUI),能大大降低操作门槛。

💻 第一步:评估硬件与搭建软件环境

微调大模型对硬件有一定要求,在开始前需要先评估你的设备。

硬件配置参考

硬件是微调的基础,尤其是GPU的显存(VRAM)至关重要。以下是一些参考:

  • 入门/实验配置NVIDIA RTX 3090/4090 (24GB显存)。可以尝试微调 7B 参数级别的模型。

  • 进阶/生产配置NVIDIA A100 (40GB或80GB显存)。可以更从容地微调 13B 甚至更大参数的模型。

  • 最低门槛:如果显存有限(如12GB-16GB),可以尝试使用 QLoRA 等高效微调技术。

除了GPU,建议CPU支持AVX2指令集,内存至少32GB。

软件环境搭建 (推荐使用Conda)

使用 Conda 创建独立的Python环境,可以避免不同项目间的依赖冲突。

  1. 安装CUDA:确保已安装与你的PyTorch版本兼容的CUDA Toolkit。

  2. 创建并激活Conda环境

    bash

    conda create -n my_finetune_env python=3.10
    conda activate my_finetune_env

  3. 安装PyTorch:根据你的CUDA版本,从 PyTorch官网 获取安装命令。例如:

    bash

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

  4. 安装核心Python库

    bash

    pip install transformers datasets accelerate peft

📊 第二步:准备专属数据集

数据是微调的核心,其格式和质量直接影响最终效果。

  • 数据格式:微调通常使用指令微调(Instruction Tuning) 数据。最常用的格式之一是 Alpaca格式,它是一个JSON对象列表,每个对象包含以下字段:

    • "instruction": 任务指令(必需)。

    • "input": 上下文或输入(可选)。

    • "output": 期望的模型输出(必需)。

    数据示例:

    json

    [
        {
            "instruction": "解释什么是量子计算",
            "input": "",
            "output": "量子计算是一种利用量子力学原理..."
        },
        {
            "instruction": "将以下句子翻译成英文",
            "input": "你好,世界!",
            "output": "Hello, world!"
        }
    ]
  • 数据准备建议

    • 质量优先:确保数据准确、清晰,并涵盖你的目标场景。

    • 数量与划分:准备数百到数千条高质量样本。建议按 8:1:1 的比例划分为训练集、验证集和测试集。

    • 格式统一:将数据整理成上述的JSON格式,并保存为 .json 文件。

🛠️ 第三步:选择微调“兵器”

对于新手或希望快速上手的用户,强烈推荐使用成熟的微调框架。这里重点介绍 LLaMA-Factory

  • LLaMA-Factory:一个非常流行且易用的微调框架。它支持众多主流模型(如Qwen, Llama, Mistral等),并提供零代码的WebUI界面。

    安装LLaMA-Factory:

    bash

    # 克隆项目
    git clone https://github.com/hiyouga/LLaMA-Factory.git
    cd LLaMA-Factory
    # 安装依赖
    pip install -e .[torch,metrics]

🚀 第四步:执行微调训练 (以LLaMA-Factory为例)

LLaMA-Factory 提供了多种使用方式,其中最友好的是 WebUI

  1. 启动WebUI
    在终端中运行以下命令:

    bash

    llamafactory-cli webui
  2. 在WebUI中进行配置
    浏览器会自动打开一个界面,你需要配置以下几个关键部分:

    • 模型选择:在“Model”选项卡中,选择你要微调的基础模型(如 Qwen/Qwen2.5-7B-Instruct)。

    • 数据集:在“Dataset”选项卡中,添加你的自定义数据集。你需要将你的 .json 文件放入 LLaMA-Factory/data 目录,并在 dataset_info.json 文件中注册它。

    • 训练参数:在“Train”选项卡中,设置训练参数,这是最关键的一步。主要参数包括:

参数 说明 建议值
stage 训练阶段 选择 Supervised Fine-Tuning (SFT)
method 微调方法 选择 LoRA,显存占用低,效果好
learning_rate 学习率 1e-5 到 3e-4
num_train_epochs 训练轮数 3.0
per_device_train_batch_size 单卡批次大小 根据显存调整,从 1 或 2 开始尝试
lora_rank LoRA秩 32 或 64
output_dir 输出目录 设置一个保存模型的路径
  1. 开始训练:配置完成后,点击“Start”按钮,训练便开始。你可以在界面上实时监控损失(Loss)等指标。

💾 第五步:导出与部署专属模型

训练完成后,需要将LoRA适配器与基础模型合并,得到一个完整的微调模型。

  • 导出模型:在LLaMA-Factory的WebUI中,切换到“Export”选项卡,将“Model path”设置为你的基础模型路径,“Adapter path”设置为训练输出的LoRA权重路径,然后点击“Start Export”进行导出。

  • 部署到Ollama (可选):如果你想用之前提到的Ollama来运行这个模型,可以:

    1. 将导出的完整模型转换为GGUF格式。

    2. 编写一个 Modelfile,指定基础模型路径和GGUF文件路径。

    3. 使用 ollama create 命令创建并运行你的专属模型。Unsloth 等工具甚至可以自动化这个过程

更多推荐