免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


微调实战之上手训一个7b小模型

发布日期:2025-08-23 05:51:18 浏览次数: 1523
作者:我是元方

微信搜一搜,关注“我是元方”

推荐语

从零开始微调7B小模型,手把手教你避开版本冲突和数据格式的坑。

核心内容:
1. 环境配置与版本兼容性解决方案
2. 数据集准备与常见格式问题处理
3. 完整微调流程实操与效果验证

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

微调目的


模型提示词工程RAG都已经实践上手一些项目。真实场景中,希望模型自己能输出企业内部知识,选择了模型微调目的模型学习企业内部数据。

我这次项目主要是针对我负责ERP销售系统专业术语系统操作常见问题给它进行微调希望微调训练能够学习负责系统相关知识



【首次境安装版本不冲突


1基础软件安装:


pytorch、cuda、python基础软件安装网上一搜一堆再次不再赘述


但是需要注意的不同软件版本冲突问题比如微调选择量化发现我的pytorch、cuda版本冲突导致无法量化只能loraGPU爆满大家根据自己GPU配置选择对应版本后续微调参数


2llamafactory安装


1我们在此虚拟环境中执行:


pip install -e ".[torch,metrics]"



2依赖安装完成后,我们执行 llamafactory-cli version 验证安装情况:



3然后我们测试执行 which llamafactory-cli 可以发现,llamafactory 被安装在了 conda 创建的虚拟环境目录下:



3训练模型下载


1下载地址:


ModelScope - 数据集列表页


2下载本地:


我用的是qwen2.5-7b模型


C:\Users\XXX\.cache\modelscope\hub\models\Qwen\Qwen2___5-7B-Instruct


4、对应LLaMA-Factory-main下载


D:\ai_projects\LLaMA-Factory-main\LLaMA-Factory-main\src



数据集准备


1、数据集要求


(1)指令性json格式要求:


踩坑经验:(让模型生成时候就把该格式生成好,不要后续浪费时间人工补充我少了逗号395数据一顿


 最开始和结束必有大括号;


 并且每条数据前后需要有逗号隔开。


[



{
"instruction":"根据下表,将每个句子分类为定义、事实或观点。",
"input":"|句子|\n|--------|\n|水果是一种通常甜味且含有种子的食物类别。|\n|苹果是一种水果。|\n|苹果是口感最好的水果。|",
"output":"|句子|分类|\n|--------|-----|\n|水果是一种通常甜味且含有种子的食物类别。|定义|\n|苹果是一种水果。|事实|\n|苹果是口感最好的水果。|观点|"
},
{
"instruction":"生成与电动汽车相关的适当关键词。",
"input":"",
"output":"电动汽车、电池技术、可持续交通、充电技术、零排放、绿色能源、智能交通、续航能力、电驱动、电动汽车市场、电池回收、电池续航、充电桩、节能减排、无尾气排放、节能汽车、低碳交通。"
}
]



这样后续在微调页面加载预览数据


(2)问了AI根据配置GPU-3060,12GB要求500个问题,一次训练效果较好


大家自行根据自己配置目的AI需要多少数据量



2、数据集-问答对准备


(1)大模型生成


踩坑经验:发现一个大操作手册直接生成问题效果不好,把操作手册按章节拆分,分别让大模型生成问题。


提示词参考如下


#任务:帮我仔细阅读附件操作手册,帮我生成微调训练的40条数据,数据格式可直接用于微调训练,目的是小模型学习我的操作手册。



#要求:切勿瞎编乱遭,生成的微调数据,只能来源于我的附件操作手册;
#格式及样例:
{
"instruction":"根据下表,将每个句子分类为定义、事实或观点。",
"input":"|句子|\n|--------|\n|水果是一种通常甜味且含有种子的食物类别。|\n|苹果是一种水果。|\n|苹果是口感最好的水果。|",
"output":"|句子|分类|\n|--------|-----|\n|水果是一种通常甜味且含有种子的食物类别。|定义|\n|苹果是一种水果。|事实|\n|苹果是口感最好的水果。|观点|"
},
{
"instruction":"生成与电动汽车相关的适当关键词。",
"input":"",
"output":"电动汽车、电池技术、可持续交通、充电技术、零排放、绿色能源、智能交通、续航能力、电驱动、电动汽车市场、电池回收、电池续航、充电桩、节能减排、无尾气排放、节能汽车、低碳交通。"
}



(2)人工生成问题


实际上模型生成问答对数据集时候我会仔细阅读删除少量虚构补充必要知识其实高质量数据输入高质量数据输出大家自行接触AI工具加上人工编辑完成原始数据整理后续会根据实际经验多次测出哪种数据模型训练效果较好


3、数据集提前配置


business_qa.json就是我自己设置数据集上述数据放入文件文件进行实际配置具体我的地址如下大家根据自己实际配置D:\ai_projects\LLaMA-Factory-main\LLaMA-Factory-main\data


(1)修改文件:dataset_info.json中


"business_qa":{
"file_name":"business_qa.json",  
"formatting":"alpaca",  
"columns":{
"prompt":"instruction",
"query":"input",
"response":"output"
}
}



(2)再将数据business_qa.json放入此文件data



每次使用打开虚拟环境及微调页面


1、打开微调页面:


#1、打开虚拟环境



conda activate lf



#2、进入项目目录,目的后续加载训练数据



cd /d D:\ai_projects\LLaMA-Factory-main\LLaMA-Factory-main



#3、打开微调页面



llamafactory-cli webui



2模型选择:


modelscope下载模型本地地址填写本地较快



3、数据集加载预览



4微调页面各种参数选择:


学习率2e-4


训练5


验证比例0.1


量化等级4


微调lora


大家根据自己GPU数据自行配置



实际微调记录


1财务微调8.22日,


(1)数据集-395条数据


2微调参数:


学习率2e-4


训练5


验证比例0.1


量化等级4——最后none因为pytorchcuda版本冲突未解决


微调lora


(3)微调过程


报错1


importlib.metadata.PackageNotFoundError: No package metadata was found for The 'bitsandbytes>=0.39.0' distribution was not found and is required by this application.



To fix: run `pip install bitsandbytes>=0.39.0`.



已经优化1


# 强制卸载并重装(关键!)



pip uninstall -y bitsandbytes



pip cache purge



pip installbitsandbytes==0.41.1 --force-reinstall --prefer-binary



#实际上我使用的是下面下载



pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.41.1-py3-none-win_amd64.whl



报错2


ModuleNotFoundError: Could not import module 'validate_bnb_backend_availability'. Are this object's requirements defined correctly?



核心问题是 bitsandbytes 库无法正确检测 CUDA 环境,导致微调启动失败



优化2


Python 3.10.18 on 64bit

您配置的系统环境变量指向的是 CUDA 11.8(CUDA_PATH=v11.8)。请确保您安装的PyTorch也是与之匹配的CUDA 11.8版本,否则会出现更深层次的冲突。
python -c "import torch; print(torch.version.cuda)"

#下面我自己未优化,直接不用量化了
(lf) C:\Users\>python -c "import torch; print(torch.version.cuda)"
12.1
如果输出不是 11.8,您需要重新安装匹配的PyTorch:
pip uninstall torch torchvision torchaudio -y
pip installtorch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118

#我实际使用替代方案 
1:禁用量化训练
在 LLaMA-Factory 的 WebUI 中:
取消勾选 Quantization(4-bit)选项 → 使用普通 LoRA 微调(显存需求升至 14GB,RTX 3060 可能不足)



微调过程


#首次损失函数



[INFO|2025-08-22 16:19:04] llamafactory.train.callbacks:143 >>{'loss':4.3177'learning_rate':1.9940e-04, 'epoch':0.22'throughput':17.82}
{'loss':4.3177'grad_norm':5.115846157073975'learning_rate':0.00019940356672322037'epoch':0.22'num_input_tokens_seen':5520'train_runtime':309.7212'train_tokens_per_second':17.822}



微调结果曲线还是很美的损失从最开始4逐步降到0.5耗时1h





 


53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询