사용 사례: 증강된 환자 데이터를 사용하여 의료 인텔리전스 애플리케이션 구축 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

사용 사례: 증강된 환자 데이터를 사용하여 의료 인텔리전스 애플리케이션 구축

생성형 AI는 임상 및 관리 기능을 모두 개선하여 환자 치료 및 직원 생산성을 높이는 데 도움이 될 수 있습니다. 소노그램 해석과 같은 AI 기반 이미지 분석은 진단 프로세스를 가속화하고 정확도를 개선합니다. 적시에 의료 개입을 지원하는 중요한 인사이트를 제공할 수 있습니다.

생성형 AI 모델을 지식 그래프와 결합하면 전자 환자 레코드의 시간순 구성을 자동화할 수 있습니다. 이를 통해 의사와 환자의 상호 작용, 증상, 진단, 랩 결과 및 이미지 분석의 실시간 데이터를 통합할 수 있습니다. 이를 통해 의사가 포괄적인 환자 데이터를 확보할 수 있습니다. 이 데이터는 의사가 보다 정확하고 시기적절한 의료 결정을 내리는 데 도움이 되어 환자 결과와 의료 서비스 제공자 생산성을 모두 향상시킵니다.

솔루션 개요

AI는 환자 데이터와 의료 지식을 합성하여 중요한 인사이트를 제공하여 의사와 임상의에게 권한을 부여할 수 있습니다. 이 Retrieval Augmented Generation(RAG) 솔루션은 수백만 개의 임상 상호 작용에서 얻은 포괄적인 환자 데이터 및 지식을 소비하는 의료 인텔리전스 엔진입니다. 생성형 AI의 기능을 활용하여 환자 치료 개선을 위한 증거 기반 인사이트를 생성합니다. 임상 워크플로를 개선하고, 오류를 줄이고, 환자 결과를 개선하도록 설계되었습니다.

솔루션에는 LLMs. 이 기능은 의료 담당자가 유사한 진단 이미지를 수동으로 검색하고 진단 결과를 분석하는 데 소요되는 시간을 줄입니다.

다음 이미지는이 솔루션의 end-to-end-workflow를 보여줍니다. Amazon Neptune, Amazon SageMaker AI, Amazon OpenSearch Service 및 Amazon Bedrock의 파운데이션 모델을 사용합니다. Neptune의 의료 지식 그래프와 상호 작용하는 컨텍스트 검색 에이전트의 경우 Amazon Bedrock 에이전트와 LangChain 에이전트 중에서 선택할 수 있습니다.

AWS 서비스 및 LLM을 사용하여 의료 질문에 대한 답변을 생성합니다.

샘플 의료 질문을 사용한 실험에서 Neptune, OpenSearch 벡터 데이터베이스의 임상 지식 기반 및 Amazon Bedrock LLMs에서 유지 관리하는 지식 그래프를 사용하여 접근 방식으로 생성된 최종 응답은 사실성을 기반으로 하며 거짓 긍정을 줄이고 참 긍정을 부스팅하여 훨씬 더 정확하다는 것을 관찰했습니다. 이 솔루션은 환자의 상태에 대한 증거 기반 인사이트를 생성할 수 있으며 임상 워크플로를 개선하고 오류를 줄이며 환자 결과를 개선하는 것을 목표로 합니다.

이 솔루션 구축은 다음 단계로 구성됩니다.

1단계: 데이터 검색

의료 AI 기반 솔루션 개발을 지원하는 데 사용할 수 있는 오픈 소스 의료 데이터 세트는 많습니다. 이러한 데이터 세트 중 하나는 MIMIC-IV 데이터 세트로, 이는 의료 연구 커뮤니티에서 널리 사용되는 공개적으로 사용 가능한 전자 건강 기록(EHR) 데이터 세트입니다. MIMIC-IV에는 환자 레코드의 자유 텍스트 방출 메모를 포함한 자세한 임상 정보가 포함되어 있습니다. 이러한 레코드를 사용하여 텍스트 요약 및 개체 추출 기술을 실험할 수 있습니다. 이러한 기법은 구조화되지 않은 텍스트에서 의료 정보(예: 환자 증상, 약물 및 처방된 치료)를 추출하는 데 도움이 됩니다.

