跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

手把手教你从零微调大模型

从零开始微调大模型的完整流程。基于阿里魔搭社区环境和 LLaMA-Factory 框架,使用 Yi-1.5-6B 开源模型进行实操。内容涵盖环境准备、依赖安装、模型下载、配置文件详解、训练执行及推理测试。重点解析了 LoRA 微调的核心参数含义,如量化位、学习率、批次大小等,并补充了显存不足、训练不收敛等常见问题的解决方案。通过,读者可掌握微调的基本方法,实现模型身份的自定义及特定任务的适配。

利刃发布于 2025/2/6更新于 2026/10/20100 浏览
手把手教你从零微调大模型

从零开始微调大模型实战指南

背景与概述

大模型微调本身是一件非常复杂且技术难度很高的任务。本文旨在从零开始,带你走一遍微调大模型的标准流程,帮助你了解微调的基本原理和操作步骤。

微调通常是在预训练好的基础模型上,使用特定领域的数据进行二次训练,使模型适应特定任务或风格。由于直接微调全量参数需要极高的显存和算力,目前业界广泛采用 LoRA (Low-Rank Adaptation) 或 QLoRA 等高效微调技术,大幅降低资源需求。

本次实战将使用阿里魔搭社区(ModelScope)提供的集成环境,无需本地高配 GPU,只需浏览器即可完成。我们将以零一万物的 Yi-1.5-6B 开源大语言模型为例,演示如何使用 LLaMA-Factory 框架进行微调。

环境准备

首先你需要注册并登录魔搭社区的账号: https://modelscope.cn/home

登录后,访问 Yi-1.5-6B 模型页面: https://www.modelscope.cn/models/01ai/Yi-1.5-6B

在模型页面选择'方式二:GPU 环境',点击'启动'。启动过程大约需要 2 分钟。待 GPU 环境就绪后,点击'查看 Notebook'进入开发环境。

魔搭社区内置了 JupyterLab 功能。进入后,你可以找到 Notebook 标签,新建一个 Notebook 页面(也可以在 Terminal 中直接执行命令)。

安装依赖库

在 Notebook 中添加代码块,执行以下命令安装必要的 Python 依赖库:

!pip3 install --upgrade pip
!pip3 install bitsandbytes>=0.39.0

接着拉取 LLaMA-Factory 项目,该框架集成了业界广泛使用的微调技术:

!git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git

随后,需要在 Launcher > Terminal 中执行安装命令。这一步耗时较长,请耐心等待:

cd LLaMA-Factory
pip3 install -e ".[torch,metrics]"

下载模型权重

零一万物的 Yi 开源大语言模型的权重可以在 HuggingFace 和 ModelScope 上找到。这里我们选择从 ModelScope 下载。

所有零一万物开源模型链接: https://www.modelscope.cn/organization/01ai/

本实验选用最小的 Yi-1.5-6B-Chat 模型进行验证。模型说明文档: https://www.modelscope.cn/models/01ai/Yi-1.5-6B-Chat/summary

Yi-1.5-6B-Chat 模型大小约 12G,下载时间取决于网络状况。在 Notebook 中执行以下命令下载模型:

!git clone https://www.modelscope.cn/01ai/Yi-1.5-6B-Chat.git

耐心等待下载完成即可。

配置微调参数

准备工作完成后,开始配置微调脚本。在 LLaMA-Factory 文件夹下,打开 examples/train_qlora 目录,复制 llama3_lora_sft_awq.yaml 文件并重命名为 。

yi_lora_sft_bitsandbytes.yaml

该配置文件包含微调的关键参数,以下是详细的参数说明及修改建议:

### model
model_name_or_path: ../Yi-1.5-6B-Chat
quantization_bit: 4

### method
stage: sft
do_train: true
finetuning_type: lora
lora_target: all

### dataset
dataset: identity
template: yi
cutoff_len: 1024
max_samples: 1000
overwrite_cache: true
preprocessing_num_workers: 16

### output
output_dir: saves/yi-6b/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: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true

### eval
val_size: 0.1
per_device_eval_batch_size: 1
eval_strategy: steps
eval_steps: 500

关键参数解析:

  1. model_name_or_path: 指定下载的模型路径,需确保路径正确。
  2. quantization_bit: 设置为 4 表示使用 4-bit 量化,可显著降低显存占用。
  3. stage: 设置为 sft 表示监督微调(Supervised Fine-Tuning)。
  4. finetuning_type: 设置为 lora 表示使用 LoRA 适配器技术。
  5. dataset: 默认使用 identity 数据集,用于测试自我认知能力。你可以通过修改 data/identity.json 文件中的 {{name}} 字段来定义模型的新身份。
  6. cutoff_len: 上下文长度限制,根据显存情况调整。
  7. learning_rate: 学习率,LoRA 微调通常较小,如 1e-4。
  8. gradient_accumulation_steps: 梯度累积步数,用于模拟更大的 Batch Size。
  9. bf16: 启用 BF16 混合精度训练,提升速度并节省显存。

