查看原文
其他

大连理工发布“太一”:基于多任务指令微调的中英双语生物医学大模型

DUTIR-BioNLP PaperWeekly
2024-08-22

©PaperWeekly 原创 · 作者 | 大连理工大学信息检索研究室

单位 | 大连理工大学


随着 ChatGPT 的问世和后续 GPT-4 的发布,大模型强大的语言理解能力和文本生成能力引起了大家的极大关注,并引发了新一轮大语 a 言模型(Large Language Models,LLMs)的开发浪潮。

近期大连理工大学计算机学院信息检索研究室研发了中英双语生物医学大模型——太一(Taiyi),并于近日发布了预印版论文。“太一”名字的由来主要有三层含义,也体现了该模型的三个主要特点:

1. 与“太医”同音,即面向生物医学领域的大模型;

2. “太”为“大”字上多一点,即方法在通用大模型基座上进行指令微调;

3. “太一”在汉语中也有浑然为一的含义,目标使一个模型具备多语多任务上的能力。

本文希望通过分享“太一”大模型训练中的一些经验和资源信息,和大家一同深入探索生物医学垂直领域大模型训练方法,促进大语言模型在健康医疗领域的应用发展。

论文题目:

Taiyi: A Bilingual Fine-Tuned Large Language Model for Diverse Biomedical Tasks

论文链接:

https://arxiv.org/abs/2311.11608

项目链接:

https://github.com/DUTIR-BioNLP/Taiyi-LLM



引言

自去年 ChatGPT 问世以来,大语言模型凭借在多项自然语言处理(NLP)任务上取得的惊人表现迅速进入了广大人们的视野。研究者们也开始探索和开发基于大模型的人工智能系统,希望应用于各行各业,例如法律、教育、金融等。

在医疗健康领域,大语言模型对于处理大规模和复杂的生物医学文本数据,以及提供更加个性化的医疗健康咨询服务等应用具有巨大潜力,有望促进健康医疗信息化和智能化的快速发展。但是,与通用新闻领域的文本不同,生物医学文本具有大量复杂的术语、歧义的缩写、更复杂的语法和不常见的词汇等特性。

由于这些领域特性,给在通用数据上训练的大语言模型带来了挑战。由于领域知识受限,直接将通用模型应用到生物医学文本上,会出现模型性能下降、预测结果可靠性差等问题。因此,研究者们针对领域特点,展开了面向生物医学领域的大语言模型研究,表 1 列举了一些现存的生物医学大模型。
▲ 表1 现存生物医学大模型举例

目前,大多数开源生物医学大模型主要使用单语(如英文或中文)的问答和对话数据进行指令微调,重点关注提升模型在生物医学问答和对话任务上的表现。而“太一”模型侧重探索大模型在生物医学领域中双语自然语言处理多任务的能力。希望面向生物医学领域中的多语多任务多场景,使模型能够具备信息抽取、辅助临床决策、健康咨询和导诊等功能,辅助生物医学研究者、临床医生和患者等多目标用户,加速医疗健康的信息化、智能化发展。


方法

本文首先收集并整理了现存的中英双语生物医学自然语言处理(BioNLP)语料库。然后将这些语料库统一格式,并转换为指令数据用于后续微调。在监督微调(SFT)阶段,本文提出了一种两阶段指令微调策略来优化模型训练。最后,在涵盖 4 种 BioNLP 任务类型的 13 个测试集上进行了模型评估。下图展示了“太一”的整体框架。

2.1 训练数据

数据收集和整理

为了充分利用现存可用的 BioNLP 资源,本文较全面地收集了中英文开源数据集。数据主要来源于中文/英文 BioNLP 任务数据集和用于现存生物医学大模型的训练数据。最终,成功地收集了总共 140 个中英文生物医学数据集,其中中文数据集 38 个,英文数据集 102 个,覆盖 15 种 BioNLP 任务,数据集总览图如下图所示:

具体任务包括:命名实体识别/标准化(NER/NEN)、关系抽取(RE)、因果关系抽取(CRE)、事件抽取(EE)、共指解析(COREF)、文本分类(TC)、多选问答(QA-mc)、简答(QA- sqa)、基于上下文的问答(QA-cqa)、多轮对话(MRD)、机器翻译(MT)、文本语义相似性计算(TP-ss)、文本蕴含(TP-te)、文档摘要(TT-ds)和文本结构生成(TT-ts)。