또한 연구 목적으로 특별히 큐레이션된 식별 정보가 제거된 주석이 달린 환자 퇴원 요약을 제공하는 데이터 세트를 사용할 수도 있습니다. 배출 요약 데이터 세트는 개체 추출을 실험하는 데 도움이 되므로 텍스트에서 주요 의료 개체(예: 상태, 절차 및 약물)를 식별할 수 있습니다.이 가이드2단계: 의료 지식 그래프 작성에서는 MIMIC-IV 및 배출 요약 데이터 세트에서 추출한 구조화된 데이터를 사용하여 의료 지식 그래프를 생성하는 방법을 설명합니다. 이 의료 지식 그래프는 의료 전문가를 위한 고급 쿼리 및 의사 결정 지원 시스템의 백본 역할을 합니다.

텍스트 기반 데이터 세트 외에도 이미지 데이터 세트를 사용할 수 있습니다. 예를 들어, 뼈의 다중 보기 영상 이미지의 포괄적인 데이터베이스인 Musculoskeletal Radiographs(MURA) 데이터 세트입니다. 이러한 이미지 데이터 세트를 사용하여 의료 이미지 디코딩 기술을 통해 진단 평가를 실험합니다. 이러한 디코딩 기법은 musculoskeletal disease, 내화성 질병, 내화성 질병 등의 질병 조기 진단에 매우 중요합니다. 의료 이미지 데이터 세트에서 비전 및 언어 파운데이션 모델을 미세 조정하여 진단 이미지의 이상을 감지할 수 있습니다. 이를 통해 시스템은 임상의에게 빠르고 정확한 진단 인사이트를 제공할 수 있습니다. 이미지 및 텍스트 데이터 세트를 사용하면 텍스트 및 이미지 데이터를 모두 처리하여 환자 관리를 개선할 수 있는 AI 기반 의료 애플리케이션을 생성할 수 있습니다.

2단계: 의료 지식 그래프 작성

방대한 지식 기반을 기반으로 의사 결정 지원 시스템을 구축하려는 의료 조직의 경우 주요 과제는 임상 기록, 의학 저널, 배출 요약 및 기타 데이터 소스에 있는 의료 엔터티를 찾고 추출하는 것입니다. 또한 추출된 엔터티, 속성 및 관계를 효과적으로 사용하려면 이러한 의료 기록에서 시간 관계, 주제 및 확실성 평가를 캡처해야 합니다.

첫 번째 단계는 Amazon Bedrock의 Llama 3와 같은 파운데이션 모델에 대한 몇 번의 샷 프롬프트를 사용하여 비정형 의료 텍스트에서 의료 개념을 추출하는 것입니다. 퓨샷 프롬프트는 유사한 작업을 수행하도록 요청하기 전에 작업과 원하는 출력을 보여주는 몇 가지 예제를 LLM에 제공하는 것입니다. LLM 기반 의료 엔터티 추출기를 사용하여 구조화되지 않은 의료 텍스트를 구문 분석한 다음 의료 지식 엔터티의 구조화된 데이터 표현을 생성할 수 있습니다. 다운스트림 분석 및 자동화를 위해 환자 속성을 저장할 수도 있습니다. 개체 추출 프로세스에는 다음 작업이 포함됩니다.

다음 그림은 엔터티, 속성 및 관계의 유효한 쌍 조합을 생성하기 위한 엔터티 추출 및 스키마 검증 단계를 보여줍니다. Amazon Simple Storage Service(Amazon S3)에 배출 요약 또는 환자 메모와 같은 비정형 데이터를 저장할 수 있습니다. 엔터프라이즈 리소스 계획(ERP) 데이터, 전자 환자 레코드, 랩 정보 시스템과 같은 구조화된 데이터를 Amazon Redshift 및 Amazon DynamoDB에 저장할 수 있습니다. Amazon Bedrock 개체 생성 에이전트를 빌드할 수 있습니다. 이 에이전트는 Amazon SageMaker AI 데이터 추출 파이프라인, Amazon Textract 및 Amazon Comprehend Medical과 같은 서비스를 통합하여 정형 및 비정형 데이터 소스에서 엔터티, 관계 및 속성을 추출할 수 있습니다. 마지막으로 Amazon Bedrock 스키마 검증 에이전트를 사용하여 추출된 엔터티 및 관계가 사전 정의된 그래프 스키마를 준수하는지 확인하고 노드 엣지 연결 및 관련 속성의 무결성을 유지합니다.

