왕구아니다

[논문 리뷰] Medical Graph RAG : TOWARDS SAFE MEDICALLARGE LANGUAGE MODEL VIA GRAPH RETRIEVAL-AUGMENTED GENERATION 본문

Paper Review/RAG

[논문 리뷰] Medical Graph RAG : TOWARDS SAFE MEDICALLARGE LANGUAGE MODEL VIA GRAPH RETRIEVAL-AUGMENTED GENERATION

Psalms 12:6-7 2025. 6. 4. 17:29
본 논문 리뷰는 저의 개인적인 해석과 의견을 바탕으로 작성된 글입니다.
내용 중 해석의 오류나 개념적인 착오가 있다면, 망설이지 마시고 댓글로 혼내주시면 감사하겠습니다~

Preview

- 의료 그래프를 구축하기 위해 3 계층의 RAG 데이터 구조 설계
1. 첫 번째 계층 : 특정 병원의 매우 민감한 의료 보고서와 같은 사용자 제공 문서로 구성 (환자 데이터 등...)
2. 두 번째 계층 : 의학 교과서 및 학술 논문을 사용하여 구성
3. 세 번째 계층 : UMLS 같은 공인된 의료 개념 체계 (의학 용어)

- U-retrieve (top-down + bottom-up) 방식을 사용해 문서 검색 후 답변 생성
1. 문서 검색(top-down) : 전체 그래프 → 메타그래프 → 엔티티 노드 방향
2. 답변 생성(bottom-up) : 마지막 엔티티 → 인덱싱된 모든 그래프

Link
논문 : https://arxiv.org/abs/2408.04187
코드 : https://github.com/SuperMedIntel/Medical-Graph-RAG

📍0. Abstract

  • MedGraphRAG는 의료 LLM을 위한 그래프 기반 RAG 프레임워크
  • 문서 분할, 엔티티 추출, 계층적 그래프 생성, 의미적 병합, U-retrieve 기반 검색까지 전 과정을 포함함
  • 성능은 최신 모델을 능가하며, 출처가 포함된 근거 기반 응답을 생성해 의료 분야에서 안전성과 신뢰성을 크게 향상함