对于 140 个数据集,同时记录了任务类型、数据规模、任务描述以及数据集和论文的链接等信息。以助于后续充分理解和正确使用每个语料库,也有利于多语多任务 BioNLP 模型的全面评估和开发。可通过以下链接访问详细信息:
https://github.com/DUTIR-BioNLP/Taiyi LLM/blob/main/data_file/dataset_inf.md

统一数据格式

对于原始数据集,由于数据集来源不同和开发团队不同,即使相同的 BioNLP 任务,也存在不同的数据格式。例如,不同的 NER 数据集可能存在 BioC、CoNLL 和 PubTator 多种格式。这种不一致的格式也给开发系统带来了不便。因此,为了方便后续数据处理和跨数据集集成,本文建立了统一的数据格式可以实现互操作性。为了与之前的 BigBio 工作保持一致,本文在此模式基础上进行了扩展,以支持收集到的所有任务。

指令数据构建

为了使模型能够执行多任务,本文尽可能的使用全部任务构建指令微调数据。此外,为了增强模型的通用会话能力和无害性,还在训练数据中添加了 MOSS 对话数据。已有研究已经证明,训练数据的质量在下游任务的执行中起着关键作用,质量较差的数据会对大模型的性能产生不利影响。因此,通过人工分析数据集,本文选择了高质量的数据集,并进行了重复数据的过滤。最终用于指令微调的数据超过 100 万条样本,如表 2 所示。
▲ 表2 最终指令数据汇总

为了构建指令微调数据,本文为每个任务设计了人工模板。对于 QA 和对话任务,原始问题用作模型输入,答案用作输出。对于其他任务,每个任务分别用英文和中文人工创建了约 20 个指令模板。此外,一些复杂的任务被划分为多个子任务,以降低难度和增加任务多样性。例如,药物致病关系抽取数据集 BC5CDR 可被拆解为关系抽取、药物和疾病实体同时识别、药物实体识别、以及疾病实体识别多个任务。

2.2 模型训练

基座模型

当前版本的“太一”是基于 Qwen-7B-base 通过指令微调得到。通义千问-7B(Qwen-7B)是阿里云研发的通义千问大模型系列的 70 亿参数规模的模型,在超过 2 万亿 Tokens 数据进行预训练,包含高质量中、英、多语言、代码、数学等数据,涵盖通用及专业领域的训练语料。

两阶段指令微调

在有监督指令微调阶段,构建的百万指令数据被用于模型微调。由于指令数据涉及十多种双语 BioNLP 任务,在训练过程中,由于不同任务互相干扰导致一些任务难以收敛,简单的数据合并直接进行单阶段微调,效果并不理想。因此,本文提出了一种两阶段的监督指令微调策略,如下图所示。
根据任务类型和任务数据集的大小,本文首先将所有任务分为两类:类型 1 和类型 2。在类型 1 中,大多数任务在传统方法上大多被建模为非生成式任务(例如,NER 在传统方法上主要被建模为序列标记任务,而不是生成任务),或者任务数据集的规模较小。这些任务包括信息提取、文本分类、文本对任务、机器翻译和其他附加任务。在类型 2 中,主要是天然的生成任务,包括 QA 和对话任务。

在模型训练的第一阶段,本文首先对类型 1 任务的数据(约 340,000 个实例)进行监督指令微调。然后在第二阶段,将来自第一阶段的所有训练数据用作回顾数据,并加入类型2的所有数据混合增量训练。由于资源受限,本文使用了 8 张 A40 GPU。为了提高模型训练效率,选择了 Qlora 这一高效算法来进行指令微调。



实验结果

为了测试“太一”模型的双语 BioNLP 多任务的能力,本文选择了四种任务类型(即实体识别(NER)、关系抽取(RE)、文本分类(TC)、多项选择问答(QA-mc))作为指标评价,其他任务进行了案例分析研究。

两阶段微调策略效果

使用简单一阶段微调策略(One-stage)和两阶段微调策略(Two-stage)的模型在不同任务上的性能如下图所示。此实验从每个数据集的测试集中随机抽取了 200 个实例进行评价。

