Merged Code + Language Skill Model

Nikola Balic (@nibzard)· emerging

问题

构建一个在自然语言任务(如摘要生成、文档生成)和代码生成/推理领域均表现优异的统一模型,通常需要执行大规模的集中式训练任务。这会存在以下问题:

  • 计算密集型:从零开始在代码和语言语料库上进行训练,需要海量计算资源。
  • 易受任务干扰:当在同一流水线中混合代码与自然语言任务时,模型可能会遗忘先前掌握的技能。

方案

采用去中心化训练+模型融合方案:

1. 训练「语言专精模型」

  • 对基础LLM进行微调,覆盖文档生成、摘要、代码注释及通用自然语言任务。
  • 保存检查点lang-specialist-ckpt.pt

2. 训练「代码专精模型」

  • 基于同一基础LLM架构,独立针对代码专属语料库开展微调:涵盖开源代码仓库、编程挑战数据集及代码-注释配对数据。
  • 保存检查点code-specialist-ckpt.pt

3. 权重平均融合

  • 采用简单算术权重平均(或Fisher加权平均)方法,将lang-specialist-ckpt.ptcode-specialist-ckpt.pt融合为merged-agent-ckpt.pt
  • 可选操作:融合后针对混合数据集(小型自然语言+代码任务)进行短期微调,以消除潜在冲突。

4. 迭代融合轮次

  • 当新增专精模型(如「Python测试专精模型」或「静态安全分析专精模型」)可用时,定期将其融合至主Agent中。

如何使用

  • 架构一致性:确保所有专家模型采用完全一致的架构(例如,18亿参数、相同层数)。
  • 模型融合工具:使用成熟脚本(如transformers库的merge_models)或自定义代码,在平均计算过程中应用费雪信息矩阵(Fisher Information Matrix)加权,以最小化模型间干扰。
  • 融合后验证:运行一套基准测试套件,覆盖自然语言任务(例如摘要、问答)和代码任务(例如代码生成、漏洞修复)。

权衡

  • 优点:
    • 研发并行化: 团队可独立开发NL与代码能力,随后进行合并。
    • 降低集中式计算开销: 无需借助单一大型GPU集群同时训练这两类技能集。
  • 缺点/注意事项:
    • 潜在性能稀释: 若数据分布存在冲突,朴素平均法可能会“模糊”专精模型的优势。
    • 模型对齐要求: 所有专精模型必须使用相同的基础分词器和词表,以避免出现不匹配问题。

参考文献

关键词

围绕模型融合主题,涵盖开源强化学习智能体相关观测结论、去中心化技能获取观点,以及Cohere关于专业模型融合的专项白皮书内容。

直译

基于2025年5月“开源智能体强化学习(RL)”分享中“模型融合的效果出奇地好”这一观测结论,以及威尔·布朗(Will Brown)关于去中心化技能获取的评述。

Cohere公司关于专业模型融合的《Command A》白皮书。

来源摘要

正在获取来源并生成中文摘要…

来源: https://www.youtube.com/watch?v=Xkwok_XXQgw

← 返回社区