기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
의료용 생성형 AI 솔루션 개발 및 오케스트레이션
이 가이드의 솔루션을 구축하려면 미세 조정된 LLMs을 사용하여 증강된 환자 데이터, 임상 및 진단 인사이트, 예측된 환자 결과를 의료 공급자에게 제공하는 RAG 아키텍처를 구축해야 합니다. 이를 위해서는 응집력 있고 효율적인 워크플로를 만들기 위해 여러 AWS 서비스 및 도구를 통합해야 합니다. 이 섹션에서는 다음에 대해 설명합니다.
-
Amazon Q Developer - Amazon Q Developer를 사용하여 개발 프로세스 중에 엔지니어링 질문 및 코드 오류를 해결합니다.
-
다중 검색 RAG 설계 - 여러 리트리버를 사용하여 사용자의 질문에 대한 올바른 의료 컨텍스트를 가져오는 RAG 솔루션을 설계하고 구현합니다.
-
ReAct 에이전트 - 추론과 동적 작업을 결합하는 에이전트를 구현합니다.
Amazon Q Developer
생성형 AI 솔루션을 구축할 때 AI 에이전트와 연결 키 서비스를 생성하기 어려울 수 있습니다. 그러나 Amazon Q Developer
다중 검색 RAG 설계
생성형 AI 애플리케이션에서 다중 검색기 RAG 파이프라인은 여러 데이터 소스에서 정보를 효율적으로 검색하여 의료 서비스 제공자와 임상의가 의료 질문에 답변하는 데 도움이 될 수 있습니다. 이 파이프라인은 다양한 유형의 리트리버를 사용하여 다양한 지식 기반에서 관련 데이터를 가져옵니다. 각 리트리버는 환자 기록, 진단 인사이트, 임상 정보 또는 의학 연구 및 학술 텍스트의 콘텐츠와 같은 특정 유형의 정보를 가져오는 데 특화되어 있습니다.
데이터의 특성과 특정 애플리케이션 요구 사항을 사용하여 사용 사례에 맞는 올바른 백엔드 지식 기반을 결정합니다. Amazon OpenSearch Service 벡터 데이터베이스는 이미지 진단 평가 요약, 퇴원 요약, 임상 보고서, 의학 연구, 학술 텍스트 콘텐츠를 포함한 대량의 비정형 또는 반정형 의료 데이터에 매우 적합합니다. 반면 Amazon Neptune과 같은 그래프 데이터베이스 서비스는 환자, 환자 기록, 의료 서비스 제공자, 약물, 증상, 치료 등 개체 간의 시간적 관계를 심층 탐색해야 하는 의료 사용 사례에 적합할 수 있습니다.
이 파이프라인의 중요한 구성 요소는 사용자 쿼리 의도 예측입니다. 이렇게 하면 시스템이 쿼리를 올바른 리트리버 체인으로 라우팅합니다. 예를 들어 임상의가 환자의 치료 이력, 증상, 병원과의 상호 작용, 병원 재입원 가능성 또는 잠재적 환자 결과에 대해 묻는 경우 쿼리 의도 예측 모듈은이 의도를 식별합니다. 의료 지식 그래프에서 환자 레코드 또는 시간순 치료 데이터를 가져올 수 있는 리트리버 체인으로 요청을 보냅니다. 또는 질병 발견, 특정 진단 평가 또는 학술 교과서의 특정 임상 절차 세부 정보에 대한 질문이 있는 경우 쿼리는 OpenSearch Service 벡터 데이터베이스에서이 정보를 가져올 수 있는 리트리버 체인으로 라우팅됩니다. 의 도구 호출
이 다중 검색 RAG 시스템에는 특정 지식 기반에 대한 액세스를 관리하도록 설계된 LangChain 에이전트가 포함되어 있습니다. LangChain를 사용하여 Amazon Bedrock LLM, 다양한 리트리버 및 도구 간의 상호 작용을 오케스트레이션할 수 있습니다. LangChain에는 의도 분류기, Neptune용 리트리버, OpenSearch Service용 리트리버 또는 사용자 의도를 분류하고 특정 지식 기반의 데이터에 구조화된 형식으로 액세스하도록 개발할 수 있는 기타 도구와 같은 사용자 지정 도구를 생성하는 데 도움이 되는 도구 호출 클래스가 포함되어 있습니다. 그런 다음 이러한 도구를 클래스에 공급하여 추론 및 행동(ReAct) 에이전트를 생성합니다. ReAct 에이전트는 사용자 질문을 처리하고, 질문에 답변하기 위한 순차적 단계를 계획한 다음 사용 가능한 도구를 반복적으로 실행하고 도구 응답을 처리하여 사용자 쿼리에 최종적으로 답변합니다.
다음 이미지는 효율적인 지식 검색 및 지능형 쿼리 해결을 위해 설계된 다중 검색기 RAG 시스템이 작동하는 방식을 보여줍니다. LangChain ReAct 에이전트는 사용자의 의도를 분석하고, 실행을 위한 구조화된 계획을 공식화하고, 가장 관련성이 높은 검색 도구를 선택합니다. 시스템은 이전 질문 캐시를 쿼리하고 환자 ID, 의학적 상태, 방문 날짜와 같은 주요 속성을 기반으로 유사한 쿼리를 확인합니다. 매우 유사한 질문이 발견되면 해당 답변이 직접 검색됩니다. 그렇지 않으면 에이전트가 적절한 리트리버를 실행합니다. 시스템은 치료 기록, 증상, 병원 상호 작용 또는 재입원 가능성과 같은 환자 중심 정보를 검색하기 위해 그래프 리트리버를 사용합니다. 진단 평가, 임상 절차 및 구조화된 의학적 결과를 위해 에이전트는 벡터 데이터베이스 리트리버를 사용합니다. 두 데이터 스토어의 컨텍스트 지식을 조합하여 포괄적인 응답을 생성해야 하는 시나리오에서 시스템은 지식 그래프와 벡터 데이터베이스의 결과를 통합하는 하이브리드 검색 전략을 사용합니다.
ReAct 에이전트
추론 및 행동(ReAct) 에이전트는 다면 RAG 애플리케이션을 위해 설계되었습니다. 이러한 에이전트는 추론과 동적 작업의 강력한 조합을 제공하며, 특히 step-by-step 논리적 정보 검색 워크플로가 포함된 복잡한 애플리케이션에 적합합니다. 자세한 내용은 ReAct: Synergizing Reasoning and Acting in Language Models
의료 및 의료 맥락에서 임상의 또는 의사의 쿼리는 종종 다면적입니다. 예를 들어, 임상의는 “긴장성 및 제2형 당뇨병이 모두 있는 유사한 환자에게 어떤 치료를 받았나요?”라고 질문할 수 있습니다. 사용자 의도를 식별한 후, 즉 당뇨병 및 제2형 당뇨병에 대한 처리를 가져오려면 AI 에이전트가이 쿼리를 하위 작업으로 나눈 다음 가장 효율적인 검색 전략을 선택해야 합니다. 이 경우 AI 에이전트는 가장 관련성이 높은 노드(예: 환자 연령, 성별, 상태, 치료 및 약물)를 식별한 다음 그래프에서 이러한 개체와 해당 속성 및 관계를 쿼리해야 합니다. ReAct 에이전트는 LLM의 추론(논리 추론) 기능을 작업(외부 리소스 또는 지식 기반 쿼리 또는 상호 작용)과 결합하기 때문에 매우 유용합니다.
사용자 쿼리 "어떤 치료를 받았나요?"에 답하기 위해 다음 예제에서는 ReAct 에이전트의 작동 방식을 보여줍니다.
-
에이전트 추론 - ReAct 에이전트는 질문에 조건에 대한 정보(당뇨병 및 당뇨병) 검색이 포함되어 있다고 유추합니다. 환자 연령, 치료, 약물 및 분석할 기간을 고려합니다.
-
에이전트 작업 - 에이전트는 openCypher를 사용하여 지식 그래프에서 제2형 당뇨병 및 당뇨병과 관련된 치료를 쿼리합니다. 또한 투여 약물, 병원 방문 날짜, 약물 부작용, 알려진 환자 결과, 유사한 환자(예: 동일한 성별 및 연령의 환자)에 대한 교차 참조 데이터를 검색합니다.
-
에이전트 관찰 - 지식 그래프에서 에이전트는 최근 6개월간의 표 형식 데이터를 검색하여 당뇨병과 제2형 당뇨병이 모두 있는 환자에게 제공된 치료법을 검색합니다.
-
에이전트 추론 - 검색된 레코드의 결과의 순위를 매기기 위해 에이전트는 최신성, 약물 부작용 또는 알려진 환자 결과와 같은 중요한 속성을 식별합니다.
-
에이전트 작업 - 에이전트는 식별된 속성과 시스템 프롬프트를 통해 부여된 사전 정의된 로직을 기반으로 레코드의 순위를 다시 매깁니다.
-
응답 생성 - Amazon Bedrock의 LLM은 ReAct 에이전트가 준비한 컨텍스트를 기반으로 응답을 생성합니다.