文本类LoRA微调验证

张开发
2026/4/12 16:54:14 15 分钟阅读

分享文章

文本类LoRA微调验证
python -m venv vllm-cleansource vllm-clean/bin/activatepip install --upgrade pippip install -r requirements.txt# --- 核心深度学习框架 --- torch2.3.1 transformers4.40.0 accelerate0.30.1 datasets2.14.0 peft0.11.0 # --- 推荐极速微调库 (Unsloth) --- # Unsloth 能让 Qwen3-4B 的训练速度提升 2倍 且显存占用更少 #unsloth[cu121-torch231] githttps://github.com/unslothai/unsloth.git # --- 数据处理 --- python-docx1.1.0 pandas2.0.0 numpy1.24.0 # --- GGUF 转换与量化 (用于最后的合并与转换步骤) --- # 注意llama-cpp-python 主要用于 Python 接口转换脚本会用到 llama-cpp-python0.2.80 # --- 其他工具 --- sentencepiece0.1.99 protobuf5.26.1pip install unsloth[cu121-torch231] -i https://pypi.tuna.tsinghua.edu.cn/simple--------------------------------------总结流程图你的 JSON 数据(原始食材)↓[运行刚才的 Python 脚本 (DA 格式转换)]train.json(处理好的菜谱)↓[运行 LLaMA-Factory (SFT 微调)]LoRA 模型文件夹(戴上了维修专家眼镜的 Qwen3)↓[使用 llama.cpp 转换为 GGUF (量化)]Windows CPU 可运行的 .gguf 文件(最终落地产品)1. 阶段一数据预处理刚才的脚本状态纯 Python 逻辑处理。动作读取你的 JSON 文件把原始数据“揉碎”并按照 Qwen3 模型喜欢的格式Alpaca 格式重新拼装。DA 的位置在这个阶段我们通过代码逻辑比如随机替换指令、改写句子来“制造”更多的训练样本。产出一个train.json文件。这个文件是给下一个阶段用的“菜谱”。1. 核心流程数据读取加载output_json.json作为原始数据源。指令增强 (DA)定义了三种角色/场景化的指令模板通过随机选择模板增加训练数据的多样性。格式构建 (SFT)Input拼接设备名称和故障现象。Output结构化输出包含工具列表、详细步骤编号列表和安全警示。数据扩充通过循环将每一条原始数据复制生成 2 条变体使用不同的随机指令从而将数据量扩大至原来的 3 倍原始 1 条 循环 2 条。文件输出生成train_qwen3_4b.json供后续训练使用。2. 阶段二监督微调 SFT接下来要做的状态深度学习训练过程。动作加载 Qwen3-4B 模型读取train.json让模型反复阅读这些数据并调整模型内部的参数Weights。LoRA 的位置在这个阶段我们不会动模型的“大脑”基础参数而是给模型戴上一副“特制眼镜”LoRA 适配器专门用来学习维修知识。产出一个训练好的 LoRA 模型文件夹包含.bin或.safetensors文件。下载模型from modelscope.hub.snapshot_download import snapshot_download # 下载 Qwen/Qwen3-4B-Instruct-2507 # 注意ModelScope 上的模型 ID 可能略有不同通常是 Qwen/Qwen3-4B-Instruct-2507 model_dir snapshot_download(Qwen/Qwen3-4B-Instruct-2507, cache_dir./models) print(f模型下载完成保存在: {model_dir})推荐使用业界标准的LLaMA-Factory框架它对 Qwen 系列模型支持最好且操作简单。以下是基于LLaMA-Factory的完整训练流程1. 准备环境如果你还没有安装 LLaMA-Factory请在终端执行

更多文章