记得给 “应用机器学习” 添加星标,收取最新干货
作者:香港城市大学、西安交通大学 刘启东
今天跟大家分享一篇来自西安交通大学、香港城市大学、腾讯优图实验室天衍研究中心、南方科技大学和中国科学技术大学的论文,该论文已被SIGIR2024接收。这篇文章提出了一种新颖的结合MOE和LoRA的参数高效微调框架,用于多任务医疗应用,名为MOELoRA。
论文地址:https://arxiv.org/abs/2310.18339
代码链接:https://github.com/Applied-Machine-Learning-Lab/MOELoRA-peft
1. 简介
在医疗领域,LLMs的应用对患者和医生都有巨大的好处。对于患者,LLMs驱动的在线问诊系统可以为其提供获取医疗知识的方便途径。对于医生,LLMs驱动的CDSS系统可以缓解工作负担。已有的一些方法利用in-context learning的方法使得ChatGPT这一类通用的大语言模型可以完成医疗任务,但是其缺乏相应的专业医疗知识。另一些专门为医疗领域训练的超大规模LLMs虽然可以很好地完成医疗任务,但是其是闭源的,并且微调和推理成本对于一般的医疗机构来说是难以接受的。因此,为医疗任务微调一个开源的大语言模型是必要的。
然而,为医疗任务微调大模型存在两个挑战:(1)任务多样性挑战:在真实世界的临床环境中,LLMs 需要应对各种任务,如诊断预测、药物推荐、临床报告生成等。由于这些任务具有不同的特性,为所有任务微调一个统一的模型具有难度。(2)高微调成本挑战:由于LLMs的参数规模极其庞大,这使得对其进行微调非常具有挑战性。LLMs中大量的参数会导致实际中微调的时间和计算开销都非常高。因此,迫切需要参数高效的微调方法。综上所述,一个多任务的高效参数微调方法对于将LLMs用于医疗领域具有重要的意义。
2. 问题定义
通常情况下,需要修改LLM的输入和输出格式。以医学命名实体识别为例。传统模型直接从医学文本中输出实体。相反,LLMs需要一个指令模板进行指导。并且我们需要从LLMs输出的文本答案中提取实体。因此,LLMs是通过提示文本和文本答案的配对进行微调,而不是直接通过医学文本和实体。
3. 方法
3.1 框架
本文所设计的框架分为三方面:(1)参数高效微调:我们所设计的高效微调layer在微调时分别与LLMs的dense,keys,queries和values层结合。(2)MOELoRA层:结合多个共享的专家网络来学习不同医学任务的公有和特有的知识。(3)任务驱动的门控函数:用于决定每个专家的贡献权重。
3.2 MOELoRA层
MOELoRA由多个专家网络构成。每个专家网络又由一组低秩参数矩阵组成。由此,其前向传播公式如下式所示:
此外,MOELoRA实际上与LoRA具有相同的可微调参数量,说明其微调效率是很高的。MOELoRA的可微调参数量如下式,其中N是MOELoRA所含有的专家个数,r是MOELoRA的秩。
3.3 任务驱动的门控函数
任务驱动的门控函数主要通过一个任务嵌入矩阵和一个线性转换层,来为每个任务获得其特有的专家权重,从而可以为每个任务生成其特有的微调参数。我们设计了两个版本的门控函数,分别是稠密的和稀疏的。
因为每个任务中不同的样本具有相同的专家权重,因此我们可以为每个任务恢复其特有的微调后的大模型权重参数。恢复过程如下:
4. 实验
4.1 实验设置
我们在一个中文的医疗多任务数据集PromptCBLUE上进行了充分的实验。对比了四组baselines:(1)没有微调的LLMs:ChatGPT和Huatuo。(2)微调的LLMs:P-Tuning,LoRA。(3)模型编辑:Task-Arithmetic。(4)跨任务泛化方法:LoRAHub和MoLoRA。
4.2 整体实验效果
本文所提出的方法在大部分任务上都具有最佳的表现。并且,我们方法的平均表现显著高于所对比的所有baseline方法。
4.3 消融实验
实验结果表明我们所提出的MOE策略和任务驱动的门控函数都是有效的。此外,我们验证了当MOELoRA只结合LLMs中的attention层时,其一致地好于LoRA,说明了方法的鲁棒性。
4.4 效率实验
实验表明我们的方法在训练参数量和推理速度上都可以与LoRA持平。
5. 总结
针对医疗领域微调LLMs时会出现的医疗任务多样性问题和大参数量导致的微调消耗巨大挑战,我们提出一种新颖的参数高效微调框架,用于多任务医疗应用,名为MOELoRA。设计的框架结合了混合专家(MOE)用于多任务学习和低秩适应(LoRA)用于参数高效微调的优势。
END