RAG 관련 질의응답 정리

wldbs._.·2025년 12월 17일

RAG

목록 보기
21/21
post-thumbnail

고객사의 PoC를 올해 8월부터 11월까지 약 3개월간 진행했고, 최종 보고를 11월 말에 진행하였다.
입사 후 처음으로 진행한 프로젝트의 발표를 맡게 되어서 무척 떨렸으나,, 그래도 했다!

  • 주제: AI기반 연구지원 체계 구축 ← 프로젝트에 관련된 후기는 곧 남기겠다.

고객사 측에서 최종보고에 포함되었으면 좋겠다고 요청한 내용과, 발표 후 질의응답 시간에 나왔던 내용들을 아래에 정리하겠다.


🎯 질의응답

1. 임베딩 조정 vs 파인 튜닝 (Fine-Tuning)

임베딩 조정(embedding tuning)파인튜닝(fine-tuning)은 서로 다른 개념이다.

차이를 명확히 정리하면:

1️⃣ 임베딩 조정

  • 목적: 질문과 문서 간 유사도 계산을 더 잘하게 만들기
  • 방식:
    1. 기존 언어모델이 제공하는 임베딩 벡터를 그대로 사용하거나
    2. 특정 도메인/데이터에 맞춰 임베딩 벡터의 스케일, 가중치, 혹은 유사도 계산 방식을 조정
  • 특징:
    • 모델 자체를 재학습하지 않고도 적용 가능
    • 예: Milvus에서 cosine similarity 계산 시 특정 키워드 중요도를 높이거나, 벡터 후처리로 도메인 특화 반영
  • 장점: 가벼움, 빠른 적용 가능
  • 단점: 근본적으로 모델 지식 변경은 아님

2️⃣ 파인튜닝

  • 목적: 모델 자체가 특정 도메인/업무에 맞게 답변을 더 잘하게 학습
  • 방식:
    • 모델의 가중치를 실제 데이터로 재학습
    • 예: 법률 문서 질문-답 데이터로 GPT 모델 학습
  • 특징:
    • 모델이 직접 도메인 지식을 내장
    • 계산 비용과 시간이 높음
  • 장점: 도메인 특화 성능 극대화
  • 단점: 재학습 필요, 모델 버전 업그레이드 시 다시 진행해야 함

정리하면:

  • 임베딩 조정 → 벡터/유사도 측면에서 미세 튜닝, 파인튜닝 아님
  • 파인튜닝 → 모델 가중치를 재학습하여 답변 능력 자체를 개선

2. 메타정보

메타정보는 원본 데이터 자체가 아니라, 그 데이터를 설명하는 정보이다. (= 문서 외부에서 문서를 설명하는 정보)

✅ 간단히 말해, “이 문서가 무엇인지, 어디에 속하는지, 어떤 구조인지 알려주는 부가 설명”이다.

예를 들어) 문서가 있고, 그 문서 안에 텍스트가 있을 때

  • 원본 데이터: 문서 내용 자체(텍스트)
  • 메타정보: 그 문서를 설명하는 모든 부가 정보

🔽 RAG에서 사용하는 메타정보 예시

메타정보설명
doc_id문서를 구분하는 고유 ID
title문서 제목
category이 문서가 어떤 분야에 속하는지
source발행 기관 또는 수집 경로
year문서의 시기
page_num원본 페이지 번호
chunk_order문서 내에서 청크가 몇 번째인지
chunk_id청크 식별자
abstract / keyword문서 내용을 추출·요약한 추가 정보

🔽 왜 필요한가?

메타정보는 아래 목적을 위해 존재한다.

  1. 검색 정확도 향상

    예: 분야, 연도, 출처 정보로 필터링 가능.

  2. 문서 구조 복원

    예: chunk_order, page_num이 있어야 원본 문서 흐름 유지.

  3. 후처리 및 UI 표시

    예: 검색된 문서의 제목, 페이지 번호를 사용자에게 제공.

  4. 추후 데이터 관리 및 확장성 확보

    예: doc_id 기준으로 문서 전체를 관리 가능.

메타정보 = RAG 시스템이 문서를 잘 이해·검색·관리할 수 있도록 붙이는 설명 데이터


3. 메타데이터 vs 메타정보

1️⃣ 메타정보 vs 메타데이터

  • 메타정보(Meta-information): 데이터 자체가 아니라, 데이터를 설명하거나 구조화하는 정보.
    • 예: 문서의 제목, 작성자, 발행일, 챕터, 섹션 등
    • RAG용으로 문서에 부여하는 정보 전체를 의미한다. 이 중 상당수는 문서 관리나 검색 품질 향상 목적!
    • ✅ 이 메타데이터 중 일부만(→ 메타데이터 중 필요한 최소 정보만) 벡터 DB의 컬렉션의 필드로 저장된다.
  • 메타데이터(Metadata): 메타정보를 DB에서 저장할 수 있는 구조화된 형태로 나타낸 것.
    • 예: Milvus 컬렉션 필드 doc_id, chunk_id, source, page_num

즉, 메타정보가 개념이라면, 메타데이터는 그 개념을 구현한 데이터 구조라고 생각하자.

2️⃣ 메타정보 구축 방식

  • 마크다운이나 특정 포맷을 쓸 수도 있지만, 필수는 아니다.
  • 나는 해당 프로젝트에서: OCR로 나온 JSON에서 필요한 값 추출 → 필드별로 매핑하여 메타정보를 구축
    • 예:
      {
        "doc_id": "12345",
        "title": "연구보고서 2025",
        "author": "홍길동",
        "page": 3,
        "content_chunk": "본문 내용..."
      }
      
    • 이런 JSON 구조에서 doc_id, title, author, page 등은 메타정보이고, Milvus에 넣을 때 필드로 구성하면 메타데이터가 된다.

정리하면:

  • 메타정보 = 데이터를 설명하는 정보(개념)
  • 메타데이터 = 그 정보를 DB 필드/구조로 구현한 것 [RAG 구축을 위해 문서에 부여한 모든 구조적 정보]
  • 벡터 DB는 저장 효율과 검색 속도를 위해 모든 메타데이터를 넣지 않고, 검색·필터링에 필요한 핵심만 저장하는 구조이다.

🎯 요약

  1. 임베딩 조정은 문서 검색 품질을 높이기 위해 벡터 표현과 가중치를 최적화하는 과정이다.

  2. 임베딩 조정은 검색 문제를, 프롬프트 조정은 답변 품질 문제를 해결하는 데 효과적이다.

  3. 메타데이터는 문서 식별·구조·범주 정보를 포함해 RAG 검색의 정확도를 높인다.

  4. 메타정보는 Markdown 등 구조적 형식으로 구축해 모델이 문서 구조를 이해하도록 돕는다.

  5. RAG는 새 데이터 추가 시 전체 재임베딩 여부를 상황에 따라 결정해야 한다.

  6. 데이터 증가나 도메인 편향은 기존 정확도에 영향을 줄 수 있어 임베딩 재조정이 필요할 수 있다.

  7. 모델이 변경되면 벡터 공간과 답변 방식이 달라지므로 임베딩과 프롬프트 모두 다시 조정해야 한다.

  8. RAG는 초기 구축 후에도 지속적인 피드백과 유지보수가 필수적이다.

profile
공부 기록용 24.08.05~ #LLM #RAG

0개의 댓글