AI News HubLIVE
站内改写3 分钟阅读

使用 Amazon Bedrock AgentCore 构建蛋白质研究助手

本文展示了如何构建一个对话式蛋白质研究助手,它结合了自然语言查询解析、蛋白质嵌入向量相似度搜索和AI生成的科学摘要,帮助研究人员高效地在大数据集中搜索结构相似的肽段。

来源AWS Machine Learning Blog作者: Yuan Tian

蛋白质研究人员面临一个耗时的挑战:手动搜索数千条肽序列以寻找结构相似的候选物既慢又容易出错,并且需要深厚的领域知识来解释结果。构建一个蛋白质研究助手可以改变研究人员在大数据集中搜索结构相似肽的方式——在一个对话界面中实现自然语言查询、自动嵌入生成和AI驱动的结果摘要。

本文介绍如何使用 Amazon Bedrock AgentCore 构建一个对话式蛋白质研究助手,该助手结合了三种能力:

  • 自然语言查询解析,提取结构化搜索参数。
  • 使用专用语言模型对蛋白质嵌入进行向量相似度搜索。
  • AI生成的科学摘要。

该系统使用 Strands Agents SDK 协调一个代理内的三个专用工具,部署到 Amazon Bedrock AgentCore 用于生产服务,并将肽嵌入存储在带有 pgvector 的 Amazon Aurora PostgreSQL-Compatible Edition 中。

前提条件

要跟随本文操作,您需要:

  • 一个 AWS 账户,具备 Amazon Bedrock 基础模型(Anthropic Claude Sonnet 4.6)的访问权限。
  • Python 3.12 或更高版本。
  • 配置了适当凭证的 AWS CLI。
  • Amazon Bedrock、Amazon SageMaker AI、Amazon Aurora、Amazon ECS 和 AWS CodeBuild 的 IAM 权限。
  • 安装 bedrock-agentcore-starter-toolkit(pip install bedrock-agentcore-starter-toolkit)。
  • IEDB 病毒表位数据集。

预计部署时间:30-45分钟;请查看 AWS 定价页面了解 Bedrock、SageMaker AI、Aurora Serverless v2 和 AWS Fargate 的成本估算。

解决方案概览

该助手采用工具使用模式,一个 Strands 代理协调三个专用工具来处理完整的研究工作流。当研究人员提交自然语言查询时,代理将其解析为结构化参数,使用蛋白质嵌入搜索相似肽,并以科学背景总结结果。

架构包含五个组件:

  1. Streamlit 前端:运行在 AWS Fargate 上,提供对话界面,将查询发送到 AgentCore 运行时,并以结构化格式显示结果(含可下载表格)。
  2. Strands 代理:运行在单个 Amazon Bedrock AgentCore 运行时中,协调工作流。该代理通过 Bedrock Converse API 使用 Anthropic Claude Sonnet 4.6,并通过 @tool 装饰器访问三个工具。
  3. 解析器工具:使用专门的 Strands 代理(LLM作为解析器模式)从自然语言查询中提取结构化搜索参数——序列、物种过滤器、结果数量限制。
  4. 搜索器工具:通过运行 ESM-C 300M 的 Amazon SageMaker AI serverless 端点生成蛋白质嵌入,然后对带有 pgvector 的 Amazon Aurora PostgreSQL 进行余弦相似度搜索。
  5. 摘要器工具:使用另一个专门的 Strands 代理分析搜索结果,生成简洁的科学摘要和进一步研究的建议。

这种单一运行时、多工具设计保持了部署的简单性,同时保持了明确的关注点分离。每个工具封装一个独特的能力,编排代理根据用户查询决定何时以及如何调用它们。

蛋白质嵌入与 ESM-C 300M

相似度搜索的核心是 ESM-C 300M,一个来自 EvolutionaryScale 的蛋白质语言模型,它生成 960 维嵌入,捕捉氨基酸序列的结构和功能特性。具有相似生物学功能的两个肽会在向量空间中产生接近的嵌入,从而无需序列比对即可进行相似度搜索。

ESM-C 300M 作为 Amazon SageMaker AI serverless 端点部署,空闲时缩放到零,在调用之间不产生成本。模型权重捆绑到部署工件中,以避免在推理时从 HuggingFace 下载——这对于冷启动延迟至关重要的 serverless 端点来说很关键。

推理处理程序直接构建模型架构并加载预打包的权重。预测函数接受蛋白质序列,编码它,并返回平均池化的嵌入。端点使用 6144 MB 内存和最大并发数 5 的 serverless 配置部署,使用 PyTorch 2.6.0 CPU 推理容器。

使用 Aurora PostgreSQL 和 pgvector 进行向量搜索

肽嵌入存储在 Amazon Aurora PostgreSQL-Compatible Edition Serverless v2 中,带有 pgvector 扩展。数据库模式简单:一个 peptides 表,包含 id、sequence、embedding(960维向量)、properties(JSONB)和 created_at 字段。在 embedding 列上创建 ivfflat 索引以加速余弦相似度搜索。

properties JSONB 列存储生物元数据——物种、源生物、源分子、表位位置——从而支持向量和元数据过滤的组合。数据加载管道从 IEDB 病毒表位数据集读取,通过 SageMaker AI 端点为每个肽序列生成嵌入,并使用 Amazon RDS Data API 插入数据库。

数据库访问通过 Amazon RDS Data API 进行,这意味着代理运行时不需要与数据库的直接网络连接——它通过 HTTPS 通信,简化了 AgentCore 部署的网络要求。

使用 Strands Agents SDK 构建代理

Strands Agents SDK 提供了构建工具使用代理的简洁抽象。每个工具都是一个用 @tool 装饰的 Python 函数,代理自动从函数的文档字符串和类型提示中生成 LLM 的工具描述。

工具定义如下:

  • 解析器工具:代理一个专门的 Strands 代理作为结构化输出提取器。
  • 搜索器工具:结合 SageMaker AI 嵌入生成和 pgvector 相似度搜索。
  • 摘要器工具:使用另一个专门的 Strands 代理进行科学分析。

编排代理接收用户查询并决定调用哪些工具以及顺序。对于每个用户查询,工作流是:首先调用 parse_peptide_query 提取序列和参数,然后调用 search_similar_peptides 进行搜索,最后调用 summarize_results 生成摘要。

部署步骤

部署涉及使用 AWS CDK 或 CloudFormation 模板设置基础架构,包括 VPC、数据库、SageMaker 端点和 ECS 服务。本文提供了逐步说明,但建议查看完整博客文章以获取详细部署指南。

最终,您将构建一个端到端的代理应用程序,演示如何解析自然语言、部署自定义 ML 模型、结合向量搜索和元数据过滤,以及编排多个专用工具。