개체 추출 및 스키마 검증을 위한 워크플로입니다.

개체, 관계 및 속성을 추출하고 검증한 후 이를 연결하여 subject-object-predicate 트리플릿을 생성할 수 있습니다. 다음 그림과 같이이 데이터를 Amazon Neptune 그래프 데이터베이스에 수집합니다. 그래프 데이터베이스는 데이터 항목 간의 관계를 저장하고 쿼리하도록 최적화되어 있습니다.

엔터티를 속성에 매핑하는 의료 지식 그래프입니다.

이 데이터를 사용하여 포괄적인 지식 그래프를 생성할 수 있습니다. 지식 그래프는 모든 종류의 연결된 정보를 구성하고 쿼리하는 데 도움이 됩니다. 예를 들어 , , HospitalVisit, PastMedicalHistory, 및 메이저 노드가 있는 지식 그래프를 생성할 수 Symptoms Medication MedicalProcedures있습니다Treatment.

다음 표에는 배출 노트에서 추출할 수 있는 엔터티와 해당 속성이 나열되어 있습니다.

개체 속성

Patient

PatientID, Name, Age, Gender, Address, ContactInformation

HospitalVisit

VisitDate, Reason, Notes

HealthcareProvider

ProviderID, Name, Specialty, ContactInformation, Address, AffiliatedInstitution

Symptoms

Description, RiskFactors

Allergies

AllergyType, Duration

Medication

MedicationID, Name, Description, Dosage, SideEffects, Manufacturer

PastMedicalHistory

ContinuingMedicines

MedicalCondition

ConditionName, Severity, TreatmentReceived, DoctorinCharge, HospitalName, MedicinesFollowed

BodyVitals

HeartRate, BloodPressure, RespiratoryRate, BodyTemperature, BMI

LabResult

LabResultID, PatientID, TestName, Result, Date

ClinicalTrial

TrialID, Name, Description, Phase, Status, StartDate, EndDate

GenomicData

GenomicDataID, PatientID, SequenceData, VariantInformation

Treatment

TreatmentID, Name, Description, Type, SideEffects

MedicalProcedure

ProcedureID, Name, Description, Risks, Outcomes

MedicalConcepts

UMLSCodes, MedicalVocabularies

다음 표에는 엔터티가 가질 수 있는 관계와 해당 속성이 나열되어 있습니다. 예를 들어 Patient엔터티는 [UNDERGOES] 관계를 사용하여 HospitalVisit엔터티에 연결할 수 있습니다. 이 관계의 속성은 입니다VisitDate.

주체 엔터티 관계 객체 개체 속성

Patient

[UNDERGOES]

HospitalVisit

VisitDate

HospitalVisit

[VISIT_IN]

HealthcareProvider

ProviderName, Location, ProviderID, VisitDate

HospitalVisit

[OBSERVED_CONDITION]

Symptoms

Severity, CurrentStatus, VisitDate

HospitalVisit

[RECEIVED_TREATMENT]

Treatment

Duration, Dosage, VisitDate

HospitalVisit

[PRESCRIBED]

Medication

Duration, Dosage, Adherence, VisitDate

Patient

[HAS_HISTORY]

PastMedicalHistory

없음

PastMedicalHistory

[HAD_CONDITION]

MedicalCondition

DiagnosisDate, CurrentStatus

HospitalVisit

[PARTICIPATES_IN]

ClinicalTrial

VisitDate, Status, Outcomes

Patient

[HAS_GENOMIC_DATA]

GenomicData

CollectionDate

HospitalVisit

[OBSERVED_ALLERGIES]

Allergies

VisitDate

HospitalVisit

[CONDUCTED_LAB_TEST]

