什么是大模型微调

大模型的全称是大语言模型,他是语言模型,无论这个模型如何发展,底层的原理都是【成语接龙】,根据你前面的对话,猜测接下来的的内容。只不过大语言模型在参数规模,训练数据上面的规模要大于传统的语言模型,这是第一个要明确的概念,大语言有点像上课时候接话茬的学生。

那么,为什么要微调呢。就要想让他接话茬的时候接的更准一些。

举个例子来讲,我喜欢听相声,相声里面有个贯口叫报菜名,当我讲出“蒸羊羔”的时候,下面应该是“蒸熊掌,烧花鸭,烧子鹅”;

如果是厨师的话,就应该是“这道菜的做法是,先准备什么料”

如果是一个法律顾问的话,他会解答这个菜的原材料是不是违法乱纪。

所以,通过上面这几个例子,可以总结一下,之所以大模型要微调,是想让大模型这个通用模型,在某些专业领域上表现更优,接话茬接的更准。

是不是所有的场景都需要微调呢

并不是的,提示词工程具备一些优点,如果你所谓的领域或者要解决的问题不是什么有门槛的领域,那么提示词工程可以解决你的问题。

提示词工程是你和大模型交互的通道,上手容易,使用成本低,没有任何技术门槛。

但是由于现在大模型具有上下文窗口长度的限制,因此,当你的对话超过一定长度之后,内容会被截断。因此在回答的一致性上表现不好,表现上就是容易遗忘信息、幻觉难以纠正;

而微调恰好可以解决这样的问题,微调可以支持几乎无限的数据量,学习新信息、纠正错误认知、高频使用下长期成本更低;但是缺点是门槛较高,对数据要求高,无论是数量和质量上都有较高的要求。

微调有哪些类型

按照更新的参数规模来区分:

  • 全量微调 (Full Fine-tuning):更新模型的所有参数。效果最强,但极度耗费显存和算力。

  • 参数高效微调 (PEFT - Parameter-Efficient Fine-tuning):只更新极少数参数。

    • LoRA / QLoRA:目前最主流的技术。通过在模型侧边增加“低秩适配器”,让 16GB 的家用显卡也能跑 7B 模型的微调。

    • Adapter:在原模型层之间插入小型神经元网络层。

    • Prefix / Prompt Tuning:不改动模型参数,只在输入层添加一段可学习的“软提示词”。

按照领域来区分:

这是从你想让模型“变成什么样”来分类:

  • 领域微调 (Domain-specific Fine-tuning):给模型灌入大量行业数据(如法律条文、医学文献、你们公司的 CRM 业务逻辑)。目标是让模型掌握“行业知识”和“黑话”。

  • 任务微调 (Task-specific Fine-tuning):专门针对某一个任务进行强化。例如:

    • 情感分析微调:只判断评论是好评还是差评。

    • SQL 生成微调:专门提升将自然语言转为 SQL 的准确率。

按“学习范式”分类

这是从“模型怎么学习”来分类:

  • 有监督微调 (SFT - Supervised Fine-tuning):最基础的,给模型看标准答案(Q&A 对)。指令微调其实就是 SFT 的一种。

  • 对齐微调 (Alignment / RLHF):让模型更符合人类价值观。

    • RLHF (强化学习):人类给模型的多个回答打分,模型根据分数高低调整行为(通常用于让模型变礼貌、不产生歧义)。

    • DPO (直接偏好优化):最近非常流行的替代 RLHF 的技术,直接告诉模型 A 回答比 B 回答好,训练起来更简单稳定。

如何选择:

  • 针对“非技术人员取数”:建议先做 SFT (有监督微调),给它 500-1000 条你们公司真实的业务逻辑与 SQL 对应样本。

  • 针对“话术纠偏(损失客诉)”:建议尝试 DPO (直接偏好优化)。给模型两组话术,标记哪组是“顾问过度承诺(扣分)”,哪组是“规范回复(加分)”,这样模型能学会识别“红线”。

微调在数据准备上的内容

1、什么样的数据是好的数据

高质量: 由于模型是基于概率去做的,因此高质量的数据能让他接话茬接的更准

多样性: 覆盖你所在业务的各个场景,否则你的模型最终输出的时候是个偏科生,无法针对你的场景进行全面的回答;

真实数据胜过生成数据:在有些场景下,由于样本较少,可以使用 AI 根据过往的真实数据,生成大量的数据,弥补量的不足。但是基本上是过于套路化的;

质量胜过数量:和上面的差不多,在微调阶段,即使只有几百条极高质量的数据,效果也往往优于数万条杂乱的数据。因为预训练已经完成了海量知识的积累,微调只需要精准的引导

2、数据处理的核心步骤 

  • 收集 (Collect):获取指令-响应对(如:问答对、任务描述等)。

  • 拼接 (Concatenate):将内容填入提示词模板(Prompt Template)。

  • 分词 (Tokenizing):将文本转化为模型能理解的数字。

  • 划分 (Splitting):将数据分为训练集和测试集(通常采用 90/10 比例)

3、技术难点:粉刺

Token 是什么:不是简单的按词切分,而是基于字符频率。例如单词后缀 ing 经常被识别为一个独立的 Token(编号 278),因为它在英语中极度常用

匹配原则:必须使用模型自带的 AutoTokenizer。如果模型 A 使用了模型 B 的分词器,就像用错误的密码本解密,模型会完全无法理解输入内容

4、旁门左道之术

填充 (Padding):对于较短的句子,在末尾补充特定字符(通常是 0),使其与最长句子对齐

截断 (Truncation):对于超出模型上限的长文本,需要切除多余部分。

  • 技巧:可以根据任务决定从左侧还是右侧截断(例如在指令微调中,保留开头的指令往往比保留结尾更重要)

Logo

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

更多推荐