Loading...

评估生成性人工智能技术在临床报告摘要中的应用 机器学习博客



生成式人工智能技术在临床报告摘要中的评估

关键要点

本文探讨了如何使用生成式人工智能AI技术优化医疗领域的临床报告摘要。探讨了深度学习中两种不同的提示设计技术:零样本提示与少样本提示,并结合检索增强生成RAG方法的评估。使用Amazon Bedrock和预训练的语言模型Claude 3 Sonnet进行测试,比较不同方法在MIMICCXR数据集上的表现。RAG方法在摘要质量方面的性能明显优于传统的零样本和少样本提示。

在本系列博客的第一部分,我们讨论了如何利用可在 Amazon SageMaker JumpStart 上获取的大型语言模型LLM进行放射科报告总结生成。自那时起,亚马逊网络服务AWS 引入了新服务,如 Amazon Bedrock,该服务提供来自领先AI公司的高性能基础模型FM,可通过单一API进行访问。

Amazon Bedrock 具备构建生成式AI应用所需的广泛功能,包括安全性、隐私保护及负责任的AI。此服务是无服务器的,因此无需管理基础设施。您可以使用您熟悉的AWS服务安全地集成和部署生成式AI功能。在本博客系列的这一部分中,我们将回顾可以通过 Amazon Bedrock 实现临床报告摘要的提示工程和检索增强生成RAG技术。

当总结医疗文本时,预训练的LLMs并不总能达到最佳性能。尽管LLMs可以处理数学问题和常识推理等复杂任务,但它们并不具备执行特定领域复杂任务的固有能力。为增强其能力,LLMs需要通过适当的引导和优化。通过使用适当的引导提示,提示工程可以有效地设计和改善提示,从而获得更好的结果。本博客将提供两种提示方法:零样本提示和少样本提示的结果比较,并探讨RAG提示工程技术在摘要任务中的实用性。

方案概述

在本篇中,我们将探讨一些提示工程技术,这些技术有助于评估LLMs在医疗特定摘要任务中的能力和局限性。对于复杂的临床知识密集型任务,可以构建基于语言模型的系统,该系统访问外部知识源以完成任务。这将提升生成响应的事实一致性,提高可靠性,并帮助减轻LLMs自信错误的倾向,称为幻觉。

预训练语言模型

本博文采用 Anthropic 的 Claude 3 Sonnet 模型,用于临床摘要任务的评估,重点测试零样本和少样本提示技术。接下来的评估将比较提示工程与RAG模式和微调的表现。

数据集

MIMIC Chest Xray (MIMICCXR) 数据集 v200 是一个大型公共数据集,包含DICOM格式的胸部X光影像及自由文本放射学报告。我们通过数据使用协议访问了MIMIC CXR数据集。此协议需要用户注册和完成认证过程。

在日常临床工作中,经过培训的放射科医生将针对特定研究总结其发现并形成自由文本注释。与这些影像相关的放射学报告已从医院的电子健康记录系统中提取并去识别,以移除任何受保护的健康信息。

我们仅使用了放射学报告文本数据,从MIMICCXR 网站下载了一个压缩报告文件mimiccxrreportszip。为了进行评估,我们使用了2000份报告称为‘dev1’数据集以及2000份放射学报告称为‘dev2’,后者来自印第安纳大学医院网络的胸部X光集合。

技术与实验

提示设计是为LLM创建最有效提示以实现清晰目标的一项技术。成功的提示需要深入理解上下文,精妙地提出正确问题以引出期望答案。不同的LLM可能对同一提示有不同的理解,并且某些模型可能对特定关键词有特定的含义。此外,根据任务的不同,领域特定知识对提示的创建至关重要。找到完美的提示通常需要反复试验。

提示结构

提示可以指定所需的输出格式、提供先前知识或引导LLM进行复杂任务。提示主要有三种内容类型:输入、上下文和示例。输入指示需要生成响应的信息,可以是问题、任务或实体。后两者是提示的可选部分。上下文提供相关背景以确保模型理解任务或查询,例如,在自然语言查询的情况下给出的数据库结构。示例可以是向提示中添加JSON文件的片段,以强迫LLM以特定格式输出响应。这些提示内容组合有助于定制模型的响应格式和行为。

提示模板是生成语言模型提示的预定义结构。不同模板可以用于表达相同概念。因此,精心设计模板以最大化语言模型的能力至关重要。一旦定义了提示模板,模型生成多个可以填充模板的标记。例如,“根据以下发现生成放射学报告印象,并将其输出在 ltimpressiongt 标签内。” 在这种情况下,模型可以用标记填充 ltimpressiongt。

零样本提示

零样本提示意味着在没有任何示例的情况下零向LLM提供提示。该技术使得LLMs能够用于多种任务,即使仅通过单一提示和没有示例,模型也应能生成期望结果。我们利用零样本技术从放射学报告的发现部分生成印象。

在临床场景中,需从临床记录中提取众多医疗概念,而标注数据集则相对较少。因此,实验不同的提示模板来获得更好的结果尤为重要。如下图所示,是本文使用的零样本提示示例。

少样本提示

少样本提示技术被用来提高性能,相比零样本提示更为有效。大型预训练模型在解决大量任务方面表现卓越,只需提供少量示例作为上下文。此过程称为上下文学习,通过提供少量示例,模型在提示时学习任务,而无须调整模型参数。在医疗领域,此方法极具潜力,能够大幅拓展现有AI模型的能力。

少样本提示使用小规模的输入输出示例来训练模型执行特定任务。这一技术的优势在于,无需大量标注数据示例,也能通过提供指导来实现合理的表现。在本研究中,给模型提供了五个发现和印象的示例用于少样本学习,如图2所示。