LabResult

VisitDate, AnalysisDate, Interpretation

HospitalVisit

[UNDERGOES]

MedicalProcedure

VisitDate, Outcome

MedicalCondition

[HAS_TAGGED]

MedicalConcepts

없음

LabResult

[HAS_TAGGED]

MedicalConcepts

없음

Treatment

[HAS_TAGGED]

MedicalConcepts

없음

Symptoms

[HAS_TAGGED]

MedicalConcepts

없음

3단계: 의료 지식 그래프를 쿼리하기 위한 컨텍스트 검색 에이전트 구축

의료 그래프 데이터베이스를 빌드한 후 다음 단계는 그래프 상호 작용을 위한 에이전트를 빌드하는 것입니다. 에이전트는 의사 또는 임상의가 입력하는 쿼리에 대해 정확하고 필요한 컨텍스트를 검색합니다. 지식 그래프에서 컨텍스트를 검색하는 이러한 에이전트를 구성하는 몇 가지 옵션이 있습니다.

그래프 상호 작용을 위한 Amazon Bedrock 에이전트

Amazon Bedrock 에이전트는 Amazon Neptune 그래프 데이터베이스와 원활하게 작동합니다. Amazon Bedrock 작업 그룹을 통해 고급 상호 작용을 수행할 수 있습니다. 작업 그룹은 Neptune openCypher 쿼리를 실행하는 AWS Lambda 함수를 호출하여 프로세스를 시작합니다.

지식 그래프를 쿼리하는 경우 직접 쿼리 실행 또는 컨텍스트 임베딩을 사용한 쿼리라는 두 가지 고유한 접근 방식을 사용할 수 있습니다. 이러한 접근 방식은 특정 사용 사례 및 순위 기준에 따라 독립적으로 적용하거나 결합할 수 있습니다. 두 접근 방식을 결합하면 LLM에 보다 포괄적인 컨텍스트를 제공하여 결과를 개선할 수 있습니다. 다음은 두 가지 쿼리 실행 접근 방식입니다.

  • 임베딩 없이 직접 Cypher 쿼리 실행 - Lambda 함수는 임베딩 기반 검색 없이 Neptune에 대해 직접 쿼리를 실행합니다. 다음은이 접근 방식의 예입니다.

    MATCH (p:Patient)-[u:UNDERGOES]->(h:HospitalVisit) WHERE h.Reason = 'Acute Diabetes' AND date(u.VisitDate) > date('2024-01-01') RETURN p.PatientID, p.Name, p.Age, p.Gender, p.Address, p.ContactInformation
  • 임베딩 검색을 사용한 직접 Cypher 쿼리 실행 - Lambda 함수는 임베딩 검색을 사용하여 쿼리 결과를 개선합니다. 이 접근 방식은 데이터의 밀집 벡터 표현인 임베딩을 통합하여 쿼리 실행을 개선합니다. 임베딩은 쿼리에 의미론적 유사성이나 정확한 일치 이상의 광범위한 이해가 필요한 경우에 특히 유용합니다. 사전 훈련된 모델 또는 사용자 지정 훈련된 모델을 사용하여 각 의학적 상태에 대한 임베딩을 생성할 수 있습니다. 다음은이 접근 방식의 예입니다.

    CALL { WITH "Acute Diabetes" AS query_term RETURN search_embedding(query_term) AS similar_reasons } MATCH (p:Patient)-[u:UNDERGOES]->(h:HospitalVisit) WHERE h.Reason IN similar reasons AND date(u.VisitDate) > date('2024-01-01') RETURN p.PatientID, p.Name, p.Age, p.Gender, p.Address, p.ContactInformation

    이 예제에서 search_embedding("Acute Diabetes") 함수는 의미상 "Acute™"에 가까운 조건을 검색합니다. 이렇게 하면 쿼리에서 당뇨병 전증 또는 예측성 신증과 같은 상태가 있는 환자도 찾을 수 있습니다.

다음 이미지는 의료 지식 그래프의 Cypher 쿼리를 수행하기 위해 Amazon Bedrock 에이전트가 Amazon Neptune과 상호 작용하는 방법을 보여줍니다.

