Junu's Lab
LAB ONLINE Focus Computer Vision / ML / Animal Behavior
Project Detail

HybridRAG – 벡터 + 그래프 기반 복합 질의 해결 RAG 시스템

벡터 기반 검색과 그래프 기반 검색을 결합한 하이브리드 검색 구조가, 단일 검색 방식보다 더 정확하고 관련도 높은 응답을 생성할 수 있는가

Archived
Group
ml
Domain
Stack
llama, Python, Ollama, OpenAI API, RAG
Roles
💾 Back End, 🛠️ ML Engineer, 🔢 Data Analyst Modeling
Output
🧠 ML

Untitled

트랙 : Ⅱ. Research Reproduction Track

선정 논문

[Main] Hybrid RAG: 벡터 유사도 기반 탐색을 통해 증강 된 그래프 검색 및 생성 S. Cha, K. Seo, and D. Kim, “Hybrid RAG: Enhancing Graph Retrieval-Augmented Generation through Vector Similarity-based Search,” in 2024 Korean Institute of Broadcast and Media Engineers Fall Conference, 2024.
Source: author's Notion note
Source: author’s Notion note
[Sub] HybridRAG: Integrating Knowledge Graphs and Vector Retrieval Augmented Generation for Efficient Information Extraction B. Sarmah, B. Hall, R. Rao, S. Patel, S. Pasquali, and D. Mehta, “HybridRAG: Integrating Knowledge Graphs and Vector Retrieval Augmented Generation for Efficient Information Extraction,” arXiv preprint arXiv:2408.04948v1, Aug. 2024.

연구 문제 정의

RAG는 대개 두가지 방식으로 나눌 수 있다 Vector DB를 활용한 Vector RAG와 Graph DB를 활용한 Graph RAG.
  • Vector RAG : 임베딩 공간에서 질문과 문서 청크 간의 유사도를 계산하여 관련 정보를 검색하는 방식
  • Graph RAG : 지식 그래프와 같은 구조화된 데이터베이스를 활용하여 개체 간의 관계와 논리적 추론을 가능하게 하는 방식

| --- | --- | --- | | 종류 | 장점 | 한계점 | | Vector RAG | 대량의 비구조화된 텍스트 데이터에서 문맥적 유사성을 잘 포착할 수 있다 | 글로벌 질문이나 다단계 추론에 대해서는 한계를 보인다 (여러 개체 간의 상호 관계나 문서 전반에 걸친 분석이 필요한 경우) | | Graph RAG | 복잡한 관계를 이해하고 추론할 수 있다 | 검색을 위해 사용자의 요청으로부터 정확한 쿼리를 작성하는데 제약이 있다 |

논문 핵심 아이디어 요약

둘을 합치면 성능이 더 나오지 않을까? 벡터 기반의 유사도 그래프 데이터베이스 검색 프로세스 에 적용한 Hybrid RAG 모델 → Hybrid RAG 는 벡터 기반의 유사도 검색과 그래프 기반의 관계 추론을 통합하여, 복잡한 질문에 대한 보다 정확한 검색 및 답변이 가능할 것으로 기대 → 벡터 검색과 그래프 검색을 마지막에 단순 결합하는 것이 아니라, 그래프 탐색의 시작점 선정 자체에 벡터 유사도를 활용한다

Reproduction 계획

  • 구현 범위 (Implementation Scope) HybridRAG 시스템을 구축하기 위해 개발해야 할 기능적 단계들입니다.
    • 지식 추출 및 그래프 구축 (Graph Construction) :
      • PDF 문서를 청크(Chunk) 단위로 분할하는 로직을 구현합니다.
      • LLM을 이용해 각 청크에서 개체(Entity)와 관계(Relation)를 추출하여 트리플(Ns,R,NtN_{s}, R, N_{t})을 생성하는 모듈을 개발합니다.
      • 각 노드에 해당 텍스트의 벡터 임베딩을 속성(Property)으로 저장하는 기능을 구현합니다.
    • 벡터 유사도 기반 탐색 (Retrieval) :
      • 사용자의 질문을 벡터로 변환하는 기능을 구현합니다.
      • 질문 벡터와 그래프 노드 벡터 간의 유사도를 계산하여 탐색을 시작할 ‘상위 K개 노드’를 선정하는 알고리즘을 코딩합니다.
      • 선정된 노드로부터 인접한 정보를 가져오기 위한 그래프 탐색(DFS 등) 로직을 구현합니다.
    • 답변 생성 파이프라인 (Generation) :
      • 검색된 그래프 컨텍스트를 LLM이 이해할 수 있는 텍스트 형태로 변환(Decoding)하는 모듈을 만듭니다.
      • 최종적으로 질문과 컨텍스트를 결합하여 답변을 생성하는 프롬프트 체인을 구축합니다.
