大模型训练实战经验总结
在当今 AI 技术飞速发展的背景下,定制化大模型的自主训练已成为满足特定行业需求、保障数据安全、提升模型应用效能的关键途径。本文将深度剖析这一过程的核心价值与实践智慧,从数据隐私保护、模型透明度增强,到数据预处理的精细操作,特别是数据配比在维持模型通用性与垂类能力平衡中的核心作用,为读者勾勒出一幅清晰的大模型训练全景图。
背景与核心价值
定制化需求
每个行业和应用场景都有其独特的需求,预训练的通用大模型可能并不能完全满足这些需求。自主训练大模型可以:
- 细化功能:根据特定任务调整和优化模型,以提高准确性和效率。
- 行业特定术语:对于代码、客服等特定领域,可以训练模型理解和生成与这些领域相关的专业术语和复杂语句。
数据隐私和安全
对于许多企业和组织而言,数据隐私和数据安全是最重要的。通过自己训练模型,可以确保数据仅在内部使用,避免数据外泄风险。
- 数据掌控:确保数据不被第三方访问或使用,满足数据隐私法律和法规的要求。
- 安全性:减少数据泄露的风险,保护敏感信息。
更好的模型使用
训练自己的大模型可以帮助团队更好地理解模型的内部工作机制和决策过程,这对于后续的 RAG、知识图谱、Function call 和 Agent 非常有帮助。
- 透明度:更全面地理解模型如何处理数据与做出决策,有助于解释和改进模型。
- 可解释性:在风险控制、法律法规要求的领域,模型的可解释性尤为重要。
数据处理:巧妇难为无米之炊
数据的清洗步骤
处理互联网数据集通常包含以下几个规则:
- 语言识别:判断文章的语言类型,在 LLaMA 的数据预处理中过滤掉一些非目标语料。
- 规则过滤:用规则过滤低质量内容,例如:同一句话中间出现过多的标点、或包含一些违禁词等。
- 基于打分模型的内容过滤:通过轻量的机器学习模型,用于判断一篇文章是否足够优质。
- 文章去重:去掉一些相似内容的文章。
- 对话截断:对于输入历史对话数据进行左截断,保留最新的对话记录。
- 语气词清理:去掉样本中明显的语气词,如嗯嗯、啊啊之类。
- 不合适内容过滤:去掉样本中不合适的内容,如 AI 直卖,就不应出现转人工的对话内容。
- 特征标签扩充:样本中扩充用户特征标签,如年龄、性别、地域、人群等。
什么是数据配比?数据配比有什么用?
用了大量的行业数据,模型怎么反而变弱了?比如,对一个回答问题能力不错的模型,用大量数据做指令微调以后,模型变得不会回答问题了。得到的最宝贵的经验就是:数据配比!
大模型可能在训练过程中过度专注于垂类数据,导致 loss 的收敛不再依赖全局而是从部分数据进行考虑。
参考相关论文及实践,比较好的结果是开源数据集:垂域数据集为 4:1,即开源占比总体训练数据的 80%,而垂类数据仅占 20%。
这与预训练阶段有所不同:
- Continue Pretraining:如果要让模型不丢失通用能力(如 summarization, qa 等),「领域数据的比例要在 15% 以下」。一旦超过这个阈值,模型的通用能力会下降很明显。所以,在做领域数据 continue pretraining 的时候,一定更要混大量的通用数据。这个阈值是个经验主义的结论,感觉大家的范围都在 10%-15% 左右。而且,该阈值和预训练模型的大小、预训练时原始数据的比例等条件都息息相关,需要在实践中反复修正。
- SFT (Supervised Fine-Tuning):这个比例就可以提高不少,大概领域数据和通用数据比例在 1:1 的时候还是有不错的效果的。当然,如果 SFT 的数据量少,混不混数据的差别就不太大了。