Amazon Bedrock 에이전트와 Amazon Neptune의 통합.

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. 사용자가 Amazon Bedrock 에이전트에게 질문을 제출합니다.

  2. Amazon Bedrock 에이전트는 질문 및 입력 필터 변수를 Amazon Bedrock 작업 그룹에 전달합니다. 이러한 작업 그룹에는 Amazon SageMaker AI 텍스트 임베딩 엔드포인트 및 Amazon Neptune 의료 지식 그래프와 상호 작용하는 AWS Lambda 함수가 포함되어 있습니다.

  3. Lambda 함수는 SageMaker AI 텍스트 임베딩 엔드포인트와 통합되어 openCypher 쿼리 내에서 의미 검색을 수행합니다. 기본 LangChain 에이전트를 사용하여 자연어 쿼리를 openCypher 쿼리로 변환합니다.

  4. Lambda 함수는 Neptune 의료 지식 그래프에서 올바른 데이터 세트를 쿼리하고 Neptune 의료 지식 그래프에서 출력을 수신합니다.

  5. Lambda 함수는 Neptune의 결과를 Amazon Bedrock 작업 그룹에 반환합니다.

  6. Amazon Bedrock 작업 그룹은 검색된 컨텍스트를 Amazon Bedrock 에이전트로 전송합니다.

  7. Amazon Bedrock 에이전트는 원래 사용자 쿼리와 지식 그래프에서 검색된 컨텍스트를 사용하여 응답을 생성합니다.

LangChain 그래프 상호 작용을 위한 에이전트

를 NeptuneLangChain과 통합하여 그래프 기반 쿼리 및 검색을 활성화할 수 있습니다. 이 접근 방식은 Neptune의 그래프 데이터베이스 기능을 사용하여 AI 기반 워크플로를 개선할 수 있습니다. 사용자 지정 LangChain리트리버는 중개자 역할을 합니다. Amazon Bedrock의 기본 모델은 직접 Cypher 쿼리와 더 복잡한 그래프 알고리즘을 모두 사용하여 Neptune과 상호 작용할 수 있습니다.

사용자 지정 리트리버를 사용하여 LangChain 에이전트가 Neptune 그래프 알고리즘과 상호 작용하는 방식을 세분화할 수 있습니다. 예를 들어, 특정 패턴 또는 예제를 기반으로 파운데이션 모델의 응답을 조정하는 데 도움이 되는 몇 개의 샷 프롬프트를 사용할 수 있습니다. LLM 식별 필터를 적용하여 컨텍스트를 구체화하고 응답의 정밀도를 개선할 수도 있습니다. 이렇게 하면 복잡한 그래프 데이터와 상호 작용할 때 전체 검색 프로세스의 효율성과 정확도가 향상될 수 있습니다.

다음 이미지는 사용자 지정 LangChain 에이전트가 Amazon Bedrock 파운데이션 모델과 Amazon Neptune 의료 지식 그래프 간의 상호 작용을 오케스트레이션하는 방법을 보여줍니다.

Amazon Neptune과 LangChain 질문 응답 에이전트의 통합.

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. 사용자가 Amazon Bedrock과 LangChain 에이전트에게 질문을 제출합니다.

  2. Amazon Bedrock 파운데이션 모델은 LangChain 에이전트가 제공하는 Neptune 스키마를 사용하여 사용자의 질문에 대한 쿼리를 생성합니다.

  3. LangChain 에이전트는 Amazon Neptune 의료 지식 그래프에 대해 쿼리를 실행합니다.

  4. LangChain 에이전트는 검색된 컨텍스트를 Amazon Bedrock 파운데이션 모델로 보냅니다.

  5. Amazon Bedrock 파운데이션 모델은 검색된 컨텍스트를 사용하여 사용자의 질문에 대한 답변을 생성합니다.

4단계: 설명이 포함된 실시간 데이터의 지식 기반 생성