📍1. Instroduction

  • OpenAI의 ChatGPT 및 GPT-4와 같은 대형 언어 모델(LLM)의 급속한 발전은 자연어 처리 연구에 큰 변화를 일으켰으며, 실생활에서 유의미한 AI 활용(예: 챗봇, 번역, 작문 등)을 가능케 함
  • 그러나 이러한 모델들은 금융, 법률, 의학처럼 전문 지식을 요구하는 분야에 적용될 때 여전히 한계가 있음
    1. 파인튜닝은 시간도 오래 걸리고 돈도 많이 소모딤. 특히 의료 문서처럼 길고 복잡한 텍스트를 다룰 때는 효율적으로 활용하기 어려움
    2. 의학처럼 정확성이 중요한 분야에서는 LLM의 Hallucination이 치명적임. 또한 때때로 지나치게 단순한 답변만 제공하며, 새로운 통찰이나 발견을 제시하지 못해, 고차원의 추론이 요구되는 분야에서는 부족함(의료 분야는 복잡한 진단과 근거 기반 추론이 요구됨)
  • 튜닝 이외의 방법인 RAG는 사전 학습된 모델에 외부 지식을 실시간으로 결합해 정답을 도출하는 방법. 그러나 아래와 같은 단점 존재
    1. 정보 연결성이나 추론력이 약함
      • 필요한 답변이 특정 텍스트 안에 있을 때를 위해 설계되었기 때문에 단순 검색과 요약에는 강하지만 여러 문서를 종합해서 하나의 정답을 도출하는 데는 약함
    2. 문맥 간 연결과 전체 흐름 이해는 능력이 약함
      • 대규모 데이터셋이나 방대한 문서 전반에 걸친 의미론적 개념을 요약적으로 이해해야 하는 작업에서는 성능이 낮음
    • 이전 연구들에서 기본적인 RAG의 문제점을 해결하기 위해 Graph RAG 방법론이 제안됨
      • 단순 텍스트 검색이 아니라, 정보 간의 관계(노드와 엣지)를 그래프로 구성해서 더 깊이 있는 응답 생성을 가능하게 하는 방법
      • LLM + Graph + RAG의 조합을 통해, 정보 간 연결을 활용하여 더 정확하고 근거 있는 답을 만들 수 있음
      • 이전 Graph RAG 연구들에서 GraphRAG는 정보 종합에서 더 뛰어난 지능과 숙련도를 제공함으로써, 개인 데이터셋에 적용된 기존 방법들을 능가하는 뚜렷한 향상을 보임
    • 따라서 본 논문에서는 LLM을 의료 분야에 적용하기 위한 새로운 Graph RAG 기법인 Medical Graph RAG(MedRAG)를 제안
      • MedRAG는 의료 분야의 필수적인 요구사항인 근거(grounded source citations), 명료성(clear interpretations of medical terminology), 투명성(transparency of the results), 해석 가능성(interpretability of the results)을 만족시킴
  • MedRAG 소개
    • 세 계층으로 구성된 계층적 그래프 구성 방식 (3단계 그래프 계층 구조)
      1. 사용자가 제공한 문서를 최상위 소스로 사용하여 엔티티들을 추출 [환자 보고서, 임상 기록처럼 개인화된 의료 문서로부터 핵심 개체(병명, 약물, 증상 등)를 뽑는 단계]
      2. 위 엔티티들을 신뢰할 수 있는 의학 서적과 논문에서 추출된 더 기초적인 엔티티들로 구성된 두 번째 계층과 연결 [표준화된 의학 정보(논문, 교과서)로 구성 엔티티]
      3. 마지막으로 기본적인 의학 사전 그래프와 연결되며, 이 그래프는 각 의학 용어에 대한 상세한 설명과 의미론적 관계를 제공 [UMLS 같은 의학 개념 사전으로 구성된 레이어로, 의학적 정확성과 관계 구성을 담당]
    • 세 계층의 각각의 문서 내용과 계층적 연결을 기반으로 엔티티들을 연결하여 최상위 수준의 종합 그래프를 구성
      • 결과적으로 이 방식은 지식을 그 출처까지 추적할 수 있도록 보장하며, 결과의 사실적 정확성을 확보 가능
    • 검색기는 상향식 응답 생성과 하향식 검색을 결합한 U-retrieve 전략 사용 (검색은 위에서 아래로(top-down), 응답 생성은 아래에서 위로(bottom-up))
      • 먼저 질문이 들어오면 미리 정의된 의학 태그를 사용하여 질의를 구조화한 다음, 그래프를 상향식(top-down)으로 탐색하는 것으로 시작 (질문은 먼저 의학적으로 의미 있는 키워드(예: 증상, 병명)로 분석된 후, 이를 통해 그래프의 상위 계층부터 탐색)
      • 이렇게 구조화된 질의를 바탕으로 메타그래프(검색된 노드와 그와 관련된 Top-K 노드 및 관계)를 불러와 응답을 생성하며, 이 정보를 요약하여 상세한 응답을 만듦
    • 또한 내재적인 출처 인용 기능을 제공하여, '의료'라는 특수한 도메인에서 요구하는 요구사항들 충족시킴 (각 응답 생성 시 출처 또는 근거 정보를 함께 제공하여 해당 응답이 실제 데이터셋에 기반함을 보여줌)
      1. "출처가 있는 응답만 생성한다”는 것을 보장함으로써 LLM의 hallucination을 줄이고 신뢰도를 높임
      2. 사람이 LLM의 출력을 원본 데이터와 직접 비교하여 빠르고 정확하게 검토할 수 있음 (의료 분야에서 전문가의 검증이 가능하도록 설계)
      3. 생성된 모든 추론이 근거 기반이라는 점에서 의료 AI 시스템의 기본 조건인 보안, 신뢰성, 설명 가능성, 검증 가능성을 만족시킴
    • 평가
      • 다양한 모델(GPT, LLaMA 등)에 적용했고, 3가지 주요 의료 벤치마크 데이터셋(PubMedQA, MedMCQA, USMLE )으로 성능을 평가
      • 평가를 위한 실제 RAG 과정은 포괄적인 의학 사전(UMLS 의료 지식)을 기초 지식층으로 제공했고, 최신 의학 논문과 서적을 포함한 MedC-K 데이터셋을 중간 계층으로 사용하여 사용자 제공 데이터를 시뮬레이션함 
      • 추가 학습 없이도 RAG 방식만으로 여러 파인튜닝된 의료 특화 모델을 능가함
  • 본 논문의 3가지 핵심 기여 요약
    1. 의료 분야에 그래프 RAG를 적용하기 위한 포괄적 파이프라인을 제안함
    2. LLM이 통합적인 개인 데이터를 활용하여 근거 기반의 응답을 생성할 수 있도록, 독창적인 그래프 구축 및 데이터 검색 방법을 개발함
    3. 주요 벤치마크에서 검증 실험을 수행했으며, 다양한 모델에서도 SOTA 성능을 달성함

