面向中文电子病历的医疗问答系统的研究与设计

作者: 盛静雯 史东辉

面向中文电子病历的医疗问答系统的研究与设计0

摘要:随着人们对医疗服务需求的日益增长,医疗行业正面临人力资源短缺和资源分布不均的双重挑战。为应对此挑战,该研究设计了一种面向中文电子病历的医疗问答系统。研究利用自然语言处理(NLP) 技术构建中文电子病历知识图谱,并结合大语言模型整合医学知识,以支持疾病推理和医疗决策。系统通过深度学习解析用户问题的语义,从知识图谱中检索信息,并结合经过前缀微调和高级检索增强生成技术(Advanced RAG) 优化的大模型辅助生成答复,从而实现更精准、高效的医疗辅助服务。

关键词: 医疗问答;医疗知识图谱;大语言模型;前缀微调;Advanced RAG

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

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

0 引言

当前,AI 技术迅猛发展,医疗行业也逐步迈向信息化。面对服务需求增长以及人力不足、资源分布不均的挑战,迫切需要开发智能医疗问答系统。医疗智能问答系统不仅能够减轻医护人员的工作压力,提高医疗服务的效率和质量,还能跨越地理限制,为不同地区的用户提供即时的医疗咨询服务。通过智能化手段,该系统优化了医疗资源配置,推动了医疗信息化和人工智能技术的发展,从而实现医疗服务的均衡发展和全民健康覆盖。

本设计旨在通过自然语言处理技术构建中文电子病历知识图谱,并结合大语言模型整合医学知识,以支持疾病推理和医疗决策,为医生提供直观的医疗决策支持。系统能够根据患者的症状信息,自动推荐可能的疾病诊断结果和相应的检查项目,从而提高诊断的准确性和效率。患者和医生可以通过系统进行交互,询问关于疾病的症状、治疗方法、药物用法用量等问题,系统能够迅速给出准确的答案,提供便捷、高效的医疗咨询服务。

1 相关工作

电子病历系统是现代医疗信息化的基石,通过加速服务流程、辅助决策、支持研究与教育、保障患者安全以及优化资源分配等方面,显著提升了医疗服务的效率和质量。起源于美国的电子病历系统[1],现已在全球范围内推广应用。中国的电子病历系统[2]自2010 年起在政策推动下取得了显著进展。这些系统的发展为智能问答系统提供了丰富的数据基础,使得依托自然语言处理和深度学习技术分析医疗文本并提供高效信息服务成为可能。

问答系统作为人工智能领域的关键组成部分,其主要任务是准确解析、处理并回应用户以自然语言提出的问题。谷歌公司提出的基于知识图谱的问答系统[3],利用知识图谱的强大能力,为问答系统的研究与应用开辟了新的方向。此外,洪海蓝等[4]开发了基于多模态知识图谱的中药智能问答系统,拓展了问答系统的应用,并为知识服务工具提供了新的范例。

知识图谱由谷歌公司于 2012 年提出,其理论基础根植于数学图论,旨在通过图形结构表示知识并描绘实体间的相互关系。张吉祥等人[5]研究了知识图谱构建的关键技术,包括抽取、融合和推理,并分析了深度学习在该领域的应用挑战。Lin 等[6]使用知识图谱和图演化元学习框架快速推理新疾病症状,实现了通过少量对话进行疾病诊断的目标。

近年来,大型语言模型(LLMs) 的研究与开发已成为自然语言处理领域的显著趋势。OpenAI 的 GPT 系列[7]、Google 的 BERT[8]和 T5 等模型不断刷新自然语言处理任务的性能记录[9]。然而,尽管医学领域对知识问答系统的需求日益增长,目前尚未出现专门针对该领域的大型语言模型。

2 理论基础及相关技术

2.1 自然语言处理

自然语言处理(NLP) 是一门促进人机通过自然语言进行有效交流的交叉学科,目前在人工智能医学领域备受关注。NLP 主要包括自然语言理解和自然语言生成两部分,前者使计算机能够理解文本的含义,后者则允许计算机用自然语言表达特定意图。其基本原理涉及语言学、计算机科学和统计学,在具体实现过程中需要进行多层次处理,包括语言模型的构建、词向量表示、语义分析以及深度学习技术的应用。

