View a markdown version of this page

ヘルスケア向けの生成 AI ソリューションの開発とオーケストレーション - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ヘルスケア向けの生成 AI ソリューションの開発とオーケストレーション

このガイドのソリューションを構築するには、微調整された LLMs を使用して拡張された患者データ、臨床および診断のインサイト、予測される患者結果を医療プロバイダーに提供する RAG アーキテクチャを構築する必要があります。これには、まとまりのある効率的なワークフローを作成するために、複数の ツールと AWS のサービス ツールの統合が必要です。このセクションでは、以下について説明します。

  • Amazon Q Developer – Amazon Q Developer を使用して、開発プロセス中のエンジニアリングに関する質問やコードエラーに対処します。

  • マルチリトリーバー RAG 設計 – 複数のリトリーバーを使用してユーザーの質問に適した医療コンテキストを取得する RAG ソリューションを設計および実装します。

  • ReAct エージェント – 推論と動的アクションを組み合わせたエージェントを実装します。

Amazon Q Developer

生成 AI ソリューションを構築する場合、AI エージェントと接続キーサービスを作成するのは難しい場合があります。ただし、Amazon Q Developer は、高度な生成 AI アシスタントへのアクセスを提供することで、データサイエンティストや AI エンジニアを支援します。Amazon Q は、ユーザーの質問やコードエラーに迅速かつ正確に対処できるため、LLM 開発プロセスの最適化に役立ちます。Amazon Q は、Amazon Bedrock 基盤モデルを使用するアプリケーションを作成するデベロッパーに大きな利点を提供します。ワークフローを合理化し、コード品質を向上させることができます。Python スクリプトとInfrastructure as Code (IaC) 設定の生成を自動化し、開発時間と労力を大幅に削減します。高度なリファクタリング機能を通じて、Amazon Q はコードのパフォーマンスを向上させ、セキュリティの脆弱性を特定し、開発者がベストプラクティスを確実に遵守できるようにします。さらに、コンテキスト対応の提案や説明を提供することで、初心者の学習と導入を容易にし、複雑なコーディングタスクをよりアクセスしやすく効率的にします。

マルチリトリーバー RAG 設計

生成 AI アプリケーションでは、マルチリトリーバー RAG パイプラインが複数のデータソースから情報を効率的に取得できるため、医療提供者や臨床医が医療上の質問に答えるのに役立ちます。このパイプラインでは、さまざまなタイプのリトリーバーを使用して、さまざまなナレッジベースから関連データを取得します。各リトリーバーは、患者の履歴、診断インサイト、臨床ノート、医学研究や学術テキストからのコンテンツなど、特定のタイプの情報の取得に特化しています。

データの性質と特定のアプリケーション要件を使用して、ユースケースに適したバックエンドナレッジベースを決定します。Amazon OpenSearch Service ベクトルデータベースは、診断評価の概要、退床の概要、臨床レポート、医学研究、学術テキストコンテンツなど、大量の非構造化または半構造化医療データに適しています。一方、Amazon Neptune などのグラフデータベースサービスは、患者、患者の履歴、医療提供者、医薬品、症状、治療などのエンティティ間の時間的関係を深く探索する必要がある医療ユースケースに最適です。

このパイプラインの重要なコンポーネントは、ユーザークエリインテント予測です。これにより、システムはクエリを正しいリトリーバーチェーンにルーティングします。例えば、臨床医が患者の治療履歴、症状、病院とのやり取り、再入院の可能性、または潜在的な患者の結果について質問した場合、クエリインテント予測モジュールはこのインテントを識別します。医療知識グラフから患者レコードまたは時系列処理データを取得できるリトリーバーチェーンにリクエストを送信します。または、疾患検出、特定の診断評価、または学術教科書からの特定の臨床手順の詳細に関する質問がある場合、クエリは OpenSearch Service ベクトルデータベースからこの情報を取得できるリトリーバーチェーンにルーティングされます。のツール呼び出し機能を使用してLangChain、ユーザー質問を事前定義されたインテントに分類できる Amazon Bedrock LLM にカスタムツールをバインドできます。