📍2. Method

그럼 이제 본격적으로 MedGraphRAG에 대해서 자세히 살펴보겠습니다.😜

  • MedGraphRAG는 민감한 의료 데이터를 다룰 수 있도록 설계된 의료 그래프 기반 RAG
    • 의료 문서를 청크 단위로 분할하고, 엔티티를 추출하여 세 단계의 계층적 그래프 구조로 구성

2.1 Medical Graph Construction

Semantic Document Segmentation 

먼저 문서 분할부터 살펴보겠습니다.

  • 이전 연구들에서는 RAG 방법론을 적용하기 전에 의료 문서를 토큰 수나 문자 수 기반 분할로 분할하였으나 이는 각 문단 간의 주제 전환을 잘 포착하지 못해 의미 손실이 발생함 (예를 들어 특정 환자의 의료 문서 안에는 환자의 다양한 질병 정보, 진단 기록, 약물 이력 등이 존재)
  • 따라서 논문 저자들은 문자 기반 분할과 주제 기반 분할을 결합한 혼합 방식을 채택
    • 줄 바꿈 문자로 문단을 나눈 후, 의미 기반 청킹을 수행
    • 의미 기반 청킹을 수행할 때, proposition transfer (한 문단 안에 복잡하게 얽혀 있는 복합문들을 의미가 독립된 명제(proposition) 단위로 나눔) 방식을 사용함
      • ex) "고혈압은 심혈관 질환의 위험 요소이며, 약물치료가 필요하다."
        • proposition 1: 고혈압은 심혈관 질환의 위험 요소이다.  
        • proposition 2: 고혈압에는 약물치료가 필요하다.
    • proposition transfer를 통해, 각 문단은 여러 개의 proposition으로 구성됨
    • 마지막으로 sliding window 방식을 사용해 청킹을 함
      • 이때 zero-shot으로 LLM을 사용해 5개의 문단씩 sliding window를 수행함
  • 각 청크마다 graph를 생성해 DB 구성
📝 데이터 분할 과정 정리

0. 특정 환자의 진단 기록표가 있다고 가정
1. 줄 바꿈 문자를 기준으로 문단 분할 (문단 1, 문단 2......)
2. 분할된 문단 안에서 Proposition Transfer 수행 (문단 1 : prosposition1 + proposition2.... / 문단 2 : proposition1 +...)
3. LLM을 이용해 5개 문단씩 그 안에 있는 proposition을 가지고 의미가 달라지는 부분에서 청킹
(문단 1 : proposition1 + proposition 2, 문단 2 : proposition 1 (청킹) 문단2 : proposition2, 문단 3 : proposition 1..... )
4. 각 chunk별로 graph 구성

Element Extraction 

앞에서 문서를 의미적으로 나눈 후, 각 chunk별로 graph를 구성한다고 하였습니다.