Source: author's Notion note
Source: author’s Notion note
  • 실험 구성 (Experimental Setup) 개발된 시스템의 객관적인 성능을 측정하기 위한 실험 환경 정의입니다.
    • 기술적 설정 (Technical Settings) :
      • 사용 언어 및 프레임워크 : Python, LangChain
      • 사용 모델 : GPT-3.5-Turbo (LLM), text-embedding-ada-002 (Embedding).
      • 하이퍼파라미터 : 청크 크기(미정), 탐색 깊이(DFS Depth=default), 온도(Temperature=0) 등.

활용 데이터셋

  1. 재현용 데이터셋 ARAGOG (Advanced RAG Output Grading) 벤치마크 데이터셋
    • 출처 : : RAG 모델의 성능을 비교할 수 있는 데이터셋
    • 특성 : arXiv AI 분야 논문 16개에서 추출된 107개의 질의응답 쌍
  2. 확장 실험용 데이터셋 서울과학기술대학교 규정

확장 방향

  • 연구 확장 또는 서비스 확장 계획
    • 서비스 확장: 학칙/규정 기반 QA 챗봇 적용

평가 방법

  • 성능 평가 기준
    지표무엇을 평가하는가핵심 질문
    Context Precision검색 결과의 정확성가져온 문맥이 정말 관련 있는가?
    Context Recall검색 결과의 포괄성필요한 문맥을 충분히 가져왔는가?
    Faithfulness답변의 근거 충실성답변이 검색 문맥에 기반하고 있는가?
    Answer Relevancy질문-답변 관련성답변이 질문 의도에 맞는가?
    Answer Correctness답변의 정답성답변 내용이 실제로 맞는가?
    Answer Similarity정답과의 의미적 유사성생성 답변이 참조 정답과 비슷한가?
    • 문맥 정밀도 (Context Precision) → 상위 검색 결과 중 관련 있는 문맥이 얼마나 정확하게 포함되었는지 평가 k=1KPrecision@k×vkTotal num of relevant items in the top K results\frac{\sum_{k=1}^{K} Precision@k \times v_k}{\text{Total num of relevant items in the top K results}}
    • 문맥 재현율 (Context Recall) → 전체 정답 문맥 중 얼마나 많이 검색해냈는지 평가 Number of relevant contexts retrievedTotal number of reference contexts\frac{|\text{Number of relevant contexts retrieved}|}{|\text{Total number of reference contexts}|}
    • 신뢰도 (Faithfulness) → 생성된 답변의 주장 중 근거 문맥으로 뒷받침되는 비율 평가 Number of supported claims in the generated answerTotal number of claims in the generated answer\frac{|\text{Number of supported claims in the generated answer}|}{|\text{Total number of claims in the generated answer}|}
    • 답변 관련도 (Answer Relevancy) → 생성된 답변이 질문과 의미적으로 얼마나 관련 있는지 평가 1Ni=1Ncos(Egi,Eo)\frac{1}{N}\sum_{i=1}^{N}\cos(E_{g_i}, E_o)
    • 답변 정확도 (Answer Correctness) → 생성된 답변이 정답과 얼마나 정확하게 일치하는지 평가 TPTP+0.5×(FP+FN)\frac{|TP|}{|TP| + 0.5 \times (|FP| + |FN|)}
    • 답변 유사도 (Answer Similarity) → 생성된 답변과 참조 정답이 의미적으로 얼마나 유사한지 평가 aigia_i \cdot g_i
  • 비교군 (Baselines) :
    • 기존 Vector RAG : 단순 벡터 유사도 검색 방식.
    • 기존 Graph RAG : Cypher 쿼리 등을 이용한 그래프 검색 방식.
    • Vector + Graph RAG (Concatenate/Summarize) : 두 검색 결과를 단순히 합치거나 요약하는 방식.

references

  1. https://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE11995493
  2. HybridRAG: Integrating Knowledge Graphs and Vector Retrieval Augmented Generation for Efficient Information Extraction https://arxiv.org/pdf/2408.04948
  3. ARAGOG Dataset https://github.com/predlico/ARAGOG