NLP 在智能医疗问答系统中发挥着核心作用。在本研究中,NLP 通过信息抽取、命名实体识别、问答系统开发、文本理解、语义搜索、诊断辅助和实体对齐等关键功能,使系统能够理解和处理复杂的医疗文本,提供准确的医疗咨询和决策支持,从而提高医疗服务的效率和质量,推动医疗信息化的发展。

2.2 ChatGLM3-6B

ChatGLM3 由智谱 AI 与清华大学 KEG 实验室联合开发,标志着第三代对话预训练模型的重大进步。该系列中的 ChatGLM3-6B 模型不仅继承了前代产品的高效对话能力和低部署难度,还引入了显著的技术革新。

ChatGLM3-6B 的特点包括:大规模预训练赋予其广博的知识和深刻的语言理解能力;上下文感知能力使其能够根据对话历史提供更精准的回答;多领域知识覆盖,使其能够解答涉及编程、科技、文化、历史等问题;以及支持交互式对话,能够与用户进行深入的交流和探讨。这些特性共同提升了 ChatGLM3-6B 在自然语言处理领域的应用潜力。

ChatGLM3-6B 采用了全新设计的 Prompt 格式,除了支持正常的多轮对话外,还原生支持工具调用(Function Call) 、代码执行(Code Interpreter) 和 Agent 任务等复杂场景。这些功能对于构建一个能够执行多任务的智能医疗问答系统至关重要。

当前,众多杰出的预训练大型语言模型已经问世,如 ChatGPT-3.5、LLaMA 2、T5 和 ChatGLM 等,具体如表 1 所示。

表 1中的参数量,即模型中可训练参数的总数,涵盖了神经网络中的权重与偏置,是衡量模型规模和复杂性的关键指标。它不仅反映了模型的大小,也是评估其容量和性能的重要依据。一般来说,参数量越大的模型,其表示能力越强,能够更精确地捕捉输入数据的复杂特征和结构。然而,这也意味着模型需要更多的计算资源和存储空间,因此在模型性能与资源效率之间需要做出权衡。

最大支持 token 数指的是大型语言模型能够处理的 token 上限。如果输入文本超出这一限制,可能会导致上下文信息的丢失,从而影响模型回答的相关性和准确性。因此,了解和控制模型的最大 token 数对于确保模型输出质量至关重要。

综合考虑 SuperCLUE 针对中文通用大模型在知识百科、上下文对话等多种能力上的排名,是否开源可商用,模型训练与部署所需的人力和时间成本,以及确保模型的使用符合相关法规和政策要求等因素,最终选择 ChatGLM3-6B 作为基座预训练模型。

2.3 微调技术

大模型微调技术是一种机器学习方法,通过在特定领域的数据集上进一步训练已预训练的大型模型,以优化其在特定任务上的性能。这种方法利用预训练模型的泛化能力,增强其对特定任务的适应性,使其更符合医学领域的需求。

本研究采用前缀微调方法[10],这是一种软提示技术,与提示词微调类似,通过在模型输入的嵌入向量前添加可学习的前缀序列来适应任务。前缀微调进一步将这些可学习序列扩展到所有隐藏层状态的前端(如图 1 所示) ,从而优化模型性能。

然而,直接优化这些前缀序列可能会引起模型训练的不稳定。为了解决这一问题,前缀微调采用了一种方法:通过一个前馈神经网络(FFN) 转换这些前缀序列,然后将转换后的结果附加到嵌入向量或隐藏状态的前端。在模型训练期间,利用梯度下降法在下游任务的数据集上对前缀序列和 FFN 中的参数进行优化。在模型推理阶段,FFN 部分将被移除。

2.4 检索增强生成技术

在检索增强生成(RAG) 框架中,核心流程分为检索和生成两个阶段。检索阶段从外部信息源提取相关信息,生成阶段则利用这些信息生成精准回答。Advanced RAG 在此基础上增加了新模块和范式,集成了重新排序、自动合并和高级过滤等算法,以优化检索和生成流程,提高信息检索效率。

