Powering scientific discovery: BYOKG and GraphRAG for intelligent pharmaceutical research

TL;DR · AI 摘要
Powering scientific discovery: BYOKG and GraphRAG for intelligent pharmaceutical research Artificial Intelligence Poweri...
核心要点
- 主题聚焦:Powering scientific discovery: BYOKG and GraphRA
- 来源:AWS Machine Learning Blog,建议结合原文判断细节。
- AI 分析暂不可用,本条为保底评分与摘要。
推动科学发现:BYOKG与GraphRAG助力智能制药研究 | 人工智能
推动科学发现:BYOKG与GraphRAG助力智能制药研究
在制药研究领域,科学家面临一个根本性挑战:如何获取并整合分散在不同系统中的海量科学知识。从已发表的文献、内部实验记录到基因组数据库,关键洞见往往被困在信息孤岛中,使研究人员难以建立全面关联并提出有价值的假设。这种碎片化状态延缓了药物研发进程,也导致机构知识在研究人员流动时面临流失风险,最终影响行业研发效率。开发能够智能弥合知识鸿沟同时保持科学严谨性的解决方案,已成为当务之急。
挑战:碎片化系统中的数据分散
在领先的制药企业中,研究人员在早期药物发现阶段面临关键挑战:传统方法的成功率仅为5%,初步筛选耗时超过六个月。科学家需要在PubMed、实验记录和基因组数据库等碎片化系统中挖掘洞察,同时还要与竞争对手和时间赛跑。数据的分散性导致重复劳动和机会流失,也使监管审批所需的证据链难以追溯。当研究人员离职时,往往带走宝贵的经验知识,进一步破坏突破性发现所需的机构记忆。
早期药物发现的挑战:
- 成功率低且时间效率差 – 每次尝试需要超过6个月的筛选时间,成功率仅为5%。
- 知识系统碎片化 – 关键洞察分散在PubMed、实验记录和数据库中,导致关联缺失。
- 机构记忆流失 – 研究人员离职时,宝贵知识消失,破坏研究连续性。
这些挑战共同构成了药物研发流程中的重大瓶颈,导致效率低下、错失良机,并可能延迟救命疗法的开发。我们的解决方案突破传统方法:基于图计算的人工智能构建互联知识环境,助力制药研究。通过Amazon Neptune Analytics,研究人员现在可以用自然语言提出复杂问题,并即时获得基于统一知识图谱的证据支持洞察,该图谱连接了从化合物相互作用到基因表达和临床研究的各类信息。这种方法不仅提供答案,还通过展示详细引用路径和图谱遍历步骤,揭示每个结果背后的完整推理过程。通过展现系统如何在互联的论文和数据点中导航,使科学发现更加透明和可复现。
通过结合图数据库与生成式AI,研究科学家不仅能检索信息,更能增强推理能力、保存机构记忆,并挖掘原本可能被埋没的洞见。这种技术还能帮助他们生成更高质量的假设,提升研究效率,并增强对输出结果的信任,因为每个洞见都附带上下文和证据。在延迟成本以金钱和生命共同衡量的领域,这种转变不仅具有帮助性,更彻底改变了科研工作的开展方式。
在本文中,我们将探讨基于图的检索增强生成(GraphRAG)如何通过结合图数据库与生成式AI,正在重塑科学研究。借助这一方法,您可以在不牺牲科研严谨性的前提下加速发现过程。
通过整合Amazon Neptune Analytics的高性能图处理能力与Amazon Bedrock,研究人员可以构建复杂系统,不仅能够理解复杂的科学关系,还能提供直观的自然语言交互界面。GraphRAG架构通过智能遍历知识图谱识别相关信息路径,从而提升AI生成响应的质量。这确保了所有响应都基于经过验证的科学数据。
该方案对科研的强大价值在于其理解并连接实体间复杂关系的能力,从植物和化合物到蛋白质、基因及其相关健康影响。凭借这种全面的理解,研究人员能够更高效地发现洞见,并以更高的信心做出数据驱动的决策。
解决方案概述
该方案通过增强GraphRAG能力的自带知识图谱(BYOKG)方法,重新构想了科研流程。知识图谱是信息的结构化表示,以互联节点和边的网络形式展示不同实体间的关系。依托Amazon Neptune,它将多样化的科学实体(植物、化合物、基因、蛋白质和健康影响)整合为统一的知识网络,连接来自PubMed和Gene Ontology等公共数据源与专有数据集的信息。自动化数据摄取管道和图算法持续丰富知识图谱,帮助研究人员揭示此前隐藏在孤立数据孤岛中的复杂生物关系和洞见。
借助Neptune Analytics和Amazon Bedrock,该方案将图算法与自然语言查询结合,使科学探索既具备分析性又直观易用。研究人员可以用日常英语提出复杂问题,并获得基于图遍历的证据支持答案,答案包含来源引用和可视化路径。交互式可视化工具进一步提升透明度和理解度,使用户能够探索关系、追溯假设至结论,并通过清晰可验证的证据验证结果。这加速了发现过程,并在各领域强化了科研严谨性。
解决方案架构
我们的解决方案帮助研究人员快速发现跨疾病和主题的相关医学期刊文章。数据集包含通过CC BY和CC0许可证授权的PMC开放获取子集提供的HCLS期刊文章、通过Bio.Entrez包由美国国家生物技术信息中心(NCBI)提供的期刊元数据、疾病本体层次结构以及通过Amazon Comprehend Medical中的ICD-10-CM链接API提取的ICD10代码。尽管最终数据集已提供给您,但以下架构展示了创建数据集所使用的流程。
以下图表说明了如何使用Amazon Bedrock和Amazon Comprehend等服务将数据加载到Amazon Neptune Analytics,以从医学期刊中提取数据。
下图展示了最终的图结构,包含以下节点类型:
- disease:表示疾病本体中的疾病。疾病本体提供映射关系,帮助我们理解哪些疾病是其他疾病的子类。
- author:表示某篇期刊文章的作者。
- journal:表示期刊。
- journalChunk:表示给定期刊的一个片段。通过Amazon Bedrock知识库提供的默认分块策略确定了这些片段。
- icd10:表示ICD-10代码,这是医疗问题的标准化分类。通过Amazon Comprehend Medical ICD-10-CM链接功能在icd10节点与journal和journalChunk节点之间创建了边。
由于我们使用了自定义的图数据模型,因此使用BYOKG-RAG工具包在图上实现自然语言查询。以下图表展示了BYOKG的组件。
先决条件
开始之前,请确保满足以下先决条件:
- 安装并配置了AWS命令行界面(AWS CLI)2.11.0或更高版本(安装指南)
- 可访问以下AWS服务:Amazon Neptune Analytics、Amazon Bedrock(Claude 4.5 Sonnet模型)、Amazon SageMaker、Amazon Simple Storage Service(Amazon S3)、Amazon Comprehend Medical
- 具有以下权限的IAM角色:NeptuneAnalyticsFullAccess、AWSServiceRoleForAmazonNeptuneAnalytics、AmazonS3ReadOnlyAccess、AmazonBedrockFullAccess、ComprehendMedicalFullAccess
- Python 3.9或更高版本
- graphrag_toolkit 1.0.0或更高版本
- Jupyter Notebook环境
解决方案成本概览
运行此演示的每小时成本估算:
- Neptune Analytics图,16 mNCU,无待机,公共连接 – 0.48美元/小时。
- SageMaker Jupyter笔记本,t3.medium配5GB EBS卷 – 计算费用0.05美元/小时,存储费用0.70美元/小时。
- S3存储,标准,161 MB – 0.161 GB × 0.023美元 = 每月0.0037美元。
- Amazon Bedrock – Amazon Bedrock的成本取决于模型使用情况和令牌消耗量。有关最新信息,请参阅定价页面。
设置Neptune Analytics
让我们通过设置Neptune Analytics开始实现您的GraphRAG解决方案。以下步骤将指导您完成数据导入、图创建和笔记本配置,以构建知识图谱基础:
- 创建S3存储桶:aws s3 mb s3://amzn-s3-bucket-name
- 使用AWS CLI将数据集复制到自己的存储桶中:aws s3 sync s3://aws-neptune-customer-samples-us-east-1/sample-notebooks/vector-graph-hybrid-search/graph-data/ s3://amzn-s3-bucket-name/<YOUR PREFIX>
- 使用 CreateGraphUsingImportTask API 创建 Neptune Analytics 图,从第一步复制到的 Amazon S3 位置导入数据。有关具体操作方法,请参阅 Neptune Analytics 用户指南。将预置内存的最小值和最大值设置为 16。
- 在图创建过程中,创建与该图关联的 Neptune Notebook。Notebook 可以简化对图的查询和交互操作,并设置和运行 GraphRAG 工具包。有关如何创建 Neptune Notebook 的详细信息,请参阅 Neptune Analytics 用户指南。
- 下载示例 Notebook,并将其上传到您的 Jupyter 环境中。
实施步骤:使用 GraphRAG 工具包和 Amazon Bedrock 构建模块化 GraphRAG 系统
在此 Notebook 中,我们演示了如何使用 graphrag-toolkit Python 包和 Amazon Bedrock Anthropic Claude 4.5 Sonnet 模型,在医疗保健知识图谱上构建模块化的检索增强生成(RAG)系统。该解决方案支持在知识图谱中进行自然语言查询和实体链接,结合高级语言模型生成和结构化图数据检索。
关键组件
- 语言模型初始化 我们首先初始化基于 Amazon Bedrock 的语言模型生成器,用于生成自然语言响应。
from graphrag_toolkit.byokg_rag.llm import BedrockGenerator
def init_llm_generator(model_name='us.anthropic.claude-3-5-sonnet-20240620-v1:0', region_name='us-west-2'):
return BedrockGenerator(
model_name=model_name,
region_name=region_name
)
llm_generator = init_llm_generator()- 知识图谱链接器设置 通过传递图存储和语言模型生成器来初始化 KGLinker。它作为查询图并生成答案的核心接口。
from graphrag_toolkit.byokg_rag.graph_connectors import KGLinker
def init_kg_linker(graph_store, llm_generator):
return KGLinker(graph_store=graph_store, llm_generator=llm_generator)
kg_linker = init_kg_linker(graph_store, llm_generator)- 从查询生成响应 使用 kg_linker,我们可以提出自然语言问题,并通过知识图谱上下文增强生成响应。
def generate_kg_response(kg_linker, question, schema, graph_context="Not provided. Use the above schema to understand the graph."):
return kg_linker.generate_response(
question=question,
schema=schema,
graph_context=graph_context
)
# 示例用法
response = generate_kg_response(kg_linker, question, schema)
print(response)- 用于增强检索的实体链接 为了提高信息提取效果并将自然语言文本链接到图实体,我们使用模糊字符串索引与 EntityLinker 结合。
from graphrag_toolkit.byokg_rag.indexing import FuzzyStringIndex
from graphrag_toolkit.byokg_rag.graph_retrievers import EntityLinker
def init_and_link_entities(graph_store, artifacts):
string_index = FuzzyStringIndex()
string_index.add(graph_store.nodes())
retriever = string_index.as_entity_matcher()
entity_linker = EntityLinker(retriever=retriever)
linked_entities = entity_linker.link(artifacts["entity-extraction"], return_dict=False)
linked_answers = entity_linker.link(artifacts["draft-answer-generation"], return_dict=False)
return entity_linker, linked_entities, linked_answersentity_linker, linked_entities, linked_answers = init_and_link_entities(graph_store, artifacts)总结
这种模块化结构清晰地将以下组件分离:
- 大型语言模型(LLM)初始化(使用 Amazon Bedrock)。
- 知识图谱接口(KGLinker)。
- 自然语言处理(自然语言查询)。
- 图节点上的实体链接。
模块化结构允许灵活的实验和针对不同领域或数据集的直接扩展。
模糊字符串匹配器的集成促进了鲁棒的实体识别,这对于嘈杂或复杂的医疗保健数据环境非常重要。
通过将 Amazon Bedrock 高级语言模型与结构化图查询和链接相结合,该解决方案为基于上下文的问答和知识图谱上的信息检索提供了强大的基础。
解决方案优势与性能指标
我们实现的解决方案的关键性能指标展示了 GraphRAG 解决方案如何为制药研究组织创造可衡量的价值和竞争优势:
- 研究时间线加速 – GraphRAG 将研究周期从六个月缩短至三周,效率提升 87%。这支持快速假设测试和更快的科学突破。
- 成功率优化 – 在我们的实现中,GraphRAG 将研究周期从六个月缩短至三周。该解决方案由高级图算法驱动。跨领域分析促进了更有效的研究方向和最优资源部署。
- 工作流程效率提升 – 关键指标显示我们的测试中可衡量的改进:审查时间减少 70%,数据访问速度提升 85%,知识使用效率提高 90%。团队可以专注于战略研究重点。
- 数据驱动验证 – 高级跟踪和可视化促进了完整的研究透明度。清晰的数据路径加强了监管合规性并改善了科学沟通。
- 智能知识整合 – 系统高效扩展并整合新数据源,对资源影响最小。增强的协作保留了关键的机构知识。
- 行业领导力赋能 – 加速的创新周期在加快行业进入的同时保持科学严谨性。这有助于创造可持续的竞争优势和行业领导地位。
清理
为了避免产生额外费用,请清理本文中创建的资源。
- 按照以下步骤删除 Neptune Analytics 图表,或运行以下 CLI 命令。注意:将 g-sample 替换为您创建的图表。
aws neptune-graph delete-graph --graph-id g-sample - 在 AWS 管理控制台中删除创建的图表笔记本,方法是选择实例,选择操作菜单,然后选择删除选项。
- 按照以下步骤删除创建的 S3 存储桶,或运行 CLI 命令。注意:将 amzn-s3-bucket-name 替换为您创建的存储桶名称。
aws s3 rb s3://amzn-s3-bucket-name --force
结论
将 GraphRAG 技术与 Amazon Neptune Analytics 和 Amazon Bedrock 相结合,标志着科研方法论的重大进步。研究人员现在可以连接此前孤立的数据源,通过自然语言查询与复杂数据集进行交互,并可视化复杂的关系网络。该方案可为科研机构带来立竿见影的可衡量价值,将研究周期时间缩短高达 87%,并使发现成功率提升五倍。它不仅加速了发现进程,还有助于提升科研成果的质量和可信度。该方案支持快速推进科学发现,可能实现传统研究时间框架内难以企及的成果。采用生成式 AI 方案的机构不仅在优化研究流程,更将自身置于科学创新的前沿,以更高的速度和精度应对当今最复杂的挑战。
关于作者
'"`