| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- qwen
- Hallucination
- COT
- DyPRAG
- Baekjoon
- RAG
- coding test
- Noise
- Do it
- lora
- Embedding
- GPT
- odds
- SFT
- Noise Robustness
- Parametric RAG
- Transformer
- Statistics
- reranking
- Algorithm
- moe
- 파인튜닝
- LLM
- DPO
- NLP
- Python
- retrieval
- Document Augmentation
- fine-tuning
- Retriever
Archives
- Today
- Total
왕구아니다
[논문 리뷰] 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 활용(예: 챗봇, 번역, 작문 등)을 가능케 함
- 그러나 이러한 모델들은 금융, 법률, 의학처럼 전문 지식을 요구하는 분야에 적용될 때 여전히 한계가 있음
- 파인튜닝은 시간도 오래 걸리고 돈도 많이 소모딤. 특히 의료 문서처럼 길고 복잡한 텍스트를 다룰 때는 효율적으로 활용하기 어려움
- 의학처럼 정확성이 중요한 분야에서는 LLM의 Hallucination이 치명적임. 또한 때때로 지나치게 단순한 답변만 제공하며, 새로운 통찰이나 발견을 제시하지 못해, 고차원의 추론이 요구되는 분야에서는 부족함(의료 분야는 복잡한 진단과 근거 기반 추론이 요구됨)
- 튜닝 이외의 방법인 RAG는 사전 학습된 모델에 외부 지식을 실시간으로 결합해 정답을 도출하는 방법. 그러나 아래와 같은 단점 존재
- 정보 연결성이나 추론력이 약함
- 필요한 답변이 특정 텍스트 안에 있을 때를 위해 설계되었기 때문에 단순 검색과 요약에는 강하지만 여러 문서를 종합해서 하나의 정답을 도출하는 데는 약함
- 문맥 간 연결과 전체 흐름 이해는 능력이 약함
- 대규모 데이터셋이나 방대한 문서 전반에 걸친 의미론적 개념을 요약적으로 이해해야 하는 작업에서는 성능이 낮음
- 이전 연구들에서 기본적인 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단계 그래프 계층 구조)
- 사용자가 제공한 문서를 최상위 소스로 사용하여 엔티티들을 추출 [환자 보고서, 임상 기록처럼 개인화된 의료 문서로부터 핵심 개체(병명, 약물, 증상 등)를 뽑는 단계]
- 위 엔티티들을 신뢰할 수 있는 의학 서적과 논문에서 추출된 더 기초적인 엔티티들로 구성된 두 번째 계층과 연결 [표준화된 의학 정보(논문, 교과서)로 구성 엔티티]
- 마지막으로 기본적인 의학 사전 그래프와 연결되며, 이 그래프는 각 의학 용어에 대한 상세한 설명과 의미론적 관계를 제공 [UMLS 같은 의학 개념 사전으로 구성된 레이어로, 의학적 정확성과 관계 구성을 담당]
- 세 계층의 각각의 문서 내용과 계층적 연결을 기반으로 엔티티들을 연결하여 최상위 수준의 종합 그래프를 구성
- 결과적으로 이 방식은 지식을 그 출처까지 추적할 수 있도록 보장하며, 결과의 사실적 정확성을 확보 가능
- 검색기는 상향식 응답 생성과 하향식 검색을 결합한 U-retrieve 전략 사용 (검색은 위에서 아래로(top-down), 응답 생성은 아래에서 위로(bottom-up))
- 먼저 질문이 들어오면 미리 정의된 의학 태그를 사용하여 질의를 구조화한 다음, 그래프를 상향식(top-down)으로 탐색하는 것으로 시작 (질문은 먼저 의학적으로 의미 있는 키워드(예: 증상, 병명)로 분석된 후, 이를 통해 그래프의 상위 계층부터 탐색)
- 이렇게 구조화된 질의를 바탕으로 메타그래프(검색된 노드와 그와 관련된 Top-K 노드 및 관계)를 불러와 응답을 생성하며, 이 정보를 요약하여 상세한 응답을 만듦
- 또한 내재적인 출처 인용 기능을 제공하여, '의료'라는 특수한 도메인에서 요구하는 요구사항들 충족시킴 (각 응답 생성 시 출처 또는 근거 정보를 함께 제공하여 해당 응답이 실제 데이터셋에 기반함을 보여줌)
- "출처가 있는 응답만 생성한다”는 것을 보장함으로써 LLM의 hallucination을 줄이고 신뢰도를 높임
- 사람이 LLM의 출력을 원본 데이터와 직접 비교하여 빠르고 정확하게 검토할 수 있음 (의료 분야에서 전문가의 검증이 가능하도록 설계)
- 생성된 모든 추론이 근거 기반이라는 점에서 의료 AI 시스템의 기본 조건인 보안, 신뢰성, 설명 가능성, 검증 가능성을 만족시킴
- 평가
- 다양한 모델(GPT, LLaMA 등)에 적용했고, 3가지 주요 의료 벤치마크 데이터셋(PubMedQA, MedMCQA, USMLE )으로 성능을 평가
- 평가를 위한 실제 RAG 과정은 포괄적인 의학 사전(UMLS 의료 지식)을 기초 지식층으로 제공했고, 최신 의학 논문과 서적을 포함한 MedC-K 데이터셋을 중간 계층으로 사용하여 사용자 제공 데이터를 시뮬레이션함
- 추가 학습 없이도 RAG 방식만으로 여러 파인튜닝된 의료 특화 모델을 능가함
- 세 계층으로 구성된 계층적 그래프 구성 방식 (3단계 그래프 계층 구조)
- 본 논문의 3가지 핵심 기여 요약
- 의료 분야에 그래프 RAG를 적용하기 위한 포괄적 파이프라인을 제안함
- LLM이 통합적인 개인 데이터를 활용하여 근거 기반의 응답을 생성할 수 있도록, 독창적인 그래프 구축 및 데이터 검색 방법을 개발함
- 주요 벤치마크에서 검증 실험을 수행했으며, 다양한 모델에서도 SOTA 성능을 달성함
📍2. Method
그럼 이제 본격적으로 MedGraphRAG에 대해서 자세히 살펴보겠습니다.😜
- MedGraphRAG는 민감한 의료 데이터를 다룰 수 있도록 설계된 의료 그래프 기반 RAG
- 의료 문서를 청크 단위로 분할하고, 엔티티를 추출하여 세 단계의 계층적 그래프 구조로 구성
2.1 Medical Graph Construction