Advanced RAG 通过以下方式提升性能:1) 重新排序算法:优先展示最相关信息; 2) 自动合并功能:整合多数据源信息,提供全面视角;3) 高级过滤技术:排除无关数据,增强结果相关性。

Advanced RAG 能有效处理复杂查询,整合多样化数据资源,构建高度情境感知的 AI 系统,提供快速准确的信息检索服务,并在内容生成中实现高效率和相关性,满足信息质量和响应速度的需求。其运作流程详见图 2。

图2展示了Advanced RAG的信息检索增强和生成过程。用户首先输入查询文本,系统通过预检索阶段对查询进行路由、重写和扩展,随后执行检索操作。检索完成后,系统会对结果进行重排序、总结和融合,以优化输出。在此过程中,系统还会提示冻结大型语言模型,以确保输出的稳定性和一致性。最终,系统生成并输出处理后的结果。该过程旨在提供更准确、全面和个性化的信息检索服务。

3 问答系统架构设计

本设计专注于中文电子病历这一特定领域,将其作为深入研究的对象。研究的核心目标是创新性地结合先进的大语言模型和精准的知识图谱技术,以构建一个高效能的智能医疗问答系统。该系统旨在通过智能化手段提升医疗服务质量,不仅能够为医生和医疗工作者在临床诊疗过程中提供科学的理论支持,还能为患者提供更加人性化的服务。通过该系统,可以确保医疗决策更加准确,患者咨询更加高效,从而在实际医疗服务中发挥关键的技术保障作用,推动医疗服务向智能化、精准化发展。

研究设计的智能问答系统整体架构如图 3 所示:

1) 数据采集与预处理:系统首先进行数据采集,包括电子病历等医疗相关数据。随后,通过数据预处理模块,对原始数据进行清洗、标准化和格式化,以便于后续的分析和处理。

2) 知识获取与构建:系统构建了一个医学知识体系,该体系能够对医疗领域的数据模式进行定义和理解。这一步骤涉及基于深度学习的语义解析和命名实体识别,以确保系统能够准确识别和理解医疗文本中的关键信息。

3) 知识存储:系统使用 Neo4j 图数据库来存储和管理医疗知识图谱,其中节点代表医疗概念,节点之间的关系通过图数据库的边来表示。这种结构化的知识存储方式有助于系统进行高效的信息检索和知识推理。

4) 意图识别与查询语句转换:系统通过意图识别模块理解用户的查询意图,并将其转换为查询语句。

这一过程涉及自然语言处理技术,使系统能够将用户的自然语言输入转换为结构化查询。

5) 自动问答与多轮对话:系统利用大模型和知识图谱实现自动问答功能。它能够与用户进行多轮对话,并通过检索增强技术提供更加精准和个性化的医疗建议。

6) 前端页面展示:最终,系统通过前端页面展示模块,将处理后的信息以用户友好的方式呈现给用户,使用户能够轻松访问和理解医疗问答系统提供的内容。

3.1 医疗知识图谱构建

在医学领域,数据的精确性与可靠性对于维护人类健康和保障生命安全具有至关重要的意义。因此,在医学数据的收集、记录和处理过程中,必须确保数据的准确性、完整性和可靠性,以防止因数据错误导致错误的诊断、治疗或研究结论。

在数据采集阶段,首先对医学问题进行分类,并明确疾病的名称、症状、预防措施、病因以及相应的挂号科室等关键属性。这些属性各自对应特定的关键词,通过这些关键词进行检索,可以有效地收集和丰富数据集的内容。通过这种方法,确保数据采集的针对性和系统性,从而提高医学数据的整体质量和实用性。在数据清洗方面,采用了基于规则的方法来识别和纠正数据中的不一致性和错误。

由图 3 可见,在构建医疗知识图谱的过程中,本研究使用“寻医问药”网站和电子病历等来源的医疗数据作为数据源,以构建提供检索支持的医疗知识图谱。利用网络爬虫技术抓取所需内容,通过人为设定相关规则与网页内容匹配,从而获取所需数据,并存储于本地。

上一篇 点击页面呼出菜单 下一篇