环境准备、数据准备、选择微调方法、执行训练、导出与部署这几个核心步骤。
一个比较清晰高效的路径是:使用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环境,可以避免不同项目间的依赖冲突。
安装CUDA:确保已安装与你的PyTorch版本兼容的CUDA Toolkit。
创建并激活Conda环境:
bash
conda create -n my_finetune_env python=3.10 conda activate my_finetune_env
安装PyTorch:根据你的CUDA版本,从 PyTorch官网 获取安装命令。例如:
bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
安装核心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。
启动WebUI:
在终端中运行以下命令:bash
llamafactory-cli webui
在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 | 输出目录 | 设置一个保存模型的路径 |
开始训练:配置完成后,点击“Start”按钮,训练便开始。你可以在界面上实时监控损失(Loss)等指标。
💾 第五步:导出与部署你的专属模型
训练完成后,需要将LoRA适配器与基础模型合并,得到一个完整的微调模型。
导出模型:在LLaMA-Factory的WebUI中,切换到“Export”选项卡,将“Model path”设置为你的基础模型路径,“Adapter path”设置为训练输出的LoRA权重路径,然后点击“Start Export”进行导出。
部署到Ollama (可选):如果你想用之前提到的Ollama来运行这个模型,可以:
将导出的完整模型转换为GGUF格式。
编写一个
Modelfile,指定基础模型路径和GGUF文件路径。使用
ollama create命令创建并运行你的专属模型。Unsloth等工具甚至可以自动化这个过程