面向医学领域生成任务的大语言模型性能评测研究

作者: 蔡文涛 丁增辉 李梦 刘惠临 常征

面向医学领域生成任务的大语言模型性能评测研究0

摘要:文章针对医学领域大语言模型评测的不足,构建了4个医学评测任务,并选取8个中文开源大语言模型进行性能评估。结果表明,通用模型 Qwen2.5-7B-Instruct 表现最佳,而现有开源医学领域大语言模型的性能相对较差。研究还发现,指令遵循能力较强的大语言模型在医学领域任务中具有更大的优势。本研究为医学领域大语言模型的选择和优化方向提供了重要参考。

关键词:大语言模型;医学领域;性能评测;指令遵循;开源模型

中图分类号:TP391 文献标识码:A

文章编号:1009-3044(2025)04-0011-06 开放科学(资源服务) 标识码(OSID) :

0 引言

大语言模型(LLM) 如 ChatGPT、LLaMA、Qwen、Baichuan 等已在全球范围内展现出卓越的语言理解能力,并在医学领域展现出广泛的应用潜力,例如辅助诊断、疾病预测、医疗报告生成、医药研发和康复护理等。因此,如何有效评测大语言模型在医学领域的性能成为一个亟待解决的问题。对于大语言模型这类生成式模型来说,生成文本的质量是衡量其性能的关键参考。但相较于传统基于编码器的 Bert[1] 模型所提供的标准化输出,大语言模型生成的结果存在不确定性,给现有大语言模型评测带来了难题[2]。

此外,大语言模型的训练耗时耗力,成本昂贵,多数科研机构和高校并不具备从头训练这些模型的资源。因此,如何选择和优化基础模型以适应特定领域的应用至关重要。由于医疗领域的严谨性和私密性,我们需要保证模型能够本地部署运行,因此本文针对开源模型进行评测分析。

目前,大模型评测主要分为3种方法:模型评测法、人工评测法和基准评测法。模型评测法可能受限于裁判模型本身的认知,且存在成本高昂和位置偏见等问题。人工评测法虽然是较为准确的评测方式,但由于其耗时费力,难以大规模高效应用。基准评测法通过构建特定的评测数据集和相应评测指标高效地评测模型,是目前使用最多的一种大模型评测方法。然而,目前大多数评测基准主要针对通用领域,针对医学领域的评测基准极少。在少数医学评测基准中,也存在维度单一、评测指标不足等问题。例如,香港中文大学(深圳) 和深圳市大数据研究院推出的 CMB 评估基准,专门针对中文医学领域,仅包含选择题和临床诊断两种任务[3],并采用准确率作为主要评测指标,无法全面评测大语言模型在医学临床应用中的性能。因此,需要补充更多的医学应用任务场景。

本文针对医学领域大语言模型评测的不足,以大语言模型在医学领域的知识储备和实际应用任务为导向,构建了4个医学评测任务,补充新的大语言模型评测场景,并选取8个中文开源大语言模型进行性能评估。本文旨在扩展医学领域的评测维度,全面分析大模型在医学领域实际应用任务中的性能,探讨中文大语言模型在医学任务中的表现及其优化方向,为医学领域研究者提供模型选择参考,并希望加速大语言模型在医疗领域的广泛应用。

1 评测体系设计

医学知识储备是大语言模型在医学领域应用的基础,而模型的实际应用能力则是评测其性能的重要参考。本文从医学领域知识储备和实际应用能力两个角度出发,设计了 4 个具体的评测任务,并选取了4 个在各大评测榜单上表现突出的中文开源通用大语言模型,以及 4 个中文开源医学大语言模型进行评测。大语言模型评测流程框架如图 1 所示。

1.1 评测模型选取

在初步选取评测模型的阶段,笔者对当前认可度高、模型覆盖度和知识覆盖度广的大模型评测榜单进行了深入研究,包括OpenCompass[4]、C-eval[5]、CMB[3]、CBLUE[6]等。这些榜单只公开测试题目并未公开答案,避免了数据污染等影响模型评测结果的因素,为医学模型的选择提供了可靠的依据。