그런 다음 설명이 포함된 실시간 의사-환자 상호 작용 메모, 진단 이미지 평가 및 랩 분석 보고서의 지식 기반을 생성합니다. 이 지식 기반은 벡터 데이터베이스입니다. 의료 공급자는 인덱싱된 벡터화된 형식으로 설명이 포함된 의료 지식을 저장할 수 있는 벡터 데이터베이스를 사용하여 방대한 리포지토리에서 관련 정보를 효율적으로 쿼리하고 액세스할 수 있습니다. 이러한 벡터화된 표현은 의미상 유사한 데이터를 검색하는 데 도움이 됩니다. 의료 공급자는 임상 기록, 의료 이미지 및 랩 결과를 빠르게 탐색할 수 있습니다. 이를 통해 상황에 맞는 관련 정보에 즉시 액세스할 수 있도록 하여 정보에 입각한 의사 결정을 가속화하고 진단 및 치료 계획의 정확성과 속도를 높일 수 있습니다.

OpenSearch Service 의료 지식 기반 사용

Amazon OpenSearch Service는 대량의 고차원 의료 데이터를 관리할 수 있습니다. 고성능 검색 및 실시간 분석을 용이하게 하는 관리형 서비스입니다. RAG 애플리케이션을 위한 벡터 데이터베이스로 적합합니다. OpenSearch Service는 의료 기록, 연구 문서, 임상 기록과 같은 방대한 양의 비정형 또는 반정형 데이터를 관리하는 백엔드 도구 역할을 합니다. 고급 의미 체계 검색 기능은 상황에 맞는 정보를 검색하는 데 도움이 됩니다. 따라서 임상 의사 결정 지원 시스템, 환자 쿼리 해결 도구, 의료 지식 관리 시스템과 같은 애플리케이션에서 특히 유용합니다. 예를 들어 임상의는 특정 증상 또는 치료 프로토콜과 일치하는 관련 환자 데이터 또는 조사 연구를 빠르게 찾을 수 있습니다. 이를 통해 임상의는 up-to-date의 관련 정보를 바탕으로 결정을 내릴 수 있습니다.

OpenSearch Service는 실시간 데이터 인덱싱 및 쿼리를 확장하고 처리할 수 있습니다. 따라서 정확한 정보에 적시에 액세스하는 것이 중요한 동적 의료 환경에 적합합니다. 또한 의료 이미지 및 의사 메모와 같이 여러 입력이 필요한 검색에 적합한 다중 모달 검색 기능이 있습니다. 의료 애플리케이션용 OpenSearch Service를 구현할 때는 데이터 인덱싱 및 검색을 최적화하기 위해 정확한 필드와 매핑을 정의하는 것이 중요합니다. 필드는 환자 기록, 의료 기록, 진단 코드와 같은 개별 데이터 부분을 나타냅니다. 매핑은 이러한 필드를 저장(임베딩 양식 또는 원본 양식)하고 쿼리하는 방법을 정의합니다. 의료 애플리케이션의 경우 정형 데이터(예: 수치적 테스트 결과), 반정형 데이터(예: 환자 메모), 비정형 데이터(예: 의료 이미지) 등 다양한 데이터 유형을 수용하는 매핑을 설정하는 것이 중요합니다.

OpenSearch Service에서는 큐레이션된 프롬프트를 통해 전체 텍스트 신경 검색 쿼리를 수행하여 의료 기록, 임상 기록 또는 연구 논문을 검색하여 특정 증상, 치료 또는 환자 기록에 대한 관련 정보를 빠르게 찾을 수 있습니다. 신경 검색 쿼리는 내장 신경망 모델을 사용하여 입력 프롬프트와 이미지의 임베딩을 자동으로 처리합니다. 이를 통해 다중 모달 데이터에서 더 깊은 의미 관계를 이해하고 캡처하여 k-Nearest Neighbor(k-NN) 검색과 같은 다른 검색 쿼리 알고리즘에 비해 컨텍스트 인식 및 정확한 검색 결과를 제공할 수 있습니다.

RAG 아키텍처 생성