그렇다면 이제는 각 chunk별 graph를 구성할 때, 각 chunk 안에서 의미 있는 엔티티들을 식별해 어떻게 그래프의 노드로 활용하는지 살펴보겠습니다.

  • Chunk 내 모든 관련 엔티티를 인식할 수 있도록 few-shot 프롬프트 + LLM 이용
  • 각 엔티티에 대해 LLM은 이름, 유형, 설명을 출력
    • 이름은 문서에 등장한 원문 그대로일 수도 있고, 후속 처리에 적합하도록 전문가용 의학 용어에서 일반적으로 사용하는 파생 용어일 수 있음
      • 예를 들어, 원문에 “혈당 수치 상승”이라 되어 있어도 노드 이름은 “Hyperglycemia(고혈당)”으로 정리
    • 타입은 LLM이 미리 정의된 테이블에서 선택하고 (증상인지 병명인지 등...)
    • 설명은 문서 내 문맥에 기반한 LLM 생성 설명
    • 예)
      • 이름: “두통”
      • 타입: “증상(symptom)”
      • 설명: “환자가 일상생활에 영향을 받을 정도로 반복적으로 호소하는 머리 증상”
  • 각 엔티티에는 원본 문서와 문단을 추적할 수 있도록 고유 ID를 포함시킴 (“출처를 제시하는 응답 생성”이 가능하게 만드는 ID)
  • 추출 품질을 높이고 노이즈나 분산을 줄이기 위해, 이 추출 과정을 여러 번 반복
    • 반복적 접근법은 LLM이 처음에 놓쳤을 수도 있는 엔티티를 탐지하도록 유도
    • 이 반복을 계속할지 멈출지에 대한 결정도 LLM 스스로가 수행

Hierarchy Linking 

만약 Vector DB에 문서를 임베딩 후 저장하여 QA System을 만든다고 가정했을 때, LLM은 단지 질문 + 검색된 문서 조합으로 답을 생성합니다.

그러나 저자들은 특히 '의료' 도메인에서는 신뢰할 수 있는 출처와 깊이 있는 정보(전문적인 지식)를 제공해야 하기 때문에 추가적으로 의학 서적 + 의학 용어 등을 계층적으로 연결하여 DB를 구성하였습니다.

해당 파트에서 이 부분을 좀 더 자세히 살펴보겠습니다.

  • 의학은 질병의 특정 증상이나 약물의 부작용처럼 수많은 확립된 사실들에 기반하고, 정밀한 용어 체계를 일관되게 사용하는 전문 분야
  • 때문에 LLM이 다른 덜 제한적인 분야에서처럼 데이터를 왜곡하거나 수정하거나 창의적(Hallucination)이거나 무작위적인 요소를 추가하지 않는 것이 중요
  • 따라서 저자들은 엔티티를 근거 있는 의학 지식 및 용어에 연결하기 위한 의료 분야 전용의 독특한 구조를 설계함
  • 구체적으로, 포괄적인 의료 그래프를 구축하기 위해 3 계층의 RAG 데이터 구조 설계함
    • 첫 번째 계층 : 특정 병원의 매우 민감한 의료 보고서와 같은 사용자 제공 문서로 구성 (환자 데이터 등...)
    • 두 번째 계층 : 의학 교과서 및 학술 논문을 사용하여 구성
      • 첫 번째 계층의 엔티티들을 LLM이 감지한 관련성에 따라 두 번째 계층의 해당 엔티티들과 연결
      • 예) 환자 문서에서 “혈당 수치 증가”가 발견되면, 논문 그래프 내의 “고혈당” 엔티티와 연결됨
    • 세 번째 계층 : UMLS 같은 공인된 의료 개념 체계 (의학 용어)
      • 의학 용어와 연결 지을 때는 코사인 유사도 사용
        • 예) 사용자 문서에서 추출된 엔티티 이름: "고혈당"
        • 이 이름을 텍스트 임베딩으로 변환: [0.23, 0.11,...]
        • UMLS 내 의학 용어들(예: "Hyperglycemia", "Diabetes", "Insulin Resistance")의 임베딩들과 비교
        • 코사인 유사도 계산 → 가장 유사한 용어 선택
        • "Hyperglycemia"와의 유사도 = 0.94 → 선택됨
        • 따라서 "고혈당" 엔티티는 "Hyperglycemia" 라는 표준 UMLS 용어와 연결됨
    • 최종적으로 연결된 용어들의 관계정보를 텍스트로 변환 (LLM에 주입시키기 위해)
      • 예) "Hyperglycemia""Hyperglycemia"라는 용어는
      • 정의: “혈중 포도당 농도가 높은 상태”
      • 관계: “원인 → 당뇨병”, “관련 증상 → 갈증”, “치료 → 인슐린 투여”
      • 이 정보를 LLM이 이해할 수 있도록 평문으로 변환해 함께 제공
      • "Hyperglycemia is often caused by diabetes mellitus and is commonly treated with insulin therapy."

