垂直行业大模型的几种训练策略
在通用大模型能力日益强大的背景下,如何将其应用于特定垂直领域(如法律、医疗、金融等)成为企业关注的重点。目前垂直行业大模型的构建主要有以下几种主流训练策略:
1. 重新训练 (From Scratch)
使用通用数据和领域数据混合,从头开始训练一个大模型。最典型的代表是 BloombergGPT。
- 优点:模型对领域数据的理解最为深刻,能够学习到领域特有的语料分布和知识体系。
- 缺点:资源消耗极大,需要数百张高性能显卡和海量高质量数据。一旦数据配比不当,极易导致灾难性遗忘或通用能力退化。
2. 二次预训练 (Continue Pretraining)
在一个通用模型的基础上进行继续预训练(Continual Pre-training)。例如 LawGPT 就是采用了此方案。
- 优点:相比从头训练,收敛速度更快,能保留部分通用能力。
- 缺点:普遍反馈效果不如直接微调(SFT)来得直接。核心难点在于数据配比,若领域数据比例过高,模型会迅速丧失通用能力(如摘要、问答能力)。经验表明,领域数据比例需控制在 15% 以下,否则通用能力下降明显。通常建议每 100B 领域数据需搭配 700B-1000B 通用数据,这比直接训练通用大模型更为困难。
3. 基础大模型微调 (Instruction Tuning / SFT)
在一个通用模型的基础上做指令微调(SFT)。这是目前开源社区最普遍的做法,如 Huatuo、ChatLaw 等工作。
- 优点:可以快速看到不错的结果,开发周期短,成本相对较低。几百条高质量数据配合少量算力即可启动。
- 缺点:提高上限比较困难,模型的知识边界受限于预训练阶段。如果 SFT 数据量少,混入通用数据的必要性降低,但效果提升空间有限。
4. 通用大模型 + 向量知识库 (RAG)
针对通用大模型见过的领域知识较少的问题,利用向量数据库等方式,根据问题在领域知识库中找到相关内容,再利用通用大模型强大的总结(Summarization)和问答(QA)能力生成回复。
- 优点:无需训练模型,更新知识成本低,可解释性强,能有效减少幻觉。
- 缺点:依赖检索质量,长上下文处理可能受限,系统架构相对复杂。
5. In-Context Learning (类似微调)
直接用 In-Context Learning 的方法,通过构造和领域相关的 Prompt,由通用大模型直接生成回复。
- 优点:随着业界 Context Window 越来越大,Prompt 中可以放入越来越多的领域知识,直接用通用大模型也可以对领域问题有很好的回复,零训练成本。
- 缺点:受限于上下文窗口长度,且推理成本随上下文增加而线性上升。
大模型训练的难度与挑战
选择【重新训练大模型】意味着要面临异常苛刻的资源需求,主要包括数据要求和硬件资源要求。
1. 数据要求:配比的重要性
重新训练的数据配比
以 BloombergGPT 为例,有观点认为其模型能力较差,比通用大模型差很多,其中最大的错误可能是数据配比。他们可能使用了 1:1 的比例混合通用数据和金融数据。首先,不知道他们对金融数据是如何清洗和保证数据质量的,个人觉得 500B 的金融数据质量可能低于 500B 的通用数据的质量,这对模型最后能力的局限有比较大的影响。通用数据和金融数据必须是用同样的标准做了高质量清洗和质量控制的。其次,1:1 的数据比例大概率是一个很差的选择。对于复现 ChatGPT 3.5 来说,数据配比应该是 OpenAI 最核心的秘密和领先的地方。和很多 OpenAI 的人员交流下来,他们在这块做了大量的实验并积累了大量的经验。
二次预训练的数据配比
对 Continue Pretraining 来说,如果要让模型不丢失通用能力(如 Summarization, QA 等),「领域数据的比例要在 15% 以下」。一旦超过这个阈值,模型的通用能力会下降很明显。和不少同行交流下来,感觉大家的范围都在 10%-15% 左右。而且,该阈值和预训练模型的大小、预训练时原始数据的比例等条件都息息相关,需要在实践中反复修正(这个时候就能看出 Scaling Law 的重要性了)。这个经验也告诉我们不要轻易用 Continue Pretraining 或者 From Scratch Pretraining 的方法做行业大模型,每 100B 的领域数据,需要配上 700B-1000B 的通用数据,这比直接训练通用大模型要困难多了。