从结果可以看到,简单的一阶段训练在多数任务上的表现并不理想。主要原因可能是融合不同难度和数据集大小的不同任务极具挑战。相比一阶段策略,本文提出的两阶段训练策略在所有的英语和中文任务中,模型性能有了提升(所有任务平均指标提升了约 10%),特别是在 NER 和 RE 任务。
“太一”在不同任务上的性能表现
之前的实验表明,与简单的一阶段训练策略相比,本文的两阶段方法在测试集子集上有了显著的提升。这个实验评估测试了“太一”在涵盖 4 种任务类型的 13 个数据集的完整测试集上的性能,并提供了 ChatGPT 3.5 和每个语料库目前先进方法的结果进行比较。
▲ 表3 太一模型在不同任务测试集上的性能

如表 3 所示,除了两个 QA 数据集,“太一”在 13 个数据集中的 11 个数据集上优于通用领域的 ChatGPT3.5。这也表明了,使用领域内指令数据进行微调可以有效提升大语言模型在领域内的下游任务性能。然而,较低的 QA 结果表明,丰富的领域知识可能主要来从大模型的预训练阶段,这很难通过有限的指令微调数据进行弥补。

与先进的预训练语言模型相比,“太一”在 QA 任务上取得了可比的结果。然而,在 NER、RE 和 TC 这类传统非生成任务中,“太一”的性能与目前先进单任务微调的 BERT 类模型仍有一定差距(指标相差约为 9%)。

太一在新任务上的表现

为了研究“太一”是否可以应用于微调数据中没有出现过的新任务,本文留出了最近发表的生物医学语料库 BioRED 进行测试。BioRED 是一个文档级别的生物医学关系抽取数据集,其中人工标注了丰富的多种实体类型(如基因/蛋白质、疾病、药物等)和关系对(如基因-疾病;药物-药物等)。本实验评价太一在 BioRED 测试集上的 NER 的性能。即同时抽取药物、疾病、基因、变异、物种和细胞系 6 种实体。

▲ 表4 太一模型在BioRED测试集上NER的性能

从表4结果中可以看出,在这些实体类型中,“太一”对药物、疾病、基因和变体实体有较好的表现,主要因为在微调阶段,这些实体类型存在其他相关数据集中(例如,BC5CDR、GnormPlus 和 tmVar)。此外,值得注意的是,即使对于微调阶段完全没出现的实体类型(即物种和细胞系),“太一”仍然理解了实体识别指令,并成功抽取了一些物种和细胞系实体。

相比 ChatGPT,在 BioRED 测试集上“太一”获得了更好的 NER 性能(F1 得分为 39.1% vs. 60.8%)。这些结果表明,“太一”具有较强的鲁棒性和泛化能力。

案例研究

为了进一步研究使用领域内指令数据进行微调对大模型的影响,本文也将 “太一”与 Qwen7B-Chat (Qwen 官方发布的使用相同基座 Qwen7B-Base 进行通用指令数据微调的模型)进行了比较,定性分析了各种 BioNLP 任务的模型输出,下图给出了一些示例。

其他更多的示例可详见论文,也可使用“太一”Demo进行测试体验。



总结

“太一”致力探索大模型在生物医学领域的中英双语自然语言处理多任务的能力。本文首先收集了 38 个中文和 102 个英文生物医学语料库,涵盖 15 种 BioNLP 任务类型,并进行了格式统一转换,构建了高质量的指令数据;在指令微调阶段,探索了两阶段微调策略。

实验表明,该策略明显优于简单的单阶段指令微调;在 13 个 BioNLP 测试集上对模型进行了测试评估,实验结果表明了通过领域内数据指令微调,可以有效提升通用大模型在领域任务上性能,但是相比于当前针对特定任务设计的先进模型还有提升空间,特别是在传统的非生成任务上。


此外,目前“太一”大模型仍存在大模型的一些常见缺点,例如误解、幻觉、偏见、多轮长对话能力较不稳定、话题转换能力弱等。在未来的工作中,本项目也将在领域增量预训练、强化学习性能增强、可解释性、安全性等方面进一步深入研究,以提升“太一”的能力。



更多阅读



#投 稿 通 道#

 让你的文字被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧


·
·

继续滑动看下一个
PaperWeekly
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存