LLaMA PRO:通过块扩展后预训练让LLM在特定领域超越极限

728 阅读4分钟

一、论文信息

二、概要

研究背景:

大型语言模型(LLMs)在自然语言处理领域表现出色,但在特定领域(如编程、数学、生物医学或金融)的应用中仍存在局限性。为了解决这一问题,研究者提出了一种新的后预训练方法,通过扩展Transformer块来增强LLMs的能力,同时避免灾难性遗忘,即在引入新知识时不损害原有能力。

模型设计:

研究者提出了一种名为“块扩展”(Block Expansion)的方法,通过在预训练的LLM中添加新的Transformer块,并仅使用新语料库来调整这些扩展块,从而有效地改善模型的知识库。在实践中,研究者将预训练的LLaMA2-7B扩展了8个块,创建了LLAMA PRO,这是一个具有8.3亿参数的基础模型,它在编程、编码和推理任务上表现优异。

image.png

实验结论:

  • 评估和测试

    • LLAMA PRO和LLAMA PRO - INSTRUCT在多个基准测试中进行了评估,包括一般语言任务、编程任务(HumanEval)和数学任务(GSM8K)。
    • 评估结果表明,LLAMA PRO在保持通用性能的同时,显著提升了在特定领域的性能。
  • 消融研究

    • 为了验证块扩展方法的有效性,研究者还进行了消融研究,比较了不同的训练策略,包括LoRA、顺序微调和块扩展训练。
    • 结果显示,块扩展训练在保留原有知识的同时,对新任务的适应性更强。

image.png

三、讨论

1、块扩展方法如何避免灾难性遗忘?

答案: 块扩展方法通过冻结预训练模型中的原始块,仅对新添加的块进行调整。这样,原始块保持其在预训练阶段学到的知识和能力,而新块则专门针对特定领域进行微调。这种方法允许模型在不损害其在一般任务上的性能的同时,增强其在特定领域的能力。

2、 LLAMA PRO的块扩展方法在跨领域应用中的潜力如何?

答案: LLAMA PRO的块扩展方法展示了在跨领域应用中的潜力,特别是在法律领域。通过在法律文档数据集上进行预训练,LLAMA PRO在法律相关的任务上也显示出了良好的性能。这表明块扩展方法不仅适用于编程和数学领域,而且可以扩展到其他专业领域,为开发多领域应用的高级语言代理提供了一种有前景的方法。

3、LLAMA PRO具体训练过程?

答案:

  • 预训练基础模型

    • 研究者首先选择了一个预训练的大型语言模型(LLaMA2-7B)作为基础模型。这个模型是在大量未标记的通用语料库上预训练的,因此具有强大的通用能力。
    • 预训练过程包括了大规模的无监督学习,这使得模型能够学习到丰富的语言知识和模式。
  • 块扩展

    • 在预训练的基础上,研究者通过复制Transformer块来扩展模型。这种扩展是通过在原始模型的每个块后面添加一个身份块(identity block)来实现的,这些新块的线性层被初始化为零,以启用恒等映射。
    • 这种设计确保了扩展后的模型在输出上与原始模型保持一致,同时增加了模型的深度。
  • 领域特定语料库的微调

    • 研究者使用代码和数学领域的特定语料库来微调新添加的块。这个过程是在冻结原始模型块的情况下进行的,以保持模型的通用能力。
    • 微调过程使用了大约80亿个标记,训练了大约2830个GPU小时(使用16个NVIDIA H800 GPU大约7天)。
  • 指令遵循训练(SFT)

    • 在块扩展和领域特定微调之后,研究者对LLAMA PRO进行了指令遵循训练(SFT),这是一种全监督的微调方法,涉及到对所有块的完全微调。
    • SFT使用了大约80M个标记,产生了LLAMA PRO - INSTRUCT版本,这个版本在遵循指令方面表现出色。