大模型参数高效微调之增量预训练

1. 为什么要增量预训练?

预训练学知识,指令微调学格式,强化学习对齐人类偏好,所以要想大模型有领域知识,得增量预训练(靠指令微调记知识不靠谱,不是几十w条数据能做到的)。

2. 进行增量预训练需要做哪些准备工作?

  • 选取底座模型:可以根据自己的项目需求和硬件基础来选择合适的底座模型及模型参数量的大小。
  • 收集数据:一般来说需要收集大量的文本数据,包含各个领域,主要从互联网上获取,一般预训练数据的大小都是 TB 级别的。
  • 数据清洗:所有的信息都能够在互联网信息中被找到,只是信息密度相比「人工精选数据集」要更低。例如「明星信息」、「如何写代码」这些信息都能在新闻网站、或是问答网站中找到,只不过「维基百科」或是「Github」则是将这些信息给「高密度」且「结构化」地进行了存储。这使得我们在使用维基百科作为训练语料的时候,模型能够更快的学习到这些高密度信息(人物的经历、年龄、性别、职业等等),而这些内容在互联网信息(如新闻)中的信息密度则较低,即很少会有一条新闻完整的介绍一个艺人的过往经历。只要我们对互联网信息进行严格的处理(去除冗余信息,提高有用信息的密度),就能够加快模型的学习速度。

3. 增量预训练所用训练框架?

  • 超大规模训练:选用 3D 并行,Megatron-Deepspeed拥有多个成功案例
  • 少量节点训练:选用张量并行,但张量并行只有在 nv
### 增量预训练微调中的主要挑战 #### 高质量数据获取困难 对于垂直化训练而言,获得并处理大量的高质量专业领域数据是一项艰巨的任务。这些数据不仅数量庞大,而且需要具备高度的相关性和准确性来支持模型的有效训练[^1]。 #### 平衡特定能力和通用性能 当致力于提高某一具体领域的效能时,如何确保不会削弱该模型在其他广泛任务上的表现也是一个重要考量因素。这意味着任何针对特殊应用场景所做的优化都应当谨慎实施,以免影响其跨行业的适用范围。 #### 资源消耗巨大 相比起构建一般性的AI系统来说,在某个专门方向上深入挖掘往往意味着更高的成本支出——无论是人力方面还是物质条件上皆然如此。特别是涉及到复杂的数据清洗、标注以及后续维护工作时更是如此。 #### 模型持续更新的需求 随着行业环境和技术趋势的变化,原有的专业知识可能会变得过时或不再完全适用;因此,为了维持最佳的服务水平,就必须定期对企业内部积累的新资料加以利用,并据此调整现有算法结构及其参数设置[^2]。 --- ### 解决方案概述 #### 利用Scaling Laws指导资源配置 基于对scaling laws的研究成果表明,适当扩大神经网络架构尺寸(如增加层数/节点数)、扩充样本集容量均有助于改善最终产出的质量。遵循这一原则可以帮助决策者更加科学合理地分配有限的研发预算给到最有可能带来回报的地方去。 #### 实施Compute-Optimal策略 按照compute-optimal理论建议的比例同步扩展输入素材的数量级和权重矩阵维度,则可以在一定程度上缓解因硬件设施不足而导致的时间延迟现象发生频率过高问题,从而加快整个开发周期进度条向前推进速度。 #### 推动Domain Continue Pretraining 考虑到基础版本可能存在某些局限性无法很好满足实际应用场合下的多样化诉求,故而有必要选取合适的初始状态作为起点继续开展针对性更强的再教育过程。此做法既有利于继承先前所学到的知识经验又便于引入新鲜血液注入其中实现双赢局面[^4]。 #### 应用检索增强生成技术 面对动态变化着的企业运营状况所带来的不确定性风险,采用似于retrieval-augmented generation (RAG) 的框架或许不失为一种明智的选择。它允许机器一边查询外部数据库寻找最新资讯补充进来,另一边则依据当前上下文语境灵活组合成连贯表达形式输出给用户端查看参考使用[^3]。 ```python def domain_continue_pretrain(model, new_data): """ 对已有模型进行领域内增量预训练 :param model: 已有大语言模型实例 :param new_data: 新增的专业领域数据集合 """ # 更新词典以适应新词汇 update_vocab(model.vocab, new_data) # 使用新增数据进一步训练模型 train_model(model, new_data) def retrieval_augmented_generation(query, knowledge_base): """ 结合检索机制辅助生成回复 :param query: 用户提出的询问字符串 :param knowledge_base: 可供查阅的信息库对象 """ retrieved_info = search(knowledge_base, query) response = generate_response(retrieved_info + context_from_query(query)) return response ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

comli_cn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值