什么时候适合微调

1、满足个人独特需求(电子女友)
2、不能公开的私域数据(电影剧组)
3、你希望对其完全负责(医疗顾问)

微调可以做到什么

1、拓展领域知识
2、客制化AI行为(语气、风格、个性)
3、优化特定任务的准确性(医疗、法律)

微调与RAG

工作原理

微调

知识和模型是一体的。
根据上述特性描述,使得获得以下特性:
1、工程更健壮
2、相应速度更快
3、又训练成本

RAG

知识和系统是独立的
根据上述描述,会有以下特性:
1、知识独立更新,更容易进行知识更新
2、会有更多的消耗

适用场景、典型应用

微调

适用场景

1、封闭域
2、知识固定
3、精确度高
4、数据量相对小

典型应用

让法律更智能、通义法睿、华佗GPT II

RAG

适用场景

1、开放域
2、知识动态
3、灵活性强
4、动态更新

典型应用

实时新闻分析、产品说明书查询、商品推荐系统

微调RAG混合增强架构

在这里插入图片描述

微调的前置工作

选择基座模型

如何选择基座模型

1、确定任务类型(视觉类【Llama3.2Vision、Qwen2.5VL、Deepseek-VL2】、编码类【Qwen Coder 2.5、Deep Seek Code、Code Llama】、医疗类【华佗GPT II、Bio-Medical-Llama-3】)
2、基础模型(base)还是调优模型(instruct)

数据量 推荐模型 核心优势
大于1000行 基础模型 充分利用数据深度定制
大于300小于1000高质量 基础模型或调优模型 保留通用能力->调优特定领域适配->基础
小于300行 调优模型 保留通用能力快速适配小规模数据

数据质量比数据数量更重要

  • Llama系
    1、开源标杆,不可能不被支持,兜底选择
    2、全系多语言支持
    3、1B,3B,8B,11B,70B,90B,405B
    4、训练数据最大(15T)
    5、擅长写代码

  • Qwen系
    1、最爱中文
    2、最强多语言支持(119种)
    3、0.5B,1B,3B,7B,14B,32B,72B
    4、擅长写代码

  • Phi-3 Phi系
    1、会说中文,但爱说英文
    2、训练数据10T,英文为主
    3、曾经最强“小模型”。现在不太行
    4、3.8B,7B,14B
    5、Phi-4 14B

  • Mistral系
    1、爱说欧洲语言,法语、西班牙语等(会中文)
    2、学习了很多医疗、法律知识
    3、3B,8B,14B,32B、,72B

  • Gemini3
    1、频繁更新(小步子不断,半年一大更)
    2、支持140种语言(4B,12B,27B)
    3、1B,4B,12B,27B
    4、最长上下文支持(128B)

数据准备

数据获取->数据清洗->质量控制->数据格式化和标准化->数据扩增

数据获取
  • 甲方提供
  • 生产数据
  • 网络提取
  • 公开数据集
    https://huggingface.co/datasets
    https://www.kaggle.com/datasets
    https://archive.ics.uci.edu/datasets
    https://registry.opendata.aws/https://www.modelscope.cn/datasets
数据清洗
  • 脱敏
  • 去除HTML标签、URL、特殊字符
  • 去除广告、垃圾信息等无关内容iv.删除重复内容
  • 确保内容的逻辑性合理性
质量控制
  • 人工抽样
  • 统计分析
  • 小规模测试
数据格式化
  • 原始数据
  • 指令数据
  • 对话数据
  • 人类反馈数据
数据类型 训练类型 训练效果 典型应用
原始数据 继续预训练(CPT) 增加基座模型知识范围 -
指令数据 监督微调(SFT) 学习具体任务 翻译、摘要
对话数据 监督微调(SFT) 掌握多轮对话逻辑 客服、智能助手
人类反馈数据(RLHF) 强化学习(RL) 优化回复质量 -
合成数据生成
  • 从已有模版扩增数据
  • 多样化数据,避免过拟合
  • 增强数据,补充细节

如何合成数据?
i. 选择高质量数据作为种子数据集
ii. 设计提示模版
iii. 生成合成数据,查看效果——调整温度(越高越有创意)参数修改提示模版提升种子数据
iv. 清洗验证数据

合成数据注意事项
i. 可以用本地或在线模型生成
ii. 生成模型越大质量越好,通常大于70B
iii. 合成数据需要重新清洗和质量控制

一些数据相关问题

  • 微调需要准备多大的数据集?
    至少100条,1000条以上更优注意:训练结果高度依赖数据质量,注意清洗,不能凑数质量不够时,可以用合成数据提升质量
  • 推理模型如何准备数据集?
    基座是推理模型时,答案中需要包含推理过程
    基座不是推理模型时,答案中不要包含推理过程’后期通过强化学习增加推理能力
  • 我有多个数据集可以多次微调吗?
    最好不要。
    多次微调可能覆盖之前训练的模型知识,导致性能下降增量微调时,数据集更新时,删除数据会很麻烦建议将数据集合并成一个,一次完成微调

微调训练框架

  • pytorch
    特点
    1.使用命令行执行
    2.内置多种微调「配方」(包括全量、LoRA、QloRA)
    3.使用配置文件更改微调参数
    4.集成Hugging Face 模型和数据集
    5.原生pyTorch实现
  • Hugging Face Transformers
    特点
    1.集成 Hugging Face 模型和数据集
    2.使用简单的Trainer API
    3.支持PEFT
    4.内置了一些大模型
  • Unsloth
    特点
    1.是基于pyTorch的优化框架
    2.显存占用显著优化(~60%)
    3.支持PEFT
    4.支持的基座模型丰富
    5.有收费版本
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