该论文作者均来自于华南理工大学马千里教授团队,所在实验室为机器学习与数据挖掘实验室。论文的三位共同第一作者为博士生郑俊豪、硕士生邱圣洁、硕士生施成明,主要研究方向包括大模型和终生学习等,通讯作者为马千里教授(IEEE/ACM TASLP 副主编)。马千里教授团队近年来在国际权威期刊(如 TPAMI 等)和国际顶级学术会议(如 NeurIPS、AAAI、IJCAI、ACL、KDD、ICDE 等)上发表多篇 Time Series/NLP/Recommendation System 相关的研究工作,和国内外知名高校、科研机构广泛开展合作。
随着大语言模型在各个领域应用的不断拓展,如何让这些模型能够连续适应数据、任务和用户偏好的变化成为一个关键问题。传统的静态数据集训练方法已经无法满足现实世界的动态需求。
为了解决这一挑战,终生学习(Lifelong Learning)或连续学习(Continual Learning)技术应运而生。它能让大语言模型在其工作寿命中不断学习和适应,在整合新知识的同时保留以前学习过的信息,防止灾难性遗忘(Catastrophic Forgetting)。
最近,来自华南理工大学的研究者调研、整理并总结了大语言模型(LLMs)的终生学习(Lifelong Learning)方法及其发展前景,并将其总结为一篇全面且前沿的综述。
- 论文标题:Towards Lifelong Learning of Large Language Models: A Survey
- 机构:华南理工大学
- 论文地址:https://arxiv.org/abs/2406.06391
- 项目地址:https://github.com/qianlima-lab/awesome-lifelong-learning-methods-for-llm
图 1 展示了终生学习(Lifelong Learning)在大语言模型和人类学习过程中的类比。图中通过两条平行的学习路径来展示人类和大语言模型在终生学习中的进化过程。
人类学习(Human Learning)
1. 步行(Walk):人类从最基础的技能(如步行)开始学习。
2. 骑自行车(Ride a Bike):随着学习的进展,人类掌握了更复杂的技能(如骑自行车)。
3. 开车(Drive a Car):最终,人类可以掌握更加复杂和高级的技能(如开车)。
每一步都代表着人类在终生学习过程中不断获取新技能和知识的过程。
大语言模型学习(LLMs Learning)
1. 新语言(New Language):大语言模型从学习新的语言开始(如学会处理不同的自然语言)。
2. 新领域(New Domain):接下来,模型学习新的领域知识(如从自然语言处理扩展到医学领域)。
3. 新信息(New Information):最终,模型可以学习和整合新的信息,无论是语言还是领域。
每一步代表着大语言模型在终生学习过程中不断扩展和更新知识的过程。这张图强调终生学习的过程:终生学习是一个连续的过程,涵盖了从基础到高级的逐步进化。终生学习不仅仅是简单的知识积累,而是一个动态的、不断进化的过程。
近年来,终生学习已成为一个越来越热门的研究课题,涌现出有关神经网络终生学习的大规模调查。大多数现有研究主要关注卷积神经网络(CNN)的终生学习的各种应用场景和图神经网络的终生学习。然而,只有少量文献关注语言模型的终生学习。尽管最近的一些综述收集了终生学习的最新文献,但都没有涉及连续文本分类、连续命名实体识别、连续关系提取和连续机器翻译等场景,对连续对齐、连续知识编辑、基于工具的终生学习和基于检索的终生学习的讨论也很少。
这篇综述是第一个从 12 个场景出发,对大语言模型终生学习方法进行全面系统研究的调查。
总体来说,综述的主要贡献包括:
- 新颖分类:引入了一个详细的结构化框架,将有关终生学习的大量文献分为 12 个场景;
- 通用技术:确定了所有终生学习情况下的通用技术,并将现有文献分为每个场景中不同的技术组;
- 未来方向:强调了一些新兴技术,如模型扩展和数据选择,这些技术在前 LLM 时代探索较少。
一、引言
本综述系统地总结了现有的终生学习技术方法,在图 2 中将其分为内部知识和外部知识两大类。
- 内部知识是指通过完全或部分训练将新知识吸收到模型参数中,包括连续预训练和连续微调。
- 外部知识是指在不更新模型参数的情况下,将维基百科或应用程序接口等外部资源中的新知识纳入模型,包括基于检索的终生学习和基于工具的终生学习。
内部知识(Internal Knowledge)
1. 连续预训练(Continual Pretraining):
- 连续垂直领域预训练(Continual Vertical Domain Pretraining):针对特定垂直领域(如金融、医疗等)进行的连续预训练。
- 连续语言领域预训练(Continual Language Domain Pretraining):针对自然语言和代码语言进行的连续预训练。
- 连续时间领域预训练(Continual Temporal Domain Pretraining):针对时间相关数据(如时间序列数据)的连续预训练。
2. 连续微调(Continual Finetuning):
特定任务(Task Specific):
- 连续文本分类(Continual Text Classification):针对文本分类任务进行的连续微调。
- 连续命名实体识别(Continual Named Entity Recognition):针对命名实体识别任务进行的连续微调。
- 连续关系抽取(Continual Relation Extraction):针对关系抽取任务进行的连续微调。
- 连续机器翻译(Continual Machine Translation):针对机器翻译任务进行的连续微调。
任务无关(Task Agnostic):
- 连续指令微调(Continual Instruction-Tuning):通过指令微调实现模型的连续学习。
- 连续知识编辑(Continual Knowledge Editing):针对知识更新进行的连续学习。
- 连续对齐(Continual Alignment):针对模型与新任务对齐进行的连续学习。
外部知识(External Knowledge)
1. 基于检索的终生学习(Retrieval-Based Lifelong Learning):通过检索外部知识库实现的终生学习。
2. 基于工具的终生学习(Tool-Based Lifelong Learning):通过调用外部工具实现的终生学习。
二、终生学习概况
2.1 问题定义
终生学习的目标是从一系列任务中学习一个语言模型,通过输入自然语言,生成目标输出。具体来说,对于生成任务,如问答,输入和输出分别代表问题和答案;对于机器翻译任务,输入和输出代表源语言和目标语言;对于文本分类任务,输入为文本内容,输出为类别标签;对于自回归语言模型的预训练任务,输入为一系列的词元,输出为相应的下一个词元。
2.2 评估指标
综述介绍了评估终生学习效果的指标,主要从整体性能、稳定性和适应性三个角度进行评估:
- 整体性能(Overall Measurement):包括平均准确率(AA)和平均增量准确率(AIA)。AA 是指模型在学习所有任务后的平均表现,而 AIA 则考虑了每个任务学习后的历史变化。
- 稳定性测量(Stability Measurement):包括遗忘测量(FGT)和向后转移(BWT)。FGT 评估旧任务的平均性能下降,而 BWT 评估旧任务的平均性能变化。
- 适应性测量(Plasticity Measurement):包括向前转移(FWD),即模型在新任务上性能的平均提升。
2.3 通用技术
综述在图 3 中展示了四种主要的终生学习方法,用于应对大语言模型在处理连续任务(Task t-1 到 Task t)时的灾难性遗忘问题。以下是对每种方法的解释:
(a) 基于重放的方法(Replay-Based Methods):
- 含义:这种方法通过在训练新任务时重放以前任务的数据,来巩固模型对旧任务的记忆。通常,重放的数据会被存储在一个缓冲区(Buffer)中,并与当前任务的数据一起用于训练。主要包括:
–经验重放(Experience Replay):通过保存一部分旧任务的数据样本,并在训练新任务时将这些数据重新用于训练,从而减少遗忘的发生。
–生成重放(Generative Replay):不同于保存旧数据,这种方法利用生成模型来创建伪样本,从而在新任务的训练中引入旧任务的知识。
- 图示:图 3 中显示了从 Task t-1 到 Task t 的过程,模型在训练 Task t 时,使用了缓冲区中的旧数据(Input t-1 )。
(b) 基于正则化的方法(Regularization-Based Methods):
- 含义:这种方法通过对模型参数施加正则化约束,来防止模型在学习新任务时对旧任务参数的过度调整。正则化约束可以帮助模型保留对旧任务的记忆。主要包括:
–权重正则化(Weight Regularization):通过对模型参数施加额外的约束,限制新任务训练时对重要权重的修改,以此保护旧任务的知识。例如,L2 正则化和弹性权重巩固(Elastic Weight Consolidation,EWC)就是常见的技术。
–特征正则化(Feature Regularization):正则化不仅可以作用于权重,还可以通过限制模型在特征空间中的表现,确保新旧任务之间的特征分布保持稳定。
- 图示:图 3 中显示了从 Task t-1 到 Task t 的过程,模型在训练 Task t 时,通过参数正则化来保持对 Task t-1 的性能。
(c) 基于架构的方法(Architecture-Based Methods):
- 含义:这种方法侧重于调整模型结构,以便无缝集成新任务,同时尽量减少对先前所学知识的干扰。主要包括图 4 中的六种方法:
–(a) 提示词微调(Prompt Tuning):通过在模型的输入前添加 “软提示词”(Soft Prompts),以引导模型的生成或分类任务。这种方法只需要调整少量的参数(即提示词),而不需要改变模型的主干结构。
–(b) 前缀微调(Prefix Tuning):在输入序列的前缀部分添加训练好的可调参数,这些参数被插入到 Transformer 层的自注意力机制中,帮助模型更好地捕捉上下文信息。
–(c) 低秩适应(LoRA,Low-Rank Adaptation):LoRA 通过在特定层次上增加低秩矩阵来适应新的任务,而不需要改变大模型的主要权重。这种方法极大地减少了参数调整的数量,同时保持了模型的性能。
–(d) 适配器(Adapters):Adapters 是插入到模型不同层之间的可训练模块,这些模块能够在不改变原有模型权重的情况下,通过少量的附加参数来适应新任务。通常应用在 FFN(Feed Forward Network)和 MHA(Multi-Head Attention)部分。
–(e) 专家混合(Mixture of Experts):通过选择性地激活某些 “专家” 模块来处理不同的输入,这些专家模块可以是模型中的特定层或者子网络。Router 模块负责决定哪个专家模块需要激活。
–(f) 模型扩展(Model Expansion):通过添加新层(New Layer)来扩展模型的容量,而保留原有的层(Old Layer)。这种方法允许模型逐渐增加其容量,以适应更加复杂的任务需求。
- 图示:图 3 中显示了从 Task t-1 到 Task t 的过程,模型在学习新任务时,部分参数被冻结(Frozen),而新增的模块用于训练新任务(Trainable)。
(d) 基于蒸馏的方法(Distillation-Based Methods):
- 含义:这种方法通过知识蒸馏(Knowledge Distillation),将旧模型的知识传递给新模型。在训练新任务时,新模型不仅学习当前任务的数据,还要模仿旧模型对旧任务的输出,从而保持旧任务的知识。主要包括:
–从新数据蒸馏(Distillation from New Data):学生模型在教师模型的指导下学习新任务,通过蒸馏旧模型的知识来减少对旧知识的遗忘。
–从旧数据蒸馏(Distillation from Old Data):利用教师模型在旧数据上的表现来引导学生模型对新任务的学习,从而达到保留旧知识的效果。
–从伪旧数据蒸馏(Distillation from Pseudo-Old Data):通过生成伪旧数据(Pseudo-Old Data),让学生模型在学习新任务时保持对旧知识的记忆。
- 图示:图 3 中显示了从 Task t-1 到 Task t 的过程,模型在训练新任务时,通过模仿旧模型的预测结果来保持对旧任务的知识。
三、连续预训练
连续预训练可以更新大语言模型的内部知识,而无需承担全面预训练的高昂成本,从而增强大语言模型的能力。目前的研究横跨垂直、语言和时间领域,解决了灾难性遗忘和时间适应等难题。经验重放、知识蒸馏、参数高效微调、模型扩展和再加热等技术已显示出良好的前景。
3.1 连续垂直领域预训练
连续垂直领域预训练(Continual Vertical Domain Pretraining)旨在通过在一系列领域特定的数据集上连续训练语言模型,确保模型在多个垂直领域或任务中表现出色,同时保留先前获得的知识。
主要方法:
1. 参数高效微调(Parameter-Efficient Fine-Tuning):
- 示例:CorpusBrain++ 采用骨干 - 适配器架构和经验重放策略来应对现实世界中的知识密集型语言任务。
- 示例:Med-PaLM 通过使用少量示例引入医学领域的指令提示调优。
2. 模型扩展(Model Expansion):
- 示例:ELLE 采用功能保留的模型扩展策略,通过灵活扩展现有预训练语言模型的宽度和深度来提高知识获取和集成的效率。
- 示例:LLaMA Pro 通过扩展 Transformer 块并使用新语料库进行微调,在通用使用、编程和数学任务中表现出色。
3. 再预热(Re-warming):
- 示例:Gupta 等提出的策略,通过引入新数据集时调整学习率,防止长期训练期间学习率过低,从而提高适应新数据集的效果。
4. 数据选择(Data Selection):
- 示例:RHO-1 通过选择性语言模型(SLM)训练,优先选择对训练过程有更大影响的标记。
- 示例:EcomGPT-CT 通过半结构化电子商务数据增强模型在领域特定任务中的表现。
3.2 连续语言领域预训练
连续语言领域预训练(Continual Language Domain Pretraining)旨在使语言模型能够不断整合新数据,并适应不断变化的语言领域而不遗忘先前的知识。
主要方法:
1. 架构调整方法(Architecture-Based Methods):
- 示例:Yadav 等通过引入教师强制机制改进提示调优,创建一组提示引导模型在新任务上的微调。
- 示例:ModuleFormer 和 Lifelong-MoE 使用专家混合(MoE)方法,通过模块化和动态增加模型容量来增强 LLM 的效率和适应性。
2. 再预热(Re-warming):
- 示例:Ibrahim 等提出的再预热方法,通过在训练新数据时临时增加学习率,帮助模型更快地适应新语言。
3.3 连续时间领域预训练
连续时间领域预训练(Continual Temporal Domain Pretraining)涉及不断更新语言模型,以保持其在时间敏感数据上的准确性和相关性。
主要挑战:
1. 性能下降:Lazaridou 等的研究显示,模型在未来数据上的表现显著下降,凸显了 LLM 在时间泛化上的困难。
2. 有限改进:Röttger 等发现,虽然时间适应在掩码语言模型任务上有轻微改进,但与单纯的领域适应相比,对下游任务性能的提升并不显著。
通过这些方法和研究,作者展示了连续预训练在不同维度上的方法和挑战,并强调了在垂直领域、语言领域和时间域中应用终生学习的必要性和有效性。
四、连续微调
连续预训练可增强大语言模型的内部知识,在此基础上,连续微调增强了大语言模型的内部知识,并使大语言模型适应特定任务,如文本分类、命名实体识别、关系提取、机器翻译或一般生成任务,如指令调整、知识编辑和与人类偏好对齐。为了应对灾难性遗忘和任务干扰等挑战,采用了蒸馏、重放、正则化、基于架构和基于梯度的方法等技术。作者在图 5 中对 7 种连续微调场景进行了说明。
这张图展示了七种不同类型的任务如何通过连续学习在大语言模型中实现。以下是对每个部分的详细解释:
(a) 连续文本分类
- 示例:连续文本分类任务通过逐步引入新的分类类别(如 Intent: Transfer -> Intent: Credit Score -> Intent: Fun Fact)来训练模型,使其能够适应不断变化的分类需求。
(b) 连续命名实体识别
- 示例:连续命名实体识别任务展示了如何在识别特定实体的同时,逐步引入新的实体类型(如 Athlete -> Sports Team -> Politician),使模型能够在识别新的实体时仍保持对旧实体的识别能力。
(c) 连续关系抽取
- 示例:连续关系抽取任务通过不断引入新的关系类型(如 Relation: Founded By -> Relation: State or Province of Birth -> Relation: Country of Headquarters),展示了模型如何逐步扩展其关系抽取能力。
(d) 连续知识编辑
- 示例:连续知识编辑任务通过不断更新模型的知识库,确保其能够对最新的事实进行准确的回答(如 Who is the president of the US? -> Which club does Cristiano Ronaldo currently play for? -> Where was the last Winter Olympics held?)。
(e) 连续机器翻译
- 示例:连续机器翻译任务通过逐步扩展模型对不同语言的翻译能力(如 English -> Chinese, English -> Spanish, English -> French),展示了模型在多语言环境中的适应能力。
(f) 连续指令微调
- 示例:连续指令微调任务通过逐步引入新的指令类型(如 Summarization -> Style Transfer -> Mathematics),训练模型在多种任务类型下的表现能力。
(g) 连续对齐
- 示例:连续对齐任务通过引入新的对齐目标(如 Helpful and Harmless -> Concise and Organized -> Positive Sentiment),展示了模型在不同道德和行为标准下的连续学习能力。
五、外部知识
连续预训练和连续微调对 LLM 的终生学习至关重要,然而随着 LLM 越来越大、功能越来越强,有两个新兴方向越来越受欢迎,它们可以在不修改大语言模型参数的情况下,为大语言模型提供新的外部知识。作者考虑基于检索的终生学习和基于工具的终生学习,因为这两种方法都是实现 LLM 终生学习的有前途的方法。图 6 举例说明了这两种方法。
基于检索的终生学习(Retrieval-Based Lifelong Learning)
- 介绍:随着世界信息的不断扩大和快速发展,根据历史数据训练的静态模型很快就会过时,无法理解或生成有关新发展的内容。基于检索的终生学习解决了大型语言模型从外部来源获取和吸收最新知识的关键需求,在需要时,模型通过检索这些外部资源,来补充或更新其知识库。这些外部资源提供了一个巨大的当前知识库,为增强预训练 LLM 的静态特性提供了重要的补充资产。
- 示例:图中的这些外部资源是模型能够访问并检索的。通过访问外部信息源,如维基百科、书籍、数据库等,模型能够更新自身的知识,并在遇到新信息时作出适应。
基于工具的终生学习(Tool-Based Lifelong Learning)
- 介绍:基于工具的终生学习源于将其功能扩展到静态知识之外并使其能够与环境动态交互的必要性。在现实世界的应用中,模型往往需要执行一些任务,这些任务涉及直接文本生成或解释之外的操作。
- 示例:图中模型利用这些工具来扩展和更新自身的能力,通过与外部工具的交互来实现终生学习。例如,模型可以通过应用程序编程接口获取实时数据,或通过物理工具与外部环境互动,以此来完成特定任务或获取新知识。
六、讨论与结论
6.1 主要挑战
- 灾难性遗忘(Catastrophic Forgetting):这是终生学习的核心挑战之一,新信息的引入可能会覆盖模型之前学到的内容。
- 可塑性 - 稳定性困境(Plasticity-Stability Dilemma):在保持模型的学习能力和稳定性之间找到平衡非常关键,这直接影响模型获取新知识的能力,同时保留其广泛的通用能力。
- 昂贵的计算成本(Expensive Computation Cost):全量微调大语言模型的计算需求可能非常高。
- 模型权重或预训练数据的不可用性:由于隐私、专有限制或商业许可,原始训练数据或模型权重往往不可用于进一步的改进。
6.2 当前趋势
- 从特定任务到通用任务:研究逐渐从专注于特定任务(如文本分类、命名实体识别)转向更广泛的通用任务,如指令调优、知识编辑等。
- 从全量微调到部分微调:鉴于全量微调的高资源消耗,部分微调策略(如 Adapter 层、Prompt 调优、LoRA)变得越来越受欢迎。
- 从内部知识到外部知识:为了克服频繁的内部更新限制,越来越多的策略采用外部知识源,如检索增强生成(Retrieval-Augmented Generation)和工具学习,使模型能够动态访问和利用当前的外部数据。
6.3 未来方向
- 多模态终生学习:将文本以外的多种模态(如图像、视频、音频、时间序列数据、知识图谱)整合到终生学习中,以开发更全面、更具适应性的模型。
- 高效终生学习:研究人员正致力于开发更高效的策略来管理模型训练和更新的计算需求,如模型剪枝、模型合并、模型扩展等方法。
- 通用终生学习:最终目标是使大语言模型能够主动获取新知识,并通过与环境的动态交互进行学习,不再仅仅依赖于静态数据集。
6.4 结论
作者将现有研究分为 12 种终生学习场景,并提供了全面的方法归纳整理。此外还分析强调了在管理灾难性遗忘、确保计算效率和在知识获取中的特定性与通用性之间维持平衡的必要性。随着领域的不断发展,这些先进策略的集成将对塑造下一代人工智能系统起到关键作用,帮助它们更接近实现真正的人类般的学习和适应能力。
通过对这些技术方法及其各自类别的详细研究,本综述旨在强调将终生学习能力整合到终生学习工具中,从而提高它们在现实世界应用中的适应性、可靠性和整体性能。同时为研究人员和工程师提供一个全面的视角,帮助他们更好地理解和应用终生学习技术,推动大语言模型的进一步发展。如果对文章感兴趣,可以查阅原始论文以了解更多研究内容。