在这篇博客中,我们将重点介绍ZS Associates如何利用多个AWS服务构建一个高可扩展性和高性能的临床文档搜索平台。该平台是一个先进的信息检索系统,旨在帮助医疗专业人员和研究人员高效地导航庞大的医疗文档、医学文献、研究文章、临床指南、方案文件、活动日志等内容。其目标是通过结合各种类型的临床文档查询,快速准确地定位特定信息,以支持临床决策、研究和其他医疗相关活动。
ZS是一家专注于转变全球医疗的管理咨询和科技公司。我们利用前沿分析、数据和科学帮助客户做出智能决策。我们的客户涵盖制药、医疗、科技、金融和消费品等多个行业。我们在亚马逊网络服务上为客户开发并托管多种应用程序,同时也是AWS的高级咨询合作伙伴及亚马逊Redshift服务交付合作伙伴。在本案例中,ZS在集成证据与策略规划IESP方面处于全球领先地位,提供一整套服务,帮助制药公司交付全面且差异化的新药证据包。
ZS在其多种产品、客户解决方案和服务中使用了多项AWS服务。亚马逊Neptune和OpenSearch服务构成了其数据和分析流水线的一部分,而AWS Batch则被用于长期数据和机器学习ML处理任务。
临床数据的高度关联性使得ZS选用了Neptune,这是一种为云环境构建的高性能全托管图数据库服务,以捕捉与数据相关的本体论和分类法,从而构成支撑知识图谱的基础。我们为搜索需求使用了OpenSearch服务,它是一个开源的分布式搜索和分析套件。
临床文档包括各种数字记录,例如:
研究协议证据差距临床活动出版物在全球生物制药公司中,有多个人物角色负责新药的证据生成。这些证据支持支付方、健康技术评估HTA、医生和患者在治疗决策时的选择。证据生成面临诸多知识管理挑战。在一项制药资产的生命周期内,会完成数百项研究和分析,保持所有证据的良好记录变得困难,尤其是在应对来自外部医疗利益相关者如支付方、提供者、医生和患者的询问时。此外,与证据生成活动如健康经济学和结果研究HEOR、真实世界证据RWE、合作研究和研究者倡导的研究ISR相关的信息几乎都不存在于结构化数据中;而证据活动的丰富性通常存在于研究方案研究设计和研究报告结果中。对此讽刺的是,哪些专注于知识生成的团队在知识管理上却面临挑战。
ZS通过应用大型语言模型LLMs和生成性人工智能AI为证据生成带来了新的价值,提升了对证据协议的高级语义搜索能力。现在,证据生成负责人医学事务、HEOR和RWE能够进行自然语言对话,并考虑结构化数据和来自非结构化源的研究详情,返回高相关性的证据活动列表。
该解决方案分层设计。文档处理层负责文档摄取和编排,而语义搜索平台应用层支持后端搜索和用户界面。多个不同类型的数据源,包括媒体、文档和外部分类法,被确定为在语义搜索平台内捕获和处理的相关内容。
所有组件和子层使用亚马逊托管Apache Airflow工作流进行编排。Airflow中的管道会根据工作负载自动扩展。可以广泛地将层级分为如下所示的部分:
数据抓取在数据抓取层,文档从指定的SharePoint位置中获取,并存入指定的亚马逊简单存储服务Amazon S3桶。这些文档可能以多种格式存在,例如PDF、Microsoft Word和Excel,并通过特定格式的适配器进行处理。
数据摄取数据摄取层是提议框架的第一步。在这一阶段,来自多种来源的数据平稳地进入系统的高级处理设置。在管道中,数据摄取过程按照精心构建的步骤顺序进行。这些步骤包括每次运行管道时创建唯一的运行ID、在版本控制表中管理自然语言处理NLP模型版本、识别文档格式,以及通过服务健康检查确保NLP模型服务的正常运行。该过程接着将数据从输入层转移到着陆层,创建动态批次,并在整个运行过程中持续跟踪文档处理状态。如发生任何问题,容错机制会使得过程暂停,从而顺利过渡到框架的NLP阶段。数据库摄取报告层处理特征提取层的JSON数据,并将其转换为CSV文件。每个CSV文件包含从文档特定部分提取的相关信息。随后,管道使用来自这些CSV文件的数据生成一个三元组文件,其中每组实体表示在主题谓词对象格式中的关系。该三元组文件用于摄取到Neptune和OpenSearch服务中。在完整的文档嵌入模块中,文档内容被分割成块,然后使用LLMs如llama2和BGE进行嵌入转换。这些嵌入以及文档ID和页码等元数据存储在OpenSearch服务中。我们使用各种分块策略来增强文本理解。语义分块将文本分成句子,分组为集合,并基于嵌入将相似内容合并。
代理分块则利用LLMs来确定基于上下文的分块大小,专注于基于命题的划分和简化复杂句子。此外,上下文和文档感知分块根据内容特性适应分块逻辑,以实现更有效的处理。
自然语言处理NLPNLP层在提取文档中特定部分或实体方面起着至关重要的作用。特征提取阶段首先在文档中进行本地化,识别出文档内部的各个部分,以缩小后续实体提取的搜索空间。使用LLMs对提取的文本进行总结,增加该过程的效率。在本地化之后,特征提取步骤使用各种程序从识别的部分提取特征。这些程序根据相关性进行优先级排序,使用模型如Llama27b、mistral7b、Flant5xl及FlanT5xxl来提取文档文本中的重要特征和实体。
自动映射阶段通过将提取的特征与本体中存在的标准术语进行匹配以保证一致性。这是通过与OpenSearch服务索引中存储的嵌入匹配提取的特征来实现的。最后,在文档布局凝聚步骤中,自动映射阶段的输出进行调整,以在文档层面上聚合实体,从而提供文档内容的凝聚表示。
该层使用Neptune作为图数据库,OpenSearch服务作为向量引擎。
亚马逊OpenSearch服务OpenSearch服务兼具全文搜索和基于嵌入的语义搜索功能。OpenSearch服务向量引擎的能力支持使用LLMs的检索增强生成RAG工作流。这有助于在检索到与输入查询相关的文档后提供搜索的摘要输出。嵌入索引的方法采用了FAISS。
OpenSearch服务域详情:
OpenSearch服务版本:29节点数:1实例类型:r6g2xlargesearch卷大小:Gp3 500GB可用区数量:1专用主节点:启用可用区数量:3主节点数量:3主节点实例类型:r6glargesearch为确定最近邻,我们使用了分层可导航小世界HNSW算法。我们使用FAISS近似kNN库进行索引和搜索,并通过欧几里得距离L2范数计算两个向量之间的距离。
亚马逊NeptuneNeptune通过与OpenSearch服务的集成支持全文搜索FTS。AWS为启用FTS建立了一种本地流式服务,该服务用于从Neptune复制数据到OpenSearch服务。根据搜索的业务用例,定义了图模型。考虑到图模型,ZS领域团队的主题专家策划了自定义分类法,捕捉与临床数据相关的类和子类的层次关系。同时,确定了部分开源分类法和本体,将其整合入知识图谱中。我们识别出需要从临床文档中提取的部分和实体。ZS开发的非结构化文档处理管道并行处理文档,为Neptune摄取填充RDF格式的三元组。
这些三元组的创建方式使得语义上相似的概念相互关联,从而构建搜索的语义层。在创建三元组文件后,它们被存储在S3桶中。使用Neptune批量加载程序,我们能够将数百万个三元组加载到图数据库中。
Neptune同时摄取结构化和非结构化数据,简化了跨不同源和格式检索内容的过程。在这一阶段,我们能够发现结构化和非结构化数据之间以前未知的关系,并将其提供给搜索平台。我们使用SPARQL查询联邦从Neptune图数据库中返回来自丰富知识图谱的结果,并与OpenSearch服务进行集成。
Neptune能够自动扩展存储和计算资源,以适应不断增长的数据集和并发API调用。目前,该应用程序维持着每天约3000个活跃用户,同时也观察到约3050名用户在应用环境中同时发起查询。Neptune图容纳大约487万条三元组。由于每日和每周的摄取管道程序,三元组的数量还在不断增加。
Neptune配置:
实例类型:dbr5d4xlarge引擎版本:1201大型语言模型LLMs大型语言模型LLMs如Llama2、Mistral和Zephyr被用于提取文档中的部分和实体。Flant5等模型也用于提取程序中使用的其他相似实体。这些被选定的部分和实体对特定领域的搜索至关重要,因此在用于搜索的学习排序算法中优先级较高。
蓝快加速器电脑版此外,LLMs还被用于生成顶级搜索结果的综合摘要。
LLMs托管在亚马逊弹性Kubernetes服务Amazon EKS中,使用启用GPU的节点组以确保快速推断处理。我们为不同的使用案例使用了不同的模型。例如,为生成嵌入,我们部署了BGE基础模型,同时Mistral、Llama2、Zephyr等则用于提取特定医学实体、执行部分提取和总结搜索结果。通过为不同任务选择不同的LLMs,我们旨在在狭窄领域内提高准确性,从而提升系统的整体相关性。
微调已经经过微调的专注于制药行业文档的模型被使用。使用的模型包括:
PharMolix/BioMedGPTLM7B在医疗上微调的LLAMA2emilyalsentzer/BioClinicalBERTstanfordcrfm/BioMedLMmicrosoft/biogpt重新排序、排序和过滤阶段从用户输入查询中删除停用词和特殊字符,以确保清晰的查询。在预处理查询后,通过形成多种ngrams的搜索术语组合来创造组合。这一步骤丰富了搜索范围,提高了找到相关结果的机会。例如,如果输入查询是“机器学习算法”,生成的ngrams可能是“机器学习”、“学习算法”和“机器学习算法”。同时运行搜索术语使用API访问Neptune图和OpenSearch服务索引。这种混合方法拓宽了搜索覆盖,充分利用了两个数据源的优势。根据领域的具体要求,对从数据源获得的每个结果分配特定的权重。此权重反映了结果在搜索查询和关联领域中的相关性与重要性。例如,当查询与图相关概念直接相关时,来自Neptune图的结果可能被赋予更高的权重,而来自OpenSearch服务的结果则可能在与基于文本的信息更紧密结合时获得更多权重。两个数据源中都出现的文档将优先级最高,因为它们可能提供全面的见解。其次是 exclusively sourced from Neptune graph的文档,随后是OpenSearch服务的文档。这种层次结构确保最相关和全面的结果首先展示。纳入这些考虑因素后,为每个结果计算最终分数。根据最终分数对结果进行排序,确保最相关的信息排在前n个结果中。
最终用户界面
从不同系统中聚合的证据目录提供了一个全面的已完成、正在进行和计划的证据生成活动的存储库。随着证据负责人制定前瞻性计划,现有的内部证据库便于决策参考。
以下视频演示了证据目录的功能:
完成后,解决方案为客户提供了以下好处:
在多个数据源结构化和非结构化文档上的搜索使复杂的隐藏关系和洞察一览无遗。临床文档通常包含结构化与非结构化数据的混合。Neptune可以以图形格式存储结构化信息,而向量数据库则可以利用嵌入处理非结构化数据。这种集成为查询和分析多样的临床信息提供了全面的方法。通过构建使用Neptune的知识图谱,临床数据得以丰富额外的上下文信息,包括疾病、治疗、药物和患者记录之间的关系,从而提供对医疗数据的更全面的视角。搜索应用程序帮助客户保持对最新研究、临床进展和竞争态势的了解。这样,客户能够及时决策,识别市场趋势,并根据对行业的全面理解帮助产品定位。该应用程序有助于监控不良事件,跟踪安全信号,确保药物相关信息的易获取性和易理解性,从而支持药物警戒工作。目前,该搜索应用程序在生产环境中运行,活跃用户达到3000人。以下成功标准用于评估该解决方案:
快速、高准确率的搜索结果:前三项搜索结果的准确率为99,用户的整体延迟小于3秒。识别和提取协议的特定部分:识别的部分精度为098,召回率为087。基于简单人类语言的准确和相关的搜索结果,能够解答用户的问题。清晰的用户界面及明确指示对齐文档协议、临床研究报告和出版物中匹配的文本提取部分。了解哪些证据已完成或正在进行,减少新提议的证据活动中的冗余。在开发和部署这一解决方案的过程中,我们遇到了两个主要挑战。
需要对非结构化文档进行完整嵌入,OpenSearch服务通过正确的配置帮助实现了这一目标。这涉及部署具有主节点的OpenSearch服务,并为嵌入和存储非结构化文档嵌入分配足够的存储容量。我们在OpenSearch服务中存储了高达100GB的嵌入内容。
01-27
通过使用 Amazon DataZone 中的细粒度访问控制来增强数据安全性 大数据博客
提升数据安全性:在 Amazon DataZone 中实施细粒度访问控制关键要点细粒度访问控制是提升现代数据湖和数据仓库数据安全的重要举措。今天,Amazon DataZone 提供了数据资产的细粒度...
01-27
来自 AWS reInvent CFM 展台的热门话题 云财务管理
AWS reInvent 2022 CFM 话题综述关键要点全球云计算社区在 AWS reInvent 2022 上汇聚,共享知识与灵感。我们的云财务管理CFM专家与来自世界各地的客户和从业者进行了交...
01-27
德勤回应勒索软件索赔,称涉及一个客户系统 媒体
德勤回应网络勒索攻击的声明关键要点德勤UK表示其系统未受影响,仅有一名客户的系统被涉及。勒索软件组织Brain Cipher声称已盗取超过1TB的压缩数据,并威胁在12月15日泄露。Brain Cip...
01-27
实施 NIST SP 800
NIST SP 80053 Rev 5 合规与报告策略实施关键要点本文介绍如何利用 AWS 工具实施合规和报告策略,确保遵循 NIST SP 80053 Rev 5 标准。通过搭建检测、预防、主动、响...