榜单结果显示,模型参数量对其性能有显著影响,因此需要对模型参数量进行筛选。目前,大多数中文开源模型均有7B参数量左右的版本,这种规模的模型不仅能提供良好的性能,而且对计算资源的要求相对适中,更适合广泛应用。因此,本研究主要选择了参数量在 7B 左右的大模型进行评测。对于没有7B 型号的大模型,笔者选择了参数量最为接近的型号。

本研究共选取了8个模型进行深入分析,分别是:1) 通用大语言模型。阿里云 Qwen2.5-7B-Instruct[7]、百川智能 Baichuan2-7B-Chat[8]、零一万物 Yi1.5-9BChat[9]、智谱清言 Chatglm3-6B[10]。2) 医学大语言模型。哈尔滨工业大学 BenTsao(7B)[11]、哈尔滨工业大学 Huatuo2(7B)[12]、郑州大学 Zhongjing(13B)[13]、大连理工大学信息检索研究室 Taiyi(7B)[14]。

1.2 评测任务构建

为了评估大语言模型在医学领域的性能,本文构建了一个包含4种任务的评测数据集,旨在全面考察模型在医学知识储备和实际医疗场景中的应用能力。这4种任务分别是:1) 单项选择。包含476道题目,主要考察模型的医学知识储备和医学考试能力。题目选自 C-eval[5]、CMB[3]、Cmmlu[15]的医学子集以及临床执业医师考试的真题,以确保数据来源的高可信度。2) 医学问答。包含100例,任务来源于MedDG[16],主要测试模型在模拟医生为患者答疑解惑的医学对话场景中的表现。3) 医疗报告生成。包含100例,任务来源于 IMCS-V2[17]数据集,要求模型根据病人与医生的对话信息,生成符合规定格式的医疗报告。4) 医疗导诊。包含416例,主要考察模型在真实医疗环境中为患者推荐就诊科室的能力。通过在疾病百科上收集各科室疾病与典型症状信息,模拟患者在医院的挂号流程构建了医疗导诊数据集。

为确保数据的科学性和有效性,所有收集到的数据都经历了以下几个阶段:1) 数据清洗。对收集到的初始数据进行去重、去噪和缺失值填充。2) 质量评估。结合ChatGPT-4对评测数据集进行质量评估,过滤低质量数据。3) 专业校对。由专业人员对数据进行校对,保证数据的专业性,同时排除干扰因素。

1.3 评测指标选取

本文参考了自然语言处理领域的多种指标,如Accuracy、Rouge、Bleu、Marco-Recall、chrF 等,选取了与评测任务最契合的指标进行深入分析[18]。经过仔细考虑,最终确定了以下几个评测指标来衡量模型在本文任务中的性能。

1) Accuracy。Accuracy(准确率) 是模型输出答案为正确答案占总量的比例。目前,Accuracy 是大语言模型评测中最常用的一个指标,能够直观地展现模型回答正确的概率。

2) Rouge-L。Rouge[19]是一个广泛用于评估自然语言生成文本质量的指标,特别强调生成内容的覆盖度和准确性。Rouge-L 是 Rouge 指标的一部分,利用最长公共子序列(LCS) 来评估生成文本和参考文本之间的相似度。LCS 是指在不改变各自内部元素顺序的情况下,两个序列共有的最长子序列。这种评测方法不要求连续性,从而更有效地捕捉句子层面的流畅性和结构相似性。

在本研究中,医学问答和医疗报告生成任务主要通过比较模型生成文本与现有参考文本的相似度来评测模型的性能,特别关注生成文本对要点信息的覆盖程度。在这两项任务中,笔者测试了 Bleu、Rouge-L 和 Rouge-N 等指标,最终选择了综合性更强的Rouge-L 作为评测指标。

Rouge-L 的计算基于 LCS 的召回率、精确度以及它们的 F1 分数。Rouge-L 的计算公式如下:

Rlcs = LCS (X,Y )/m (1)