Semantic Document Segmentation
먼저 문서 분할부터 살펴보겠습니다.
- 이전 연구들에서는 RAG 방법론을 적용하기 전에 의료 문서를 토큰 수나 문자 수 기반 분할로 분할하였으나 이는 각 문단 간의 주제 전환을 잘 포착하지 못해 의미 손실이 발생함 (예를 들어 특정 환자의 의료 문서 안에는 환자의 다양한 질병 정보, 진단 기록, 약물 이력 등이 존재)
- 따라서 논문 저자들은 문자 기반 분할과 주제 기반 분할을 결합한 혼합 방식을 채택
- 줄 바꿈 문자로 문단을 나눈 후, 의미 기반 청킹을 수행
- 의미 기반 청킹을 수행할 때, proposition transfer (한 문단 안에 복잡하게 얽혀 있는 복합문들을 의미가 독립된 명제(proposition) 단위로 나눔) 방식을 사용함
- ex) "고혈압은 심혈관 질환의 위험 요소이며, 약물치료가 필요하다."
- proposition 1: 고혈압은 심혈관 질환의 위험 요소이다.
- proposition 2: 고혈압에는 약물치료가 필요하다.
- ex) "고혈압은 심혈관 질환의 위험 요소이며, 약물치료가 필요하다."
- 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만 권의 의학 교과서를 선별하여 구성
- 'MedC-K'라는 대규모 의료 특화 코퍼스
- 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 프롬프트를 작성하는 것이 성능 향상에 엄청 큰 영향을 미친다는 것을 느꼈다.
아이디어야 떠올라라....🙏