このマルチトリーバー RAG システムには、特定のナレッジベースへのアクセスを管理するように設計されたLangChainエージェントが含まれています。LangChain を使用して、Amazon Bedrock LLM、さまざまなリトリーバー、ツール間のインタラクションをオーケストレーションできます。 LangChainには、インテント分類子、Neptune のリトリーバー、OpenSearch Service のリトリーバー、または特定のナレッジベースから構造化された形式でユーザーのインテントを分類してデータにアクセスするために開発できるその他のツールなどのカスタムツールを作成するのに役立つツール呼び出しクラスが含まれています。次に、これらのツールを クラスにフィードして、Reasoning and Acting (ReAct) エージェントを作成します。ReAct エージェントはユーザーの質問を処理し、質問に回答するためのシーケンシャルステップを計画し、利用可能なツールを繰り返し実行してツールレスポンスを処理し、最後にユーザークエリに回答します。

次の図は、効率的なナレッジの取得とインテリジェントなクエリ解決のために設計されたマルチリトリーバー RAG システムの仕組みを示しています。LangChain ReAct エージェントは、ユーザーのインテントを分析し、実行のための構造化計画を策定し、最も関連性の高い取得ツールを選択します。システムは以前の質問キャッシュをクエリし、患者 ID、病状、訪問日などの主要な属性に基づいて同様のクエリをチェックします。非常に類似した質問が見つかった場合、対応する回答が直接取得されます。それ以外の場合、エージェントは適切なリトリーバーを実行します。治療履歴、症状、病院とのやり取り、再入院の可能性など、患者中心の情報を取得するために、システムはグラフリトリーバーを使用します。診断評価、臨床手順、構造化された医学的検出結果のために、エージェントはベクトルデータベースリトリーバーを使用します。両方のデータストアからのコンテキストナレッジの組み合わせを必要とするシナリオでは、包括的なレスポンスを生成するために、システムはナレッジグラフとベクトルデータベースの両方の結果を統合するハイブリッド取得戦略を使用します。

複数のLangChainリトリーバーを使用して取得拡張生成を実行するアーキテクチャ。

ReAct エージェント

Reasoning and Acting (ReAct) エージェントは、多面的な RAG アプリケーション向けに設計されています。これらのエージェントは、推論と動的アクションの強力な組み合わせを提供します。特に、step-by-stepの論理情報取得ワークフローを含む複雑なアプリケーションに適しています。詳細については、ReAct: Synergizing Reasoning and Acting in Language Models」を参照してください。

医療および医療のコンテキストでは、臨床医または臨床医からのクエリは多面的であることがよくあります。例えば、臨床医が「同様の患者に対してどのような治療が行われたか」と「2 型の糖尿病」と尋ねるとします。ユーザーインテントを特定した後、AI エージェントはこのクエリをサブタスクに分割し、最も効率的な取り出し戦略を選択する必要があります。この場合、AI エージェントは最も関連性の高いノード (患者の年齢、性別、状態、治療、薬剤など) を特定し、これらのエンティティとその属性と関係についてグラフをクエリする必要があります。ReAct エージェントは、LLM の推論 (論理推論) 機能とアクション (外部リソースまたはナレッジベースへのクエリまたは操作) を組み合わせるため、非常に役立ちます。

ユーザークエリ「類似する患者に対してどのような処理が行われたか」に回答するために、次の例は ReAct エージェントの仕組みを示しています。

  1. エージェントの推論 - ReAct エージェントは、質問には条件 (ダイアログと高機能化) に関する情報の取得が含まれると推測します。患者の年齢、治療、薬剤、分析する期間を考慮します。

  2. エージェントアクション – エージェントは openCypher を使用して、タイプ 2 の糖尿病と糖尿病に固有の処理についてナレッジグラフをクエリします。また、同様の患者 (性別と年齢が同じ患者など) に対して、管理される薬剤、診察日、薬剤の副作用、既知の患者の結果、および相互参照データも取得します。

  3. エージェントの観察 – エージェントは、ナレッジグラフから、「糖尿病」と「2 型」の両方を持つ患者に行われた治療に関する最新の 6 か月分の表形式データを取得します。

  4. エージェントの推論 – 取得されたレコードの結果をランク付けするために、エージェントは、緊急性、薬剤の副作用、既知の患者の結果などの重要な属性を識別します。

  5. エージェントアクション – エージェントは、システムプロンプトを介して付与される識別された属性と事前定義されたロジックに基づいてレコードを再ランク付けします。

  6. レスポンスの生成 – Amazon Bedrock の LLM は、ReAct エージェントが準備したコンテキストに基づいてレスポンスを生成します。