ChatGPT的爆火博取了亿万人的眼球,作为医疗&自然语言处理(NLP)的从业者,感慨大型语言模型(LLM)发展让很多我们原本不敢想的事,竟然被一种简洁的方式来完成了。
对于亿万网友来讲,ChatGPT是一个无所不能的对话机器人,可以回答问题,可以写文章、改bug。对于NLP从业者,看到的更多是LLM对海量互联网信息的解析、总结、归纳,看到的是一种以千亿参数规模存在的新的知识存储形式,看到的是概率计算之外逐渐显现的模型推理能力,在用户交互层面,输出结果上也可以按照用户预期中的格式进行展现。
模型能力和应用效果的提升,极大的震撼和改变了NLP领域。而这一切是如何实现的呢?在医疗领域应用会有哪些优势和难点呢?我们先不妨从左手医生打造AI Doctor说起。
左医AI Doctor技术演进
在2016年左手医生从知识图谱切入医疗AI领域。最 初希望打造一款程序来解决患者医疗健康的各类询问,不同于搜索引擎,我们认为患者由于自身的医疗知识匮乏,较难准确、完善地描述其病情,因此我们最终选择打造一个对话机器人(Chatbot)来解决这个问题。当时,医疗bot的行业前辈主要为Babylon Health和Ada Health。
在后续的3年时间里,左手医生陆续打造了CDSS、分诊、预问诊、智能问药、智能自诊、用药管家等医疗AI服务模块,驱动这些模块能够完成目标任务的的是两个更底层的智能引擎,即:结构化引擎和知识图谱推理引擎。
结构化引擎是一类文本处理技术,它的目的是将纯文本(病历、医学书籍、医患对话等)转化为以实体、属性为主体的结构化信息。这一技术在医学知识图谱构建,对话机器人语义解析环节扮演着十分关键的角色。因为只有通过结构化引擎,才能将“连续”的文本进行“结构化”,进而借助知识图谱来处理这些结构化数据,得到最终的输出。
知识图谱可以简单理解为结构化知识的集合。当我们想完成一个医疗任务时,我们把图谱和医学逻辑相结合,模拟医生的沟通交互、临床决策等能力从而完成相应任务。
知识图谱在构建医疗AI应用的过程中处于核心的地位,知识图谱的范围、质量、颗粒度直接决定了AI应用的场景、交互形式以及最终的应用效果。
左手医生基于实体识别、关系抽取、事件抽取等自然语言处理技术,构建了国内*的多源多层次高质量的医学知识图谱,融合静态知识与临床专家经验,覆盖诊断、症状、药品、影像检查、实验室检查、病史、人群、科室、医院、医生等十余类实体的,广泛支撑患者侧和医生侧全流程医疗AI应用。这也奠定了左手医生早期的医疗AI应用基础。
知识图谱具体怎么用呢?以症状自查为例,左手医生在知识图谱中将围绕症状的标准问诊逻辑、疾病画像关联起来。在AI问诊中,不仅遵循了医生常用的标准问诊流程,而且基于疾病知识图谱可以实时对患者病情进行推理分析,动态计算患者的潜在疾病,针对性围绕目标疾病进行发问,从而减少了传统机械化的问卷式问诊,提升患者的交互体验。
随着左手医生各类医疗AI产品的持续应用落地,我们收到了更多一线临床专家的真实反馈,从而支持我们更好的迭代优化底层的知识图谱;与此同时,我们也在持续扩充医学重点细分领域的知识图谱,包括甲状腺血清检测、免疫不良反应、化疗方案不良反应以及肿瘤营养等领域的知识,在广度与深度上,持续巩固左手医生医学知识图谱在国内*的地位。
尽管客户对于左手医生医疗AI产品交互与决策效果高度认可,但我们仍然听到了一些改进的建议,例如医疗AI技能相对独立(比如分诊与诊断无法同时完成);患者的口语化表达、不规范医学用语对于自然语言理解(NLU)的巨大挑战;对话交互流程严谨规范但可能过长,导致用户完成的依从性不够高;专业的医学术语给患者带来更高的理解成本。而这些问题恰恰也是基于传统任务型对话pipeline框架的短板,NLP领域的基础工作仍然十分有挑战。
2019/2020年随着大规模预训练模型的横空出世和飞速发展,一系列NLP任务的新范式使得对话交互技术进入快速迭代优化的新周期,我们敏锐地注意到了LLM模型的巨大潜力,并认为使用LLM可能是打造智能医生更好的思路。
LLM的应用思路是:任何NLP任务(分类、抽取、摘要、翻译等)都可以统一为生成任务,也就是以语言模型预测后续token的思路来完成。而相对来说海量的文本训练数据以及自监督学习的方式可以很好的支撑大型语言模型的预训练过程,而NLP工程师的日常工作内容也逐渐转变为以下两类:
● 基于领域任务对预训练模型的微调(finetune);
● 通过提示学习的zero-shot learning或few-shot learning,将下游任务直接转换成语言模型的输入形式;
2020年,基于OpenAI GPT模型,左手医生打造了AI Doctor 2.0版本,相较于传统的任务型对话框架,这一版本具有一些明显的优势:
● 生成的框架更好的融合对话交互各环节(NLU, 对话管理,回复生成等),联合优化,解决单独模块相对独立的问题。
● 模型参数规模的不断扩大,可以更好存储和表达对话上下文。以自然语言形式存在的对话上下文也更好地解决NLU结构化解析能力的不足,使得Chatbot可以更好把握用户真实需求和病情的细节信息,更加贴近患者的个性化诉求。
● 直接以自然语言表述回复患者,使得患者获得更加真实的医患对话体验,提升交互依从性。
在打造AI Doctor 2.0时候(以下我们称呼AID),我们发现通过提示学习的思路,LLM模型不仅在对话交互方面表现出优异的能力,同时也具有优秀的推理决策能力,AID在常见病的科室分诊、诊断建议、药品推荐、检查检验推荐及患教建议等环节,性能与有监督学习训练的模型差距并不明显,这也表明在医疗领域大模型可以是一种新型的知识载体,不同于知识图谱显式的存储实体关系、属性等信息,领域知识以海量参数的形式被存储起来,而工程师需要做的是找到稳定的性能更优的提示,将大模型的领域知识和推理能力激发出来。
大模型的性能高度依赖于训练数据的规模与质量,由于医疗数据尤其是优质的专家问诊数据的稀缺性,因此我们在2020年开始布局听译机器人,这是一款放置于诊室桌面的智能硬件产品,它可以实时识别、记录医患问诊内容。向医生进行问诊内容提示、患教知识推荐。解放医生双手,让医生不再边问诊边书写编辑病历,专注于患者诊疗本身。对于AID而言,听译机器人就是最 好的训练数据来源,可以直接学习优质且真实的医患对话。这类数据在形式上与AI医生更加贴合,而且没有经过人工修改与总结,信息丰富程度较高。
随着产品在客户应用场景的落地,AID无法判断给出的回复和答案的质量好坏这一问题,成了亟需解决的关键环节。采样生成的方式提供了多样性的同时,也使得模型输出的质量参差不齐,预训练+提示学习的大模型并没有能力进行很好的判别。而2022年出现的InstructGPT/ChatGPT则将改进思路和想像空间彻底打开。
指令学习的灵活应用,基于领域专家反馈的强化学习框架(RLHF),更丰富的训练数据类型使得InstructGPT/ChatGPT的应用效果取得了真正的代际性突破。
基于ChatGPT指导思想,AID进入效果优化的新阶段,同时我们也开始将大模型用于更多医疗AI产品和服务。比如,我们将大模型用于结构化技术。利用prompt技术,通过极少量的标注即可从无结构化文本中抽取我们想要的细粒度结构化数据。
LLM在医疗行业的应用
看到LLM如此出色的表现,那么不禁去思考,在医疗上LLM/ChatGPT具体都能做什么呢?
先从医疗侧入手,我们先看医疗对AI(NLP)技术的需求,归纳一下,可以分为两类:
1、重复性劳动(效率提升),如数据处理、文书撰写,文档质控,患教随访等等;
2、适当场景提醒(能力提升),如辅助诊断、风险评估等等;
在医生侧,AI技术可以将医生从大量重复性劳动中解放出来,让医生有更多时间来完成高质量高价值的医疗决策,同时AI医生可以在适当的诊疗节点,给予医生更新更细粒度的医学知识支持,提升决策质量。
LLM在医疗中完成较好的任务
1、文书工作
虽然目前的LLM还不具备在底层逻辑上对于医疗知识的理解,但已经可以针对性的完成医疗文本的处理任务,对于医疗文书的有约束性归纳总结,而且海量的训练数据规模,以及逐渐显现的泛化/推理能力,使得即使在面对从未见过的文本数据,大模型依然有相当出色的处理效果。这就使得在医生输入特定信息的简要说明、需详细说明的概念和要解释的医嘱后,可以节约大量花在医疗文档书写的时间。
2、信息抽取类
更大规模的LLM模型在表达字、词和句子间的语义关系方面的能力得到了显著的提升,所以对于实体识别、关系抽取、事件抽取这类传统NLP任务有较高的准确度,可以很好的完成医疗文本结构化等任务,从而支撑科研数据构建、结构化搜索、医疗文书质控、DRG控费、医疗数据统计分析等应用场景。
左医的听译机器人早期版本,还是借助pattern & 知识图谱matching等技术,从医患对话中提取有效字段。借助LLM及prompt,不仅有效的针对已知schema提升抽取质量,同时,只要标注少量的案例,也可以达到对新增schema带来经验的抽取效果。
3、医疗Bot及患者服务
在人机沟通上,一方面LLM更长的序列长度可以容纳更多的对话上下文,另一方面借助真实优质的医患对话及患者反馈,也可以打造既能符合医疗习惯,又能理解患者通俗语言的拟人化医疗Chatbot。
在患者服务层面,借助LLM对海量文献的归纳总结,无需再针对性构建患教知识库,即可针对患者的提问给出合理的解答,在此过程中,根据患者的反馈行为持续增强学习。
LLM在医疗中现阶段较难完成的任务
在生成任务上,LLM擅长对现有知识的归纳总结,但是当要解决的问题所依赖的数据存在缺失、低质量甚至误导信息时,它就会变得一本正经的胡说八道。
而在医疗领域,这一问题会成为应用落地的瓶颈,特别是在医疗的专科专病细分领域,获取高质且大量的医疗数据无疑是非常困难:
1、辅助诊断及治疗建议
网友测试ChatGPT也可以发现,ChatGPT可以针对一些常见病的病情给出诊断及用药方案。其原理,也是LLM在阅读大量网络文章时,基于文章中的上下文构建出诊断&治疗建议的关联关系。但在实际场景中,患者病情的复杂程度以及不同患者之间细微的差异,对于现阶段LLM的推理能力都是非常大的挑战。
2、风险评估
时间序列数据的缺失,以及风险因素来源与多篇研究文档,现有的LLM去跨多文档理解可能需要更深度的训练和更大的参数。
3、健康干预
健康干预是一系列应用模块组合而成,需要及时获取患者当前状态,借助风险评估,给出患者药物、饮食、运动等指导。对于LLM这种生成模型来讲,如果表达患者完整的病情信息,以及根据患者的病情变化实时给出有效的干预方案依然困难。
左医在怎么做
AI技术在医疗领域的成功,依然取决于几个关键因素:优质医疗数据的获取、数据的可用性和处理逻辑,以及企业对于AI技术在医疗领域应用局限性的认知深度等方面。为了提高AI在医疗领域的应用效果,医疗数据的高质量清洗,医疗领域任务/指令的设计,更多贴近真实场景的医疗任务的学习,RLHF的机制探索,从而让AI模型学习到更高质量的数据,并通过评估和迭代不断提升性能。
左手医生团队在研发层面已经融合OpenAI等厂商的成熟训练思路、结合左医医学知识图谱以及我们在医疗领域多年积累的数据、行业理解,快速验证大模型对于AI医生能力的跃迁性提升,以及更多医疗场景的多任务统一学习。
在应用落地层面,上线两年期间, 基于大模型的AID产品已经服务了复旦中山医院、优加健康、蛮牛健康、金蝶医疗、宾理汽车、达闼机器人、360搜索等数十家互联网医疗和智能硬件企业,获得了合作伙伴的认可,并在实际使用中持续学习和进化。
在优质数据积累层面,听译机器人通过硬件设备的升级,算法模型优化及产品功能迭代,产品效果有了明显提升,已经服务了北京协和医院,温州康宁医院,中国医科大学附属第 一医院等医疗机构,优质专家数据与知识在持续积累当中,医疗领域的优质数据飞轮逐步形成中。
从相信而看见到看见而相信
我们坚定地相信,在未来的时间里,大模型会大大地提升AI医生的应用效果,进一步拓展AI在医疗领域的应用场景和想像空间。
大模型对于医疗NLP即是挑战同时也带来巨大的机遇,左手医生将继续秉持"打造主动式AI,让优质医疗触手可及"的使命,引领医疗认知识智能创新与变革的新浪潮,为医疗健康行业提供更好的产品与服务。