Relationship Linking 

위 과정까지 각 엔티티들의 계층을 나누고 관련 있는 정보들을 상하로 연결시켜 주었습니다.

이번에는 엔티티들 간의 인과관계 혹은 의미적 관계를 어떻게 연결시켜 주었는지 살펴보겠습니다.

  • LLM에게 명확하게 관련된 엔티티들 사이의 모든 관계를 식별하도록 지시함
    • LLM이 판단을 내릴 때 단순히 단어 수준이 아니라 설명(description), 정의(definition), 그리고 사전 지식 연결(UMLS knowledge)까지 모두 고려
  • 식별된 관계들은 출발 엔티티(source)와 대상 엔티티(target)를 명시하며, 관계에 대한 설명과 해당 관계의 밀접도를 나타내는 점수를 포함함
  • 관계의 거리(관련성)를 질서 있고 정확하게 평가하기 위해, LLM에게 미리 정의된 설명자 목록 중에서 선택하도록 프롬프트를 제공함
    • 총 4가지 중에서 선택 : ‘매우 관련 있음’, ‘관련 있음’, ‘중간’, ‘관련 없음’, ‘전혀 관련 없음’
  • 이러한 분석을 수행한 후, 각 데이터 청크에 대해 가중치가 있는 방향성 그래프(weighted directed graph)를 생성
    • 각 문서 청크마다 별도의 소형 그래프가 생성됨
  • 최종적으로 생선 된 가중치가 있는 소형 그래프를 '메타그래프(meta-graph)'라고 부르며, 이후 전체 전역 그래프(global graph)는 이 메타그래프들을 의미적으로 병합하여 형성

Tags generation and merge the graphs 

마지막으로 위 과정들을 통합하여 전체 그래프를 구성하는 방법을 살펴보겠습니다.

  • 앞서 메타 그래프들을 구성한 이후, 각 청크의 데이터를 스캔하여 모든 메타그래프를 연결하여 전역 그래프(global graph)를 생성
  • 이전 Relationship Linking 파트에서 정의한 노드 간 유사성/관계 판단 기준을 따라 메타그래프들 간의 병합 진행
    • 전체적인 과정은 메타그래프 쌍 사이의 거리를 계산하고, 가장 가까운 것들부터 순차적으로 병합
  • 구체적으로 효율적인 병합을 위해 LLM을 사용하여 각 메타그래프의 내용을 증상, 병력, 신체 기능, 약물과 같은 사전에 정의된 의학 범주에 따라 요약 (태그 생성)
  • 이후 이 태그를 기준으로 다른 그래프와의 의미 유사성을 계산
  • 병합된 그래프는 새로운 그래프가 되지만, 나중에 인덱싱 하기 쉽게 하기 위해 원래의 메타그래프들과 태그들은 유지
  • 이후 새로 생성된 그래프에 대해 요약 태그 정보가 다시 생성되며, 다른 그래프들과의 유사도를 재계산하여 추가 병합 여부를 결정
    • 이 과정은 하나의 전역 그래프만 남을 때까지 반복
  • 그러나 요약 태그 정보가 누적됨에 따라 세부 정보가 손실되기 때문에, 병합 효율성과 정보 보존 간의 trade-off 발생 (병합하게 되면 내용이 압축되지만 세밀한 정보는 손실될 수 있음)
    • 그래서 저자들은 세부 정보의 과도한 손실을 방지하기 위해, 이 병합 과정을 최대 24회 반복으로 제한함

2.2 Retrieve From The Graph

해당 섹션에서는 앞에서 구축한 전역 그래프를 바탕으로 사용자의 질의(query)에 대한 응답을 생성하는 방법을 살펴보겠습니다.