Amazon Bedrock 에이전트를 사용하여 OpenSearch Service에서 의료 지식 기반을 쿼리하는 사용자 지정 RAG 솔루션을 배포할 수 있습니다. 이를 위해 OpenSearch Service와 상호 작용하고 쿼리할 수 있는 AWS Lambda 함수를 생성합니다. Lambda 함수는 SageMaker AI 텍스트 임베딩 엔드포인트에 액세스하여 사용자의 입력 질문을 임베딩합니다. Amazon Bedrock 에이전트는 추가 쿼리 파라미터를 Lambda 함수에 대한 입력으로 전달합니다. 함수는 OpenSearch Service에서 의료 지식 기반을 쿼리하여 관련 의료 콘텐츠를 반환합니다. Lambda 함수를 설정한 후 Amazon Bedrock 에이전트 내에서 작업 그룹으로 추가합니다. Amazon Bedrock 에이전트는 사용자의 입력을 받아 필요한 변수를 식별하고 변수와 질문을 Lambda 함수에 전달한 다음 함수를 시작합니다. 함수는 파운데이션 모델이 사용자의 질문에 보다 정확한 답변을 제공하는 데 도움이 되는 컨텍스트를 반환합니다.

Amazon Bedrock 에이전트를 Amazon OpenSearch Service의 의료 벡터 데이터베이스와 통합.

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. 사용자가 Amazon Bedrock 에이전트에게 질문을 제출합니다.

  2. Amazon Bedrock 에이전트는 시작할 작업 그룹을 선택합니다.

  3. Amazon Bedrock 에이전트는 AWS Lambda 함수를 시작하고 해당 함수에 파라미터를 전달합니다.

  4. Lambda 함수는 Amazon SageMaker AI 텍스트 임베딩 모델을 시작하여 사용자 질문을 임베딩합니다.

  5. Lambda 함수는 포함된 텍스트와 추가 파라미터 및 필터를 Amazon OpenSearch Service에 전달합니다. Amazon OpenSearch Service는 의료 지식 기반을 쿼리하고 Lambda 함수에 결과를 반환합니다.

  6. Lambda 함수는 결과를 Amazon Bedrock 에이전트에 다시 전달합니다.

  7. Amazon Bedrock 에이전트의 파운데이션 모델은 결과를 기반으로 응답을 생성하고 사용자에게 응답을 반환합니다.

보다 복잡한 필터링이 수반되는 상황에서는 사용자 지정 LangChain리트리버를 사용할 수 있습니다. 에 직접 로드되는 OpenSearch Service 벡터 검색 클라이언트를 설정하여이 리트리버를 생성합니다LangChain. 이 아키텍처를 사용하면 필터 파라미터를 생성하기 위해 더 많은 변수를 전달할 수 있습니다. 리트리버를 설정한 후 Amazon Bedrock 모델 및 리트리버를 사용하여 검색 질문 응답 체인을 설정합니다. 이 체인은 사용자 입력과 잠재적 필터를 리트리버에 전달하여 모델과 리트리버 간의 상호 작용을 오케스트레이션합니다. 리트리버는 파운데이션 모델이 사용자의 질문에 답변하는 데 도움이 되는 관련 컨텍스트를 반환합니다.

OpenSearch Service에서 LangChain리트리버 에이전트를 의료 벡터 데이터베이스와 통합합니다.

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. 사용자가 LangChain리트리버 에이전트에게 질문을 제출합니다.

  2. LangChain 리트리버 에이전트는 Amazon SageMaker AI 텍스트 임베딩 엔드포인트에 질문을 보내 질문을 임베드합니다.

  3. LangChain 리트리버 에이전트는 임베디드 텍스트를 Amazon OpenSearch Service에 전달합니다.

  4. Amazon OpenSearch Service는 검색된 문서를 LangChain리트리버 에이전트에 반환합니다.

  5. LangChain 리트리버 에이전트는 사용자 질문과 검색된 컨텍스트를 Amazon Bedrock 파운데이션 모델에 전달합니다.

  6. 파운데이션 모델은 응답을 생성하여 사용자에게 전송합니다.

5단계: LLMs 사용하여 의료 질문에 답변

