微调的基础知识
微调的基础知识
1. 微调是什么
我们都知道自从22年底GPT3.5横空出世之后,我们随时随地的跟大模型进行聊天,大模型总能认真且“正确”的回答我们的问题。但是模型回答的答案一定是正确的吗,一定是我们想要的内容吗?即使随着基座模型的能力越来越强大,幻觉问题已经被解决的很好了,但是如果出现以下这些场景时,大模型回答的内容的精确性还有待提高:
- 遇到专业领域的问题:医疗、法律、金融等
- 当上下文长度过长时:比如数万字甚至数十万字
- 需要精确事实的时效性信息:近期新发生事件、最新数据、新论文、新政策
- 执行强规则类任务(严格格式、严格约束):要求严格 JSON 格式、严格的业务规则、大量硬性边界条件
- 主观价值判断、强依赖现实场景的决策
随着参数规模和数据规模的不断增加扩大,大模型的能力正在呈现着幂律增长,也就是大模型的能力始终是有一个瓶颈的,那这个瓶颈难道就无法突破了吗?
- 幂律增长:参数量 / 数据扩大 10 倍,性能只提升固定一小截,边际收益持续递减。
那我们应该怎么去解决大模型幻觉问题呢?
- 从预训练源头下手:继续提高基座模型的能力
- 清洗训练数据,获取高质量数据集
- 提高模型参数和数据集大小
- 推理时约束与外部增强
- Prompt Engineering、Context Engineering:优化提示词与上下文构造,对模型输出施加指令约束。
- RAG 检索增强生成:引入外部知识库,依托真实参考资料回答,避免模型凭空生成内容。
- 工具调用(Function Call、MCP、Skills):调用外部工具获取事实、计算结果,弥补模型内部知识缺陷。
- 后训练对齐技术:SFT、DPO、RLHF,通过微调与人类偏好对齐,引导模型输出更加忠实事实。
这里引出我们的主角:
微调(Fine‑tuning):
通俗理解:基座大模型已经在海量通用文本上完成预训练,微调就是拿一小部分专门的数据集,再继续训练一小段,把模型往特定能力、风格、范式上改,不从头训练整个模型。
类比来说:预训练模型就像一个经过十几年教育之后拥有通识的大学毕业生,微调后的模型就相当于专注于某个领域进行数年研究后有所成果的博士生
2. 微调的分类
按照参数更新范围
- 全量微调(Full Fine-Tuning):更新模型全部参数,效果上限较高,但显存、算力和存储成本大。
- 参数高效微调(PEFT):只训练少量新增或指定参数。常见方法包括:LoRA / QLoRA