LLaMA-Factory 模型微调基础教程
概述
使用 LLaMA-Factory 进行模型微调具有多方面优势。它简化了大模型微调的过程,支持多种训练方法(如全量调参、LoRA)及对齐方案(如 DPO、PPO),用户可根据需求灵活选择策略。
LLaMA-Factory 提供一站式服务,从微调到量化再到运行,无需在不同工具间切换。它支持多种流行语言模型,涵盖广泛应用场景。在量化方面,能有效压缩模型规模,降低计算量和存储需求,使模型能在性能稍弱的设备上流畅运行。
此外,训练过程记录全面,除同步输出 loss 曲线图外,还自带 BLEU 等评测指标,有助于监控和评估模型性能。
环境搭建
依赖安装
首先确保软硬件环境满足要求。Python 版本建议至少 3.9,推荐 3.10。
- 创建虚拟环境并导航至项目目录。
- 安装基础依赖:
pip install -r requirements.txt
- 安装 PyTorch 及相关组件(以 CUDA 11.8 为例):
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c nvidia
- 如需开启量化 LoRA(QLoRA),需安装预编译的 bitsandbytes 库。请根据 CUDA 版本选择合适的发布版本。
启动 WebUI
使用以下命令启动可视化界面:
llamafactory-cli webui
若遇到无法访问 localhost 的问题,可能需要修改 interface.py 中的 share 参数为 True,以便生成可分享的链接。
数据集准备
数据提取与合并
使用数据提取工具获取聊天记录,导出为 JSON 或 TXT 格式。将导出的数据文件统一存放于指定文件夹。
创建一个 merge.py 脚本合并所有聊天记录:
import os
import json
folder_path = r'<your_data_folder>'
json_files = []
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith('.json'):
json_files.append(os.path.join(root, file))
merged_data = []
for file in json_files:
with open(file, 'r', encoding='utf-8') as f:
try:
data = json.load(f)
merged_data.append(data)
except json.JSONDecodeError:
()
merged_file_path = os.path.join(folder_path, )
(merged_file_path, , encoding=) merged_file:
json.dump(merged_data, merged_file, indent=, ensure_ascii=)
()