핵심 개념은 이 논문에서 제안한 “U-retrieve” 전략입니다.

  • 그래프를 구축한 후, LLM은 'U-retrieve' (top-down + bottom-up)라는 전략을 통해 사용자 질의에 응답
  • 문서 검색은 top-down 방식
    • 사용자 질문을 받아 그 내용으로부터 요약 태그를 만들고, 가장 관련성 높은 그래프를 찾아내는 탑다운 매칭 프로세스
    • 이 과정은 더 큰 그래프들 중 하나에서 시작하여, 그 안에 포함된 더 작은 그래프들로 점차 내려가면서 인덱싱
      • 전체 그래프 → 메타그래프 → 엔티티 노드 방향
    • 이 매칭 과정은 메타그래프 계층에 도달할 때까지 반복되며, 다수의 관련 엔티티들을 검색함
    • 이후, 이렇게 검색된 엔티티들과 TopK로 관련된 다른 엔티티들에 관한 모든 관련 내용을 수집 (검색된 node + 이웃 노드)
      • 여기에는 검색된 엔티티 자체의 내용 + 이들과 연관된 기초 의학 지식 + 다른 엔티티들과의 관련성 및 관계 + 연결된 엔티티들의 내용까지 포함됨
  • 응답 생성은 bottom-up 방식
    • 질문에 관련된 정보가 검색되면(그래프들 중 맨 마지막에 있는 엔티티들), LLM은 이 정보를 활용하여 텍스트 형태의 중간 응답을 생성
    • 다음으로 이 중간 응답은 유지되며, 상위 계층 그래프의 요약 태그 정보와 결합되어 더 정밀하고 자세한 응답을 생성
    • LLM은 이 응답 생성 과정을 바텀업 방식으로 반복하면서, 인덱싱 된 모든 그래프를 따라 탐색한 후 최종 응답을 생성
    • 이 방식은 LLM이 그래프 내 모든 데이터를 다루면서도 덜 관련된 데이터는 요약된 형태로만 접근함으로써 전체적인 개요를 파악할 수 있게 하면서도 효율성을 유지

📍3. Experiment

3.1 Dataset

3.1.1 RAG Data

세 개의 계층으로 나눠 각기 어떤 서로 다른 데이터를 사용했는지 살펴보겠습니다.

  • Top-Level
    • 병원 내의 의료 보고서 같은 개인 사용자 정보
    • 특징 :
      • 사용자 특화적이며, 실제 환경에서 LLM을 사용할 때 가장 자주 갱신되거나 변경되는 데이터 (그래프 노드가 자주 추가/수정되는 부분)
    • 실사용 데이터 :
      • 'MIMIC-IV'라는 공개 전자 건강 기록 데이터셋
      • 연구 및 교육 목적을 지원하기 위해 설계되었으며, 환자 측정값, 진단, 시술, 치료, 익명화된 임상 노트 등 광범위한 데이터를 포함
  • Medium-Level
    • 최신 + 동료 평가가 완료된(peer-reviewed) + 신뢰할 수 있는 의학 서적 및 논문들
    • 특징 :
      • 사용자에게 최신 의학적 진보와 지식을 제공하여 최신 발견을 놓치지 않도록 보장
      • 의료 도메인에 일반적인 데이터이기 때문에 사용자마다 기본값으로 설정될 수 있으며, 사용자나 관리자에 의해 정기적으로 갱신됨 (중간 정도의 주기로, 일반적으로 연 단위로 갱신)
    • 실사용 데이터 : 
      • 'MedC-K'라는 대규모 의료 특화 코퍼스
        • 480만 개의 생의학 논문3만 권의 의학 교과서로 구성
      • 다양한 도서관과 출판사로부터 3만 권의 의학 교과서를 선별하여 구성
    • Bottom-Level
      • 의학 용어와 그 의미론적 관계를 정의하는 데이터를 포함하며, 주로 확립된 어휘 체계에서 수집된 데이터
      • 특징:
        • 가장 권위 (UMLS와 같은 권위 있는 의학 사전) 있고 엄격한 데이터이며, 의료용 LLM을 사용하려는 모든 사용자에게 기본값으로 설정되어야 함
        • 갱신 빈도가 가장 낮으며, 대략 5년 또는 그 이상마다 갱신
      • 실사용 데이터 : 
        • 'UMLS(통합의학언어시스템)' : 미국 국립의학도서관(NLM)이 개발한 방대한 데이터셋