检索增强生成模式

RAG模式在提示工程的基础上构建。用户提供相关数据时,应用程序拦截用户输入,搜索数据存储库以检索与问题或输入相关的内容。该应用程序将这些相关数据输入到LLM,以生成内容。现代医疗数据策略支持企业数据的策划和索引,可以作为提示或问题的上下文使用,以协助LLM生成响应。

为了实现我们的RAG系统,我们利用一个包含95000对放射学报告发现印象数据集作为知识源。该数据集被上传到 Amazon Simple Service (Amazon S3) 数据源,然后使用Amazon Bedrock 知识库进行提取。我们在Amazon Bedrock上利用Amazon Titan文本嵌入模型生成向量嵌入。

嵌入是现实世界对象的数值表示,机器学习系统用以理解复杂知识领域,如同人类一样。这些输出向量表示被存储在新创建的向量存储中,以便通过Amazon OpenSearch Serverless向量搜索集合进行有效检索。此步骤生成一个公共向量搜索集合和相关字段与必要配置的向量索引。搭建好基础设施后,我们设置一个提示模板,并使用RetrieveandGenerate API进行向量相似度搜索。最终,利用Anthropic Claude 3 Sonnet模型生成印象。这些组件共同实现了从发现到印象数据集的文档检索和高质量的条件文本生成。

下图示意了使用Amazon Bedrock知识库的完全托管RAG模式架构。Amazon Bedrock知识库提供的完全托管RAG将用户查询转换为嵌入,搜索知识库,获取相关结果,增强提示,然后调用LLMClaude 3 Sonnet生成响应。

前提条件

要运行此演示应用程序,需要具备以下条件:

AWS帐户对如何导航Amazon SageMaker Studio的基本理解对如何从GitHub下载repo的基本理解对在终端运行命令的基本知识

实施的关键步骤

以下是各技术的关键细节。

评估生成性人工智能技术在临床报告摘要中的应用 机器学习博客

零样本提示

pythonpromptzeroshot = 人类:根据以下发现生成放射学报告印象,并将其输出在 ltimpressiongt 标签内。发现:{} 助手:

少样本提示

pythonexamplesstring = for ex in examples examplesstring = f人类{ex[findings]} 助手{ex[impression]}npromptfewshot = 人类:根据以下发现生成放射学报告印象。发现:{} 以下是一些示例: examplesstring 助手:

检索增强生成的实现

通过连接到S3存储桶数据源将报告加载到Amazon Bedrock知识库中。知识库将根据所选策略将报告拆分为更小的块,生成嵌入并存储在相关的向量存储中。有关详细步骤,请参见Amazon Bedrock用户指南。一旦知识库正常运行,找到知识库ID并生成Claude 3 Sonnet模型的Amazon资源编号ARN,使用以下代码:

pythonkbid = XXXXXXXXXX #将其替换为您的知识库IDmodelid = anthropicclaude3sonnet20240229v10modelarn = farnawsbedrock{regionid}foundationmodel/{modelid}

使用最新版本的AWS SDK for Python (Boto3)设置Amazon Bedrock运行时客户端。

pythonbedrockconfig = Config(connecttimeout=120 readtimeout=120 retries={maxattempts 0})bedrockclient = boto3client(bedrockruntime)bedrockagentclient = boto3client(bedrockagentruntime config=bedrockconfig)boto3session = boto3sessionSession()regionname = boto3sessionregionname

使用RetrieveAndGenerate API从知识库中检索最相关的报告并生成印象。

pythonreturn bedrockagentclientretrieveandgenerate( input={ text input } retrieveAndGenerateConfiguration={ knowledgeBaseConfiguration { generationConfiguration { promptTemplate { textPromptTemplate promptTemplate } } knowledgeBaseId kbId modelArn modelarn retrievalConfiguration { vectorSearchConfiguration { numberOfResults 3 overrideSearchType HYBRID } } } type KNOWLEDGEBASE } )

使用以下提示模板及查询发现和检索结果生成印象,使用Claude 3 Sonnet LLM。

pythonpromptTemplate = f您需要根据以下发现生成放射学报告印象。路径记录下来,但不要返回给定的发现。

发现: query

以下是搜索结果,以编号顺序列出:searchresults

评估

性能分析

零样本、少样本和RAG技术的性能使用ROUGE评分进行评估。有关此评分各种形式定义的更多详细信息,请参阅本系列博客的第一部分。

下表展示了dev1和dev2数据集的评估结果。dev12000份来自MIMIC CXR放射学报告的发现显示,零样本提示的表现最差,RAG方法在报告摘要方面表现最佳。使用RAG技术的性能提升显著,相比于零样本提示方法,ROUGE1和ROUGE2的聚合平均分数分别提高了18和16个百分点。使用少样本提示技术的聚合ROUGE1和ROUGE2分数也有约8个百分点的提升。

模型技术数据集:dev1数据集:dev2ROUGE1ROUGE2Claude 3零样本02420118Claude 3少样本03490204Claude 3RAG04270275

对于dev2,RAG基于技术的ROUGE1和ROUGE2分数相比零样本提示预计改善约23和21个百分点。总体来看,RAG在dev1和dev2数据集上的ROUGELsum分数分别提高了约17和24个百分点。下图展示了RAG技术在dev1和dev2数据集上的ROUGE评分分布。

[![Dev2](https//d2908q01vomqb2cloudfrontnet/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2024

加速器电脑版

安易官网提供卓越的全球连线,轻松实现一键加速体验。作为官方平台,确保高速稳定的网络连接,轻松解决跨区域访问障碍。