点击下方卡片,关注 「AI视界引擎」 公众号
预训练和微调已成为各种自然语言处理(NLP)任务中的一种有前景的范式。预训练的大语言模型(LLM)的有效性进一步得到提升,尤其在医学领域,尤其是传统中医(TCM)领域具有潜在应用价值。然而,将这些通用模型应用于特定领域往往会导致不佳的结果,主要原因是缺乏领域知识、独特目标和计算效率等方面的挑战。此外,这些模型在特殊领域(如传统中医)的有效性需要进行全面评估。
为解决上述问题,作者提出了一种新颖的特定领域 TCMDA(TCM 领域适应)方法,即利用特定领域的数据进行高效预训练。具体来说,作者首先通过识别领域关键词并从通用语料库中检索,构建了一个大规模的 TCM 特定语料库 TCM-Corpus-1B。然后,作者的 TCMDA 利用 LoRA(低功耗广域网络)技术,在预训练模型的权重保持不变的同时,通过奇异值分解矩阵有效地训练特定密集层进行预训练和微调,从而高效地将模型与 TCM 相关任务对齐,即 TCM-GPT-7B。
作者还分别在两个 TCM 任务上进行了广泛实验,包括 TCM 考试和 TCM 诊断。TCM-GPT-7B 在两个数据集上都取得了最佳性能,分别比其他模型提高了 17% 和 12% 的相对增幅。
据作者所知,作者的研究是首次在 TCM 领域验证具有 70 亿参数的大语言模型的领域适应性。一旦论文被接受,作者将发布 TCMCorpus-1B 和 TCM-GPT-7B 模型,以促进中医和 NLP 的跨学科发展,为后续研究奠定基础。
1、简介
近年来,预训练语言模型随后进行微调的自然语言处理(NLP)范式受到了广泛关注。基于各种文本内容,预训练语言模型(PLMs)展示了其在捕捉深度语义洞察方面的能力,显著提高了多种 NLP 任务的性能。例如,BERT 采用堆叠 Transformer 编码器进行全面语料库预训练,从而在下游任务中取得了显著的性能提升。与此同时,GPT采用了基于 Transformer 的解码器架构,展示了出色的生成能力。
近期研究表明,通过扩大模型规模和训练数据,大型语言模型(LLMs)可以实现令人印象深刻的结果。例如,GPT-3 拥有 1750 亿个参数,PaLM 拥有惊人的 5400 亿个参数,这些模型是在包含超过 1 万亿个Token的数据集上训练的。这些数据集包括从编程代码片段到新闻文章、论坛帖子和大纲的多样化来源。通过全面训练,这些模型展示了涌现行为,包括少样本学习和零样本学习,使它们在写作、编程和推理等任务中表现出色。
尽管大型语言模型在直接应用到特定领域时遇到了挑战,包括复杂的领域知识、独特的目标和计算效率问题。一个主要的障碍是通用 LLM 在不进行预训练的情况下如何整合特定领域的专业知识,这可能导致将模型适应到不同场景时性能下降。甚至可能导致生成幻觉或错误信息。Gururangan 等人证明了在四个领域(生物医学、计算机科学、新闻和评论)上进行领域自适应预训练的模型始终优于没有预训练的模型,强调了预训练在领域适应方面的不可或缺性。
此外,Arumae 等人和 Jin 等人发现,对预训练模型采用参数正则化技术可以提高领域适应效果。Shah,R. S. 等人的研究表明,FLANG 是一个针对金融领域的特定领域语言模型。通过利用金融关键词和短语,优化了其训练过程,并为金融领域内的五个独特 NLP 任务提供了基准。
另一个挑战是大规模预训练的计算成本,由于模型参数规模或堆叠网络层数过大,往往过高。为解决这个问题,ALBERT在 Transformer 架构中采用了跨层参数共享,大大减少了模型规模。然而,这导致了性能的明显下降。DistilBERT 是大型预训练模型的简化版,在减少参数的同时保持了令人满意的性能。Edward 等人引入了低秩自适应(LoRA)方法,在该方法中,他们冻结了预训练模型的权重,使用奇异值分解矩阵来有效地训练特定密集层,从而在不降低后续任务性能的情况下显著减少可训练参数的数量。
在生物医学领域,已有一些研究利用特定领域的预训练语言模型,取得了有前景的结果。例如,BioBERT,一个在生物医学文本上进行预训练的特定领域 BERT 基模型,已在下游任务(如生物医学命名实体识别和关系提取)中展示了适用性。Venigalla 等人引入了 BioMedLM,一个在 PubMed 摘要和全文文档上训练的 GPT 基模型,在医学问答任务上取得了最先进的结果。
尽管已有关于预训练语言模型在生物医学领域的研究,但很少有研究探讨在临床领域扩展它们,由于临床病历的敏感性以及所需计算能力过大。此外,这些模型在特定领域(如传统中医)的有效性仍有待验证。
在本研究中,作者旨在研究大型语言模型在中医领域的适应性,并随后进行性能评估。这具有重要意义,因为中医代表着中国代代相传的宝贵遗产,是西方医学的重要补充。已经有一些研究关注了中医自然语言处理(NLP)任务。例如,Zhang 等人提出了中医语言系统(TCMLS),旨在标准化中医术语以提高信息提取效率。
然而,构建这样一个系统付出了高昂的数据获取成本。然而,与西方医学相比,将大型语言模型融入中医领域的开发程度较低。这种差距可以归因于一系列挑战。首先,与其他医学领域相比,中医面临着公开可用资源的稀缺。许多预训练模型主要在通用语料库上进行微调,可能导致在面对中医微妙语言时性能不尽如人意。此外,用于训练特定领域模型的计算资源通常比通用模型少。
为解决这些挑战,作者探索了将通用大型语言模型定制为特定中医领域的方法,通过整合上下文数据和领域特定知识。作者引入了一种名为 TCMDA 的新方法,旨在高效地为中医领域定制预训练模型。
作者的贡献如下:
- 首先,为克服中医预训练数据有限的可用性,作者采用了一种战略方法,从通用语料库中提取领域文本。通过引入领域术语并提取与任务相关的关键词,作者构建了一组特定的中医关键词。然后利用这组关键词检索与中医相关的文本,形成了中医语料库 1B,这是一份大量中医相关文本数据的集合。
- 其次,为确保大型语言模型与中医领域的对齐,作者引入了一种名为 TCM-GPT-7B 的新模型。该模型在预训练和微调阶段采用 LoRA 技术进行领域适应。
- 此外,作者对 TCM-GPT-7B 在两个不同的中医任务上进行了全面评估:中医考试和中医诊断。实验结果表明,在使用 TCM-Corpus-1B 进行预训练后,作者的模型实现了最先进的性能,揭示了领域特定预训练的必要性和有效性。据作者所知,TCM-GPT-7B 是第一个在中医数据上预训练的 7B 规模大型语言模型。
- 最后,作者致力于公开发布 TCMCorpus-1B 精选语料库和 TCM-GPT-7B 模型,以推动中医和 NLP 的跨学科研究。
2、 本文方法
在本节中,作者描述了作者提出的 TCMDA 方法。如图 1 所示,作者的方法可以分为3个步骤:
- 领域相关关键词提取
- 相关语料库检索
- LLM 预训练和微调
A. 领域相关关键词提取
作者利用 TextRank 算法提取与任务相关的关键词集合,表示为 ,其中 是一个关键词, 代表关键词的数量。TextRank 是一种基于图的排序算法,用于自动化文本中的关键词提取。它通过测量词汇相似性构建一个图,并使用迭代评估词汇重要性并计算关键词排名。
通过将 TextRank 应用于所有样本的文本提取,作者获得了每个单独样本的前5个关键词。为了增加关键词的多样性并增强领域的覆盖范围,作者将一个公开可用的 TCM 词典 1 纳入关键词集合,表示为 。因此, 和 的融合形成了全面的关键词集 ,作为查询语料库的基础。
此外,在为每个样本提取关键词的过程中,作者纳入了数量信息以提高检索任务相关语料的有效性。具体来说,作者在检索时将关键词发生次数作为权重。权重计算如下:
其中 代表关键词 的出现次数。
B. 相关语料库检索
作者从百度百科和维基百科来源收集了大量的语言语料库。在从语料库中提取检索之前,作者进行了彻底的数据清洗。作者去除了特殊标签和字符,并对检索内容进行了标准化。
为了有效地从收集的语料库中检索特定领域的内容,作者采用了 BM25 算法,因为它简单、高效,并在信息检索任务中得到了广泛应用。BM25 基于 TF-IDF(词频 - 逆文档频率)模型。它将文本视为一组术语,并计算给定文档 D 和查询 Q 之间的得分。为了提高 BM25 的有效性,作者通过先前获得的权重 调整了查询关键词的权重。具体来说,作者将关键词 重复 次。生成的修改后的查询 用于评分文档,最终获得最终的相关性得分 。
C. LLM 预训练和微调 with LoRA
为了解决过度参数大小和过拟合的风险,作者采用了 LoRA 方法,在预训练和微调过程中分别使用 LoRA 作为全参数微调方法的替代。LoRA 方法涉及冻结预训练模型矩阵权重 W,并在每层 Transformer 架构中引入可训练的秩分解矩阵 B 和 A,大大减少了下游任务的训练参数数量。
具体来说,给定线性层 ,LoRA 将其转换为 ,其中 表示冻结的参数, 表示可训练的参数,,,且秩 。在预训练过程中,作者优化了一个因果语言模型(CLM)损失函数,以预测后续Token:
其中 表示句子中的前 个Token, 表示下一个Token。在指令监督微调(SFT)过程中,对于给定的输入提示 和响应 ,损失函数为:
其中 和 分别表示响应和输入提示的长度。
3、实验
A. 数据集
本研究主要利用三个部分的数据:通用语料库、中医考试数据集(简称 TCM-EXAM)和中医电子病历数据集(简称 TCM-EHR)。通用语料库是从百度百科和维基百科来源收集的。经过数据清洗过程后,这个语料库包含了大量信息,大小为 20GB。TCM-EXAM 数据集包括来自各种来源的中医特定考试题目。共有 6325 道多选题。
在此数据集中,作者构建了一个关注中医诊断(简称 DT)和方剂学(简称 FS)的测试子集,分别包含 214 道和 207 道题目,其余 5904 道题目用作训练集。TCM-EHR 数据集来自一家中医医院,包括 7783 份电子病历。每个病历个体包含包括主要症状、现病史、物理检查和诊断等信息。针对此数据集,作者生成了一个有针对性的测试子集,包括特定的疾病组,即中医的“病因病机”(简称 ES)和“皮肤黏膜疾病”(简称 SMD)。这个测试子集包括 150 和 150 份记录,而剩余的 7483 份记录用作训练集。
B. 评估指标
作者对模型在两个不同任务上的性能进行了评估:中医考试任务(使用 TCMEXAM 数据集)和中医诊断任务(使用 TCMEHR 数据集)。对于中医考试任务,作者将考试题目及其对应答案选项作为输入。然后从模型生成的响应中提取预测选项,使用正则表达式。
关于中医诊断任务,为了便于定量评估,作者将诊断查询转化为五个选项的多选题。具体来说,作者在问题中增加了相同疾病组的其他疾病选项。随后,将患者信息和疾病选项作为输入,从模型生成的响应中提取预测选项,使用正则表达式。对于这两个任务,作者采用准确度作为评估指标。这涉及计算准确度,通过比较提取的选项和准确答案来比较。
C. 训练细节
作者进行了一系列全面实验。作者选择使用 BLOOM-7B 模型作为基础架构,因其多语言能力和公开可用性。
- 在预训练过程中,作者将学习率设置为 1e-4,使用批次大小为 128,最大序列长度为 1024 tokens,跨越 2 个Epochs。
- 在监督微调过程中,作者将学习率设置为 5e-5,批次大小为 128,最大序列长度为 1024,训练跨越 3 个Epochs。作者采用 LoRA,将矩阵的秩 设置为 8,缩放因子设置为 32,dropout 率为 0.1。
D. 实验结果
1. 对两个中医任务的评价
为了评估各种预训练策略对模型在中医任务中性能的影响,作者使用 TCM-EXAM 和 TCMEHR 数据集对模型进行了全面评估。这些模型包括三种预训练策略,然后进行微调:Baseline,没有额外预训练的模型。Random,预先在大小相当于 TCM-Corpus-1B 的随机语料库上训练的模型。TCMDA(作者的模型),预先在 TCM 特定语料库上训练的模型,即 TCM-Corpus-1B。
表 I 和 II 分别呈现了 TCM 考试和诊断任务的评估结果。括号内的百分比表示相对于Baseline的相对性能。
如表 I 和 II 所示,作者发现具有进一步预训练的模型始终优于没有额外预训练的模型。具体来说,Random 模型在 TCM-EXAM 和 TCM-EHR 任务上的性能分别提高了 10.5% 和 2.5%。作者的领域特定 TCMDA 模型显示了更多的增强,TCM-EXAM 任务上的增强为 17.4%,TCM-EHR 任务上的增强为 12.3%,分别达到 0.290 和 0.264 的准确度。值得注意的是,Random 在随机语料库上预训练后表现出性能提升。这一提升可能归因于 BLOOM,作者的预训练框架,缺乏对中文语言数据的接触,从而在不同的情境下提供了一定的好处。然而,最显著的进步观察到的是 TCMDA 模型,表明领域特定预训练的有效性。
值得注意的是,Random 模型在 TCM-EXAM 的 SMD 任务中准确度下降了 8.9%。相反,TCMDA 模型在所有任务中均表现出优异的性能,表明领域特定预训练不仅提高了性能,而且提高了模型在不同场景下的鲁棒性。TCM-EXAM(17.4%)相对于 TCM-EHR(12.3%)的更大提升可能归因于 TCM-EXAM 范围更广,从而从领域预训练中获得更多的好处。而 TCM-EHR 主要处理临床记录。尽管提取专用内容可能具有挑战性,但作者的领域特定预训练显著提高了模型对这些记录的理解。
2. 语料库大小对模型性能的影响
为了研究语料库大小对模型性能的影响,作者进行了使用不同大小语料库进行预训练的实验,如图 2 所示。
作者的 TCMDA 模型,使用 TCM 相关语料库进行预训练,在所有实验中均表现出优于 Random 的性能。如图 2 所示,Random 随着语料库大小的增加,表现出优于 Baseline 的中文语言能力。但是,随着语料库大小的扩大,Random 并未显示出性能提升的趋势。
相反,使用 TCM 相关语料库进行预训练的 TCMDA 模型,随着语料库大小的增加,表现出性能提升的趋势。这一观察结果也暗示了在未来研究中需要在更广泛的语料库中进一步验证的必要性。
3. 案例研究
表 III 从 TCMEXAM 测试数据集中提取了一个任务样本。Response 1 由作者的 TCMDA 模型生成,而 Response 2 是 Random 模型的输出。值得注意的是,Response 1 正确地回答了查询,而 Response 2 在提供准确答案方面显得力不从心。
尽管两个回应在语言流畅性方面均表现良好,但 Response 2 缺乏有意义和有益的内容。例如,在 Response 1 中,“肌肉和骨骼中的脉搏,初时疏密不一,散乱无序,称为盘旋脉。”有效地描述了盘旋脉的定义,基于这个定义进行的后续分析导致了准确答案。这说明了从 TCM 语料库中获得的信息如何丰富了模型生成的回应质量,从而提高了模型的整体性能。
相比之下,Response 2 的句子“脉搏是人体经络系统在肌肉和骨骼部分的一部分。静脉的形态和结构非常复杂,有疏密不一的图案,散乱无序。”仅仅重复了原始问题,随后得出了错误的答案。这个结果表明,在没有通过预训练学习领域特定知识的情况下,模型很难生成有用的见解并提供准确的回应。
参考
[1]. TCM-GPT: Efficient Pre-training of Large Language Models for Domain Adaptation in Traditional Chinese Medicine.
点击上方卡片,关注 「AI视界引擎」 公众号