3.1.2 Test Data

    • PubMedQA 
    • MedMCQA 
    • USMLE 

3.2 LLM Models

  • Llama2
  • Llama3
  • GPT-4
  • Gemini

3.2 Results

3.3.1 Medical Graph RAG Effect

  • MedGraphRAG가 실제로 다양한 LLM들에서 얼마나 효과적인지 평가한 실험 결과
  • MedGraphRAG가 의료 분야 벤치마크에서 LLM의 성능을 크게 향상시켜줌
  • 이러한 성능 향상은 파인튜닝이나 어댑터 사용보다 비용 효율적이고 빠르며 편리한 zero-shot RAG 방식을 도입한 데에 기인함

3.3.2 Evidence-Based Response

  • MedGraphRAG의 그래프 연결 메커니즘의 장점은 LLM이 복잡한 의학 질문에 대해 근거 기반 응답 생성하도록 유도할 수 있으며, 이는 안전성설명 가능성을 동시에 향상시킴
  • 비교를 위한 질문을 보면 환자가 보이는 증상은 알츠하이머병과 연관된 증상을 보이지만 실제로 전문가의 진단을 받아보면 혈관성 치매(Vascular Dementia)를 앓고 있음 (의학적으로 알츠하이머와 증상이 비슷하지만 원인이 다른 감별진단 사례)
    • GPT-4는 알츠하이머와 비슷한 증상을 보이기 때문에 알츠하이머라고 오진을 내림
    • MedGraphRAG의 응답은 알츠하이머 대신 혈관성 치매를 정확히 식별할 뿐만 아니라, 신뢰할 수 있는 인용 근거에 기반한 상세한 설명까지 제공. 추가로, 의학 용어에 대한 간단한 설명도 포함하고 있어, 비전문가 사용자도 쉽게 이해할 수 있음
  • 이처럼 근거 기반적이고 사용자 친화적인 접근법은, 안전이 최우선인 임상 환경에서 매우 중요

3.3.3 Compare To SOTA Medical LLM Models

  • 이전 최고 성능의 의료 프롬프트 기반 모델인 Medprompt를 1.1% p 유의미하게 초과하는 성능을 보여줌
  • 학습 비용과 시간이 많이 드는 기존 방식들보다, zero-shot + 그래프 기반 RAG 방식이 더 효율적이고 성능도 좋음

3.3.4 Ablation Study

  • 전체 RAG 시스템을 구성하는 핵심 기술(청킹, 그래프 구성, 검색 방식)의 기여도를 각각 비교
  • 청킹
    • 하이브리드 방식(static + semantic 기반) vs 정적
    • 하이브리드 시맨틱 청킹 방식이 기본 방식보다 성능을 크게 향상시켰으며, 이는 정교한 데이터 청킹의 중요성을 뒷받침
  • 그래프 구성
    • LangChain의 단순 개체 연결 방식 vs 계층 연결 
    • 계층 구조가 더 우수
  • 검색 
    • 요약 기반 검색 방식 vs U-retrieve 방식
    • U-retrieve가 더 정밀하고 관련성 높음

📍4. Conclusion

  • 결론적으로, 본 논문은 의료 분야를 위한 새로운 그래프 기반 RAG 프레임워크인 MedGraphRAG를 소개하며, 이는 LLM의 역량을 향상시킴
  • 고급 문서 청킹 기술과 계층적 그래프 구조를 결합하여(청킹 + 계층 그래프 + U-retrieve), 데이터 조직과 검색 정확도를 크게 향상시킴

💬 5. Takeaway

현재 의료 도메인에서 RAG 프로젝트를 수행하고 있어서 본 논문을 읽어보았다. 읽으며 확실히 도메인에 대한 깊은 이해가 중요하다는 사실을 다시 느꼈다. 단순히 도메인 상관 없이 문서 검색 + LLM 답변 이렇게 구현하면 일맥상통할 줄 알았지만 도메인에 대한 특징과 요구사항을 파악한 후 DB를 구축하고 이에 맞게 LLM 프롬프트를 작성하는 것이 성능 향상에 엄청 큰 영향을 미친다는 것을 느꼈다. 
아이디어야 떠올라라....🙏