保存配置文件后,回到终端 Terminal,在 LLaMA-Factory 目录下输入以下命令启动微调:

llamafactory-cli train examples/train_qlora/yi_lora_sft_bitsandbytes.yaml

执行训练

运行命令后,系统将开始加载模型并进行训练。进度条显示训练状态,整个过程大约需要 10 分钟(视硬件性能而定)。当看到训练结束提示时,表示微调完成。

推理测试

微调后的模型效果如何?我们需要通过推理测试来验证。

参考 examples/inference 下的 llama3_lora_sft.yaml,复制一份并重命名为 yi_lora_sft.yaml,内容修改如下:

model_name_or_path: ../Yi-1.5-6B-Chat
adapter_name_or_path: saves/yi-6b/lora/sft
template: yi
finetuning_type: lora

保存后,在终端运行推理命令:

llamafactory-cli chat examples/inference/yi_lora_sft.yaml

等待模型加载完成后,即可开始对话。此时模型应已具备你在配置文件中设定的新身份认知,同时保持通用对话能力。

为了对比效果,可以再次修改配置文件为原始模型配置(去掉 adapter_name_or_path),重新运行推理命令,观察未微调前的回答差异。

常见问题与优化

在实际微调过程中,可能会遇到以下问题:

  1. 显存不足 (OOM):

    • 尝试减小 per_device_train_batch_size。
    • 增加 gradient_accumulation_steps。
    • 检查是否开启了 bf16 或 fp16。
    • 考虑使用更小的 cutoff_len。
  2. 训练速度慢:

    • 确保使用了正确的 GPU 驱动和 CUDA 版本。
    • 检查 preprocessing_num_workers 是否设置合理。
    • 如果数据量过大,可适当减少 max_samples。
  3. 模型不收敛:

    • 调整 learning_rate,过大的学习率可能导致震荡。
    • 检查数据集格式是否符合要求,特别是指令模板部分。
  4. 超时错误:

    • 在云端环境中,注意会话超时设置,必要时延长 Timeout 时间。

总结

通过上述步骤,你已经完成了从零开始的大模型微调全流程。包括环境搭建、依赖安装、模型下载、参数配置、训练执行以及推理验证。

微调大模型不仅是技术的实践,更是对模型行为控制能力的探索。通过调整数据集和参数,你可以让模型适应不同的应用场景,如客服助手、垂直领域专家或个性化角色。希望本文能为你开启大模型应用开发的大门。

后续你可以尝试更换数据集,微调出真正服务于业务场景的专属模型。

目录

  1. 从零开始微调大模型实战指南
  2. 背景与概述
  3. 环境准备
  4. 安装依赖库
  5. 下载模型权重
  6. 配置微调参数
  7. model
  8. method
  9. dataset
  10. output
  11. train
  12. eval
  13. 执行训练
  14. 推理测试
  15. 常见问题与优化
  16. 总结

更多推荐文章

查看全部
  • 基于 Python 的纪念币预约自动化工具实现
  • 前端 XSS 防护:layui util 与 js-xss 的实用写法
  • Windows11 下使用 llama.cpp 本地运行 Qwen3.5 量化模型测试
  • 纯 QWidget 实现电子地图控件:多线程瓦片加载与图形覆盖
  • Python 初学者必备开发环境搭建指南
  • 昇腾 NPU 部署 Llama 2 模型:性能测试与优化实践
  • MATLAB 实现基于 BFOA-DNN 的无人机三维路径规划
  • AIGC 驱动测试周报自动化:从 Jira、Git、CI 日志提炼指标
  • 机器人开源项目精选:覆盖科研、教育、工业与医疗的66个仓库
  • MCP Server 实现 Excel 表格一键生成可视化图表 HTML 报告
  • 基于阿里云ASR的AI电销机器人架构与实现
  • 前端缓存策略:让你的网站飞起来
  • 机器人顶会“灵巧手”(dexterous hand)论文集合 RSS CoRL ICRA IROS 2025
  • HarmonyOS6 RcButton 组件样式系统深度剖析
  • LangChain 代理模块详解:类型、代码与执行流程
  • 基于 Llama-Factory 的 ASR 转写文本润色方案
  • Python 从 0 到 100 完整学习指南
  • 2026 年 Python+AI 学习路线完整指南:从零基础到实战专家
  • LightRAG 框架介绍与 WebUI 本地部署应用
  • TypeScript 核心概念与面试实战指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online