式中:Rlcs 为召回率,LCS(X,Y)为X和Y的最长公共子序列的长度,m 为参考文本的长度。

Plcs = LCS (X,Y ) /n (2)

式中:Plcs为精确度,n为生成文本的长度。

Flcs = (1 + β2 )Rlcs Plcs/Rlcs + β2 Plcs (3)

式中:Flcs 为F1分数,用于综合衡量生成文本与参考文本之间的匹配程度,β为权重因子,用于平衡召回率与精确度的重要性,本文中将β设置为1,这样F1 分数即为召回率和精确度的调和平均数。

3) Macro-Recall。Macro-Recall 是参考OpenCom⁃pass[4]榜单相关任务选择的指标,也是自然语言处理领域常用的一种指标。该指标主要关注生成文本中出现的关键信息,用于评估生成文本包含参考文本中关键信息的程度。Macro-Recall 的计算方式如下:

Recalli = |Ri ∩ Gi|/|Ri| (4)

Recalli为第i 组文本的召回率,Ri为参考文本的词汇集合,Gi为生成文本的词汇集合。

式中:N 为所有文本对的总数。

2 评测结果与分析

在本研究中,所选模型均从官方指定网站下载模型权重,CPU 使用 AMD EPYC 7282 16-Core Proces⁃sor,显卡使用 NVIDIA A100 执行模型的推理工作,显存为82 GB。通过 transformers-4.40.1 调用模型,加速环境版本为 CUDA12.4,语言环境版本为 Python3.10.13,深度学习框架为 PyTorch 2.3.1,NVIDIA 驱动版本为 550.127.05。

针对需要固定格式输出的任务(如医疗报告生成和医疗导诊任务) ,本研究采用few-shot[20] 案例提示来增强模型的指令遵循能力。笔者设计了0-shot、1-shot、3-shot、5-shot 评测实验。经过实验发现,部分开源医疗模型的指令遵循能力效果不佳,增加 few-shot 提示不仅无效,反而会导致推理困难和输出混乱。通用大模型由于其广泛的训练数据和强大的泛化能力,能够通过0-shot至5-shot的多样化示例有效提升任务适应性,因此对其采用了更广泛的few-shot评测。医学大模型通常在特定的医学文本上训练,专业程度较高,但泛化性可能不足,在多示例提示中可能导致性能下降。因此,仅在 0-shot 和 1-shot 情况下对医学大模型进行评测。

实验最终选择对通用大模型采用 0-shot、1-shot、3-shot 和 5-shot 评测,而对医疗大模型仅采用 0-shot 和1-shot 评测。

2.1 单项选择

单项选择是目前大语言模型评测中最常用的一项任务。由于部分模型无法按照预设格式输出,本研究将模型输出中不规范但正确的情况调整为规范格式,以提高评测的准确性。单项选择任务样例如图 2 所示。

在不同模型的表现中,Qwen2.5-7B-Instruct模型能够完全按照指令输出选项,无须后续处理,表现最优。而Baichuan2-7B-Chat、Yi1.5-9B-Chat、Chatglm3-6B、Bentsao、Taiyi、Zhongjing 等模型在输出选项的同时会将选项对应的文本内容一并输出。对于这些模型的结果,需要通过正则表达式以“答案、正确选项、是、应该是”等关键词提取选项,并对提取后的结果进行人工校对。

出现这种现象的原因可能与训练过程中指令微调数据集构建形式上的差异有关,将选项和内容视为一个统一的整体是导致该问题的主要原因。而在医学模型中,Huatuo2表现不佳,部分回答中未提及选项,而是输出了一些针对题目的分析。这表明该模型在理解输入指令方面并不准确稳定,其指令遵循能力仍需进一步提升。

单项选择任务各模型的准确率如图 3 所示。结果表明,通用模型的性能相对优越,其中Qwen2.5-7B-Instruct模型在本任务中准确率最高,而Huatuo2 的准确率相对较低。这主要是因为Huatuo2的指令遵循能力较弱,同时也可能与该模型的发布时间较早有关,导致其学习到的医学知识较为有限。

经典小说推荐

杂志订阅