이전 단계는 환자의 의료 기록을 가져오고 관련 약물 및 잠재적 진단을 요약할 수 있는 의료 인텔리전스 애플리케이션을 구축하는 데 도움이 됩니다. 이제 생성 계층을 빌드합니다. 이 계층은 Llama 3과 같은 Amazon Bedrock에서 LLM의 생성 기능을 사용하여 애플리케이션의 출력을 보강합니다.

임상의가 쿼리를 입력하면 애플리케이션의 컨텍스트 검색 계층은 지식 그래프에서 검색 프로세스를 수행하고 환자의 기록, 인구 통계, 증상, 진단 및 결과와 관련된 상위 레코드를 반환합니다. 또한 벡터 데이터베이스에서 설명이 포함된 실시간 의사-환자 상호 작용 메모, 진단 이미지 평가 인사이트, 랩 분석 보고서 요약, 방대한 의학 연구 및 학계의 인사이트를 검색합니다. 검색된 이러한 상위 결과, 임상의의 쿼리 및 프롬프트(쿼리의 특성에 따라 답변을 큐레이트하도록 조정됨)는 Amazon Bedrock의 파운데이션 모델로 전달됩니다. 응답 생성 계층입니다. LLM은 검색된 컨텍스트를 사용하여 임상의의 쿼리에 대한 응답을 생성합니다. 다음 그림은이 솔루션 단계의 end-to-end 워크플로를 보여줍니다.

AWS 서비스 및 LLM을 사용하여 의료 질문에 대한 답변을 생성합니다.

의료 인텔리전스 애플리케이션이 처리해야 하는 다양한 사용 사례에 대해 Llama 3과 같은 사전 훈련된 기본 모델을 Amazon Bedrock에서 사용할 수 있습니다. 지정된 작업에 가장 효과적인 LLM은 사용 사례에 따라 달라집니다. 예를 들어 사전 훈련된 모델은 환자-의사 대화를 요약하고, 약물 및 환자 기록을 검색하고, 내부 의료 데이터 세트와 과학적 지식의 본문에서 인사이트를 검색하는 데 충분할 수 있습니다. 그러나 실시간 실험실 평가, 의료 절차 권장 사항, 환자 결과 예측과 같은 다른 복잡한 사용 사례에는 미세 조정된 LLM이 필요할 수 있습니다. 의료 도메인 데이터 세트에 대해 학습하여 LLM을 미세 조정할 수 있습니다. 구체적이거나 복잡한 의료 및 생명과학 요구 사항은 이러한 미세 조정된 모델의 개발을 주도합니다.

LLM 미세 조정 또는 의료 도메인 데이터에 대해 훈련된 기존 LLM 선택에 대한 자세한 내용은 의료 및 생명과학 사용 사례에 대규모 언어 모델 사용을 참조하세요.

AWS Well-Architected 프레임워크에 맞게 조정

이 솔루션은 다음과 같이 AWS Well-Architected Framework의 6가지 원칙에 모두 부합합니다.

  • 운영 우수성 - 효율적인 모니터링 및 업데이트를 위해 아키텍처가 분리됩니다. Amazon Bedrock 에이전트 및는 도구를 빠르게 배포하고 롤백하는 데 AWS Lambda 도움이 됩니다.

  • 보안 -이 솔루션은 HIPAA와 같은 의료 규정을 준수하도록 설계되었습니다. 또한 암호화, 세분화된 액세스 제어 및 Amazon Bedrock 가드레일을 구현하여 환자 데이터를 보호할 수 있습니다.

  • 신뢰성 - Amazon OpenSearch Service 및 Amazon Bedrock과 같은 AWS 관리형 서비스는 지속적인 모델 상호 작용을 위한 인프라를 제공합니다.

  • 성능 효율성 - RAG 솔루션은 최적화된 시맨틱 검색 및 Cypher 쿼리를 사용하여 관련 데이터를 빠르게 검색하는 반면 에이전트 라우터는 사용자 쿼리를 위한 최적의 경로를 식별합니다.

  • 비용 최적화 pay-per-token 모델은 추론 및 훈련 전 비용을 줄입니다.

  • 지속 가능성 - 서버리스 인프라와 pay-per-token 컴퓨팅을 사용하면 리소스 사용량을 최소화하고 지속 가능성을 개선할 수 있습니다.