RAG - 2. 분할

문건희·2025년 2월 25일

RAG

목록 보기
1/12

2. 분할(Chunking)에서 추가로 고려해야 할 요인들

Chunking은 RAG의 정보 검색 정확도와 문맥 보존성에 큰 영향을 미칩니다.
적절한 분할 전략을 사용하지 않으면, 검색된 정보가 너무 적거나 문맥이 손실될 위험이 있습니다.


✅ 추가 요인 및 설명

1) Chunking 방법론

설명:
Chunk를 분할하는 방법 자체가 검색 성능과 생성 결과에 영향을 미칠 수 있음.

  • 고정 길이 분할 (Fixed Size Chunking) → 특정 토큰 개수(예: 512토큰) 기준으로 분할
  • 의미 단위 분할 (Semantic Chunking) → 문장, 문단, 섹션 기준으로 분할
  • 하이브리드 분할 (Hybrid Chunking) → 의미 단위 분할 후 길이가 길면 고정 길이로 자름

예시:

  • 고정 길이 분할
"이 제품은 성능이 뛰어나고 배터리 수명이 길다. 고객 만족도가 높다. 가격도 합리적이다."
  • 10 토큰 단위로 분할 시:

    ["이 제품은 성능이 뛰어나고", "배터리 수명이 길다. 고객 만족도가", "높다. 가격도 합리적이다."]
  • 문장이 중간에 잘려 검색될 경우 의미 전달이 어려울 수 있음.

  • 의미 단위 분할

["이 제품은 성능이 뛰어나고 배터리 수명이 길다.", "고객 만족도가 높다.", "가격도 합리적이다."]
  • 문장 단위로 분할하면 검색 시 의미를 더 잘 보존할 수 있음.

2) Chunk 크기와 문서 타입 간의 관계

설명:
Chunk 크기는 문서의 유형에 따라 다르게 설정해야 함.

  • 뉴스 기사, 블로그: 일반적으로 256~512 토큰 적절
  • 연구 논문, 법률 문서: 긴 문맥이 필요하므로 1024 토큰 이상 필요
  • FAQ, 코드 문서: 작은 단위(128~256 토큰)로 쪼개야 검색 정확도가 높아짐

예시:

  • 연구 논문:

    • 256 토큰 단위로 자르면 논리적 흐름이 깨질 가능성이 있음.
    • 1024 토큰으로 자르면 문맥이 유지됨.
  • 고객 FAQ:

    • “반품 절차” 관련 질문이 있을 때, 반품 절차 전체가 하나의 Chunk로 존재해야 함.
    • 너무 길면 검색이 느려지고, 너무 짧으면 핵심 정보가 빠질 수 있음.

3) Overlap 크기 조정

설명:

  • Chunk 간 오버랩(겹침 영역)을 적절히 조정하면 검색 성능이 향상됨.
  • 너무 작으면 검색된 문서가 문맥을 충분히 포함하지 못할 수 있음.
  • 너무 크면 중복 데이터가 많아지고 검색 속도가 느려짐.

예시:

  • Overlap이 0일 때 (겹치는 부분 없음)

    ["이 제품은 성능이 뛰어나고 배터리 수명이 길다.", "고객 만족도가 높다.", "가격도 합리적이다."]

    → 검색 시 “배터리 수명”이 포함된 Chunk를 찾으면, 고객 만족도에 대한 정보를 놓칠 가능성이 있음.

  • Overlap이 20%일 때

    ["이 제품은 성능이 뛰어나고 배터리 수명이 길다.", 
     "배터리 수명이 길다. 고객 만족도가 높다.", 
     "고객 만족도가 높다. 가격도 합리적이다."]

    → 검색 시 문맥 연결이 유지되어 더 정확한 답변이 가능해짐.


4) Hierarchical Chunking (계층적 분할)

설명:

  • 문서의 구조적 정보를 유지하면서 검색 성능을 높이는 방법.
  • 문서를 작은 단위큰 단위로 이중 저장하여 검색 효율을 높임.
  • 작은 Chunk가 검색되면, 상위 Chunk도 함께 제공하는 방식.

예시:

  • 문서 구조

    - 1장: 인공지능 개요
      - 1.1 AI의 역사
      - 1.2 AI의 응용 분야
  • Chunk 저장 방식:

    • “1장 전체”를 큰 단위로 저장
    • “1.1”과 “1.2”를 작은 단위로 저장
    • 검색 시 “1.1 AI의 역사”가 검색되면, 1장 전체도 함께 제공하여 문맥 유지

5) Chunk 내 정보 밀도 조절

설명:

  • Chunk가 같은 길이라도 포함된 정보량(밀도)에 따라 검색 성능이 다름.
  • 정보가 많은 Chunk는 핵심 내용을 잃지 않도록 해야 함.

예시:

  • 불필요한 정보 포함 (정보 밀도 낮음)
"이 제품은 최근 출시되었으며, 2023년 3월 15일에 공개되었습니다. 색상은 블루, 레드, 블랙이 있습니다. 이 제품은 성능이 뛰어나고 배터리 수명이 깁니다."
  • 최적화된 Chunk (정보 밀도 높음)
"이 제품은 성능이 뛰어나고 배터리 수명이 깁니다. 고속 충전을 지원하며 30분 내 80% 충전이 가능합니다."

→ 검색 시 필요한 정보만 포함하여 효율적인 Retrieval 가능.


📌 정리

추가 요인설명
Chunking 방법고정 길이, 의미 단위, 하이브리드 방식 선택
문서 타입별 크기 조정문서 종류에 따라 적절한 Chunk 크기 설정
Overlap 크기문맥 연결성을 유지하기 위해 적절한 오버랩 설정
계층적 Chunking큰 문서와 작은 단위를 함께 저장하여 검색 효율 증대
Chunk 내 정보 밀도검색 효율을 높이기 위해 핵심 정보만 유지
도메인 최적화코드, JSON, 대화 데이터 등 특수 문서에 적합한 방식 사용

0개의 댓글