小模型微调过程记录

小模型微调过程记录

背景

在智能客服在做知识问答和增值服务时,需要根据用户语义判断用户意图,根据用户意图对走不同的分支。传统做法是Prompt+LLM,写提示词就可以完成意图的识别。也可以对模型进行微调,输入一批数据集,对小模型进行训练。现在模型更新迭代越来越快,能力越来越强。模型微调的成本比较高,效果不一定到位(对于没有微调经验的我来讲)

工具

ModelScope

https://modelscope.cn/

国内模型和数据集开源平台,也提供了免费的云环境实例

LLaMA-Factory

LLaMA-Factory 是一个开源的大语言模型训练框架,专门用于简化和优化大语言模型的微调过程。

https://github.com/hiyouga/LLaMA-Factory

https://blog.llamafactory.net/posts/mca-quickstart/

Jan

https://jan.ai/

Jan应用程序可以直接运行Llama.app的模型,在本机运行模型

制作数据集

数据集的格式和要求参考官方文档:https://github.com/hiyouga/LLaMA-Factory/blob/main/data/README_zh.md

本次调试的数据集是Alpaca 格式的指令监督微调数据集,主要有两个数据集文件,一个是身份的改变,另一个是意图识别的意图集。格式及本分样例如下:

json 复制代码
[
  {
    "instruction": "请告诉我你的名字",
    "input": "",
    "output": "我的名字是 xxx-小助手,我的使命是为尽可能多的人提供知识与帮助,让更多人受益于人工智能技术。"
  },
  {
    "instruction": "你好,你可以做什么",
    "input": "",
    "output": "我是 xxx-小助手,一个由 xxx开发团队 制作的 AI 助手,可以帮您回答问题、提供建议、进行聊天、翻译文字等等。"
  }
  ...
]
json 复制代码
[
  {
    "instruction": "导出本月的数据",
    "input": "",
    "output": "下载场景"
  },
  {
    "instruction": "会员消费情况",
    "input": "",
    "output": "用户会员相关分析"
  }
  ...
]

实践过程

下载训练框架

打开魔塔免费的GPU实例,打开终端

bash 复制代码
# 源码安装
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
# 下载依赖
cd LLaMA-Factory
pip install -e ".[torch,metrics]" --no-build-isolation
下载模型

可以在魔塔中找到适合自己的模型,我这里使用的是Qwen3-4B的小模型

bash 复制代码
# 回到项目目录
cd /mnt/workspace/
git lfs install
git clone https://www.modelscope.cn/Qwen/Qwen3-4B.git
配置模型训练文件
bash 复制代码
# LLaMA-Factory 目录下
cd examples/train_qlora/
cp llama3_lora_sft_awq.yaml qwen3_lora_sft.yaml

编辑配置文件

yaml 复制代码
### model
### 模型目录
model_name_or_path: /mnt/workspace/model/Qwen3-4B

### method
### 监督微调阶段
stage: sft
### 启用训练模型
do_train: true
### 使用LoRA(Low-Rank Adaptation)进行参数高效微调
finetuning_type: lora
lora_target: all

### dataset 数据集配置下章节说明
dataset: identity,intent
template: qwen
cutoff_len: 1024
max_samples: 1000
overwrite_cache: true
preprocessing_num_workers: 16

### output
### 训练模型输出
output_dir: saves/qwen3-4b/lora/sft
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true

### train
per_device_train_batch_size: 1
gradient_accumulation_steps: 8
learning_rate: 1.0e-4
num_train_epochs: 2.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
# ddp_timeout: 180000000

### eval
val_size: 0.1
per_device_eval_batch_size: 1
eval_strategy: steps
eval_steps: 500
配置数据集文件
bash 复制代码
# LLaMA-Factory 目录下
cd data
# 备份
cp dataset.json dataset_backup.josn

将制作数据章节的数据放在data目录下,dataset.json是数据集配置文件,

bash 复制代码
{
  "identity": {
    "file_name": "identity.json"
  },
  "intent": {
    "file_name": "intent.json"
  }
}
模型训练
bash 复制代码
llamafactory-cli train examples/train_qlora/qwen3_lora_sft.yaml

漫长的等待,中间如果执行有错误,可以移步到chatgpt和claude...

测试推理
bash 复制代码
llamafactory-cli chat \
  --model_name_or_path /mnt/workspace/model/Qwen3-4B \
  --adapter_name_or_path saves/qwen3-4b/lora/sft \
  --template qwen3

然后可以开始和训练后的模型进行对话测试

效果感觉呆呆的,一定一定是我没有用好...

LoRA模型合并导出

把训练的LoRA和原始的大模型进行融合,输出一个完整的模型文件。合并后的模型可以自由地像使用原始的模型一样应用到其他下游环节,当然也可以递归地继续用于训练。

bash 复制代码
CUDA_VISIBLE_DEVICES=0 llamafactory-cli export \
    --model_name_or_path /mnt/workspace/model/Qwen3-4B \
    --adapter_name_or_path saves/qwen3-4b/lora/sft  \
    --template qwen3 \
    --finetuning_type lora \
    --export_dir megred-model-path \
    --export_size 2 \
    --export_device cpu \
    --export_legacy_format False
导出GGUF

GGUF 是 lllama.cpp 设计的大模型存储格式,可以对模型进行高效的压缩,减少模型的大小与内存占用,从而提升模型的推理速度和效率。

bash 复制代码
cd /mnt/workspace/
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp/gguf-py
pip install --editable .
cd ..
python convert_hf_to_gguf.py /mnt/workspace/LLaMA-Factory/megred-model-path

可以把Megred-Model-Path-4.0B-F16.gguf文件导出,在**Ollama**中进行部署

Jan加载模型

点击开始,你就可以在本机电脑运行你微调的模型。然后然后然后电脑就卡机了...die

整体实践下来,能够发现模型微调确实在某些领域中有不少的提升,运维实践的成本都会比较大,对于真正的应用起来门槛还是比较高的...

相关推荐
aihuangwu9 分钟前
ChatGPT和Gemini图表怎么导出
人工智能·ai·chatgpt·deepseek·ds随心转
图生生9 分钟前
基于AI的电商产品2D转3D,降低3D建模开发成本
3d·ai
zhangfeng11331 小时前
大模型微调主要框架 Firefly vs LLaMA Factory 全方位对比表
人工智能·语言模型·开源·llama
猿小猴子1 小时前
主流 AI IDE 之一的 OpenCode 介绍
ide·人工智能·ai·opencode
CoderJia程序员甲1 小时前
GitHub 热榜项目 - 日榜(2026-02-01)
人工智能·ai·大模型·github·ai教程
不正经绣才2 小时前
【扣子Coze教程】“葬经人”动画工作流开源(附提示词)
ai·工作流·coze·扣子·葬经人动画
壮Sir不壮11 小时前
2026年奇点:Clawdbot引爆个人AI代理
人工智能·ai·大模型·claude·clawdbot·moltbot·openclaw
玉梅小洋11 小时前
Claude Code 从入门到精通(七):Sub Agent 与 Skill 终极PK
人工智能·ai·大模型·ai编程·claude·ai工具
-嘟囔着拯救世界-11 小时前
【保姆级教程】Win11 下从零部署 Claude Code:本地环境配置 + VSCode 可视化界面全流程指南
人工智能·vscode·ai·编辑器·html5·ai编程·claude code
x-cmd11 小时前
[x-cmd] x claude ds - 无需 Claude 账号!零门槛让 Claude Code 接入 DeepSeek AI 模型
ai·claude·deepseek·claude-code·写代码