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 模型、結合向量搜索和元數據過濾,以及編排多個專用工具。