청크가 잘게 끊겨 답이 단절된다 — chunk size가 아니라 연결과 재조합이 답이다

← 전체 목차 · 이전: 장문서 청킹 · 다음: PDF 문서는 어떻게 처리하는가

"chunk를 더 크게 잘라라"는 답은 양방향으로 다 틀리는 손잡이를 돌리는 것이다. 작게 자르면 전제 조건·후속 설명이 통째로 날아가 모델이 짐작으로 빈틈을 메우게 되고, 크게 자르면 무관한 내용이 대거 섞여 들어와 추론이 느려지고 환각이 오히려 심해진다. 문서 02의 Overlap이 절단면 자체를 보호하는 처방이라면, 이 문서는 Overlap을 붙여도 여전히 남는 문제 — 즉 "완결된 하나의 업무 로직이 애초에 여러 chunk에 분산 저장된 경우"에서 시작한다.

판정 기준: chunk 크기를 보지 말고 세 가지만 본다

답변 단절 여부를 판단할 때
  ├─ ✗ chunk 크기로 보지 않는다
  └─ ✓ 다음 세 가지로만 본다
       1. 조각 연관 전략
       2. 상하문 보완 메커니즘
       3. 전역 의미 재조합 능력

기본 실패 경로: 기계적 절단이 만드는 필연적 단절

고정 길이로 기계적으로 절단(의미·단락 구조 무시)


완결된 업무 로직 하나가 두세 조각으로 강제 분산


질문 시 그중 한 조각만 리콜 — 전제 조건·후속 설명이 함께 소실


모델이 잔결 조각을 받고 짐작으로 빈틈을 메움


논리 단절 → 답변 단절 → 환각 빈발

메커니즘 ①: 상하문 연관 보완 — Overlap과는 다른 층위

Overlap(중첩)상하문 연관 보완
동작 시점적재 시 사전에 겹쳐 저장조회 시 명중 후 온디맨드로 소환
비용 구조모든 chunk가 일률적으로 여분 텍스트를 짊어짐잔결 조각이 명중했을 때만 인접분을 추가 소환
해결하는 것절단면이 핵심 개념 한가운데를 지나는 것하나의 완결 로직이 애초에 여러 조각에 분산된 것

동작 방식:

적재 단계: chunk를 단독 저장하지 않고, 해당 조각의 「상위 인접 ID」「하위 인접 ID」를 함께 기록
조회 단계: 잔결 조각이 명중하면, 프레임워크가 자동으로 전후 인접 내용을 연동 소환해 빠진 의미를 보완

가산 없이 chunk를 무작정 키우지 않고도, 필요한 순간에만 정밀하게 로직을 이어 붙인다.

메커니즘 ②: 의미 재조합 집계층 — 검색과 생성 사이에 삽입

다중 조각이 리콜된 뒤 곧바로 모델에 넘기지 않고, 그 사이에 집계층을 하나 끼워 넣는다.

다중 조각화 조각 리콜
      │  ✗ 곧바로 모델에 넘기지 않는다

   집계층(의미 재조합)
      ├─ 원문의 의미 구조·논리 순서로 재정렬
      ├─ 중복 제거
      └─ 빈틈 보완

완결되고 매끄러우며 논리적으로 폐합된 컨텍스트

   모델에 전달해 답변 생성

핵심은 재정렬의 기준이 검색 점수가 아니라 원문 자체의 구조·순서라는 점이다. Top-K 점수순으로 이어 붙이면 문서의 원래 논리를 따라가지 못한다.

선택 판단표

접근대가결과
chunk를 작게 유지정보 잔결답변 단절
chunk를 무작정 키움무관 내용 혼입, 추론 지연 증가환각·답변 부정확 심화
연관 보완 + 의미 재조합조회·집계 단계에 엔지니어링 투자chunk 크기 조정 없이 논리 폐합 확보

핵심 통찰

  1. chunk size는 양방향으로 실패하는 손잡이이지 해법이 아니다 — 작게 돌리면 정보 잔결, 크게 돌리면 무관 내용 범람이라는 서로 반대 방향의 실패가 나온다. 한 파라미터가 어느 쪽으로 조정해도 다른 문제를 만든다면, 그 자체가 "문제가 이 층위에 있지 않다"는 신호다.
  2. 답변 단절의 원인은 검색 정밀도가 아니라 "의미 완결성"이다 — 명중률이 아무리 높아도 명중한 것이 잔결 조각이면 결과는 똑같이 단절된다. 리콜은 됐지만 리콜된 것이 완결된 단위가 아닌 경우, 튜닝 대상은 검색 알고리즘이 아니라 저장·조합 구조다.
  3. 절단은 "자르기"이지만 저장은 "위상(topology)"을 남겨야 한다 — 상하문 연관 보완의 본질은 조각 간 인접 관계를 1급 데이터로 적재 시점부터 보존하는 것이다. 그래야 조회 단계에서 단일 점 명중에 계속 걸어야 하는 도박이 아니라, 한 점에서 하나의 연결된 영역으로 확장할 수 있다.
  4. 연관 보완과 Overlap 확대는 비용 구조가 다른 전략이다 — Overlap 확대는 무차별적으로 모든 chunk에 여분 비용을 부과하지만, 연관 보완은 잔결 조각이 명중했을 때만 온디맨드로 인접분을 끌어온다. 겉보기엔 비슷해 보여도 하나는 사전 비용, 하나는 사후 비용이다.
  5. 집계층이 하는 일은 "재정렬"이 아니라 "재조합"이다 — 단순히 top-k 점수순으로 이어 붙이는 것과, 원문의 의미 구조·논리 순서로 다시 짜 맞추는 것은 다른 작업이다. 후자만이 "완결되고 논리적으로 폐합된 컨텍스트"를 만든다.
  6. 답변 단절은 세 가지 독립된 능력으로 분해할 수 있는 공학 지표다 — 조각 연관 전략, 상하문 보완 메커니즘, 전역 의미 재조합 능력은 각각 따로 설계하고 따로 평가할 수 있다. 분해할 수 있으면 어느 층에서 새는지 개별적으로 개선하고 검증할 수 있다.
  7. Demo와 프로덕션의 분수령은 모델이 아니라 메커니즘이다 — 같은 임베딩 모델, 같은 청킹 파라미터를 쓰고도 연관 보완과 의미 재조합 두 메커니즘의 유무가 결과를 가른다. "모델을 더 좋은 것으로 바꾼다"는 이 두 메커니즘의 부재를 감출 수 없다.

엔지니어링 실전 Tips

  • 먼저 원인을 확인하고 파라미터부터 만지지 말 것: 온라인 단절 배드케이스를 모아 리콜된 조각 자체가 잔결인지(핵심 전제·후속 설명이 다른 chunk로 잘려 나갔는지) 확인한다. 잔결이 맞다면 chunk size 문제가 아니다.
  • 청킹 단계에서 최소한 단락 구조는 감지할 것: 순수 고정 길이 절단은 피하고, 완결된 업무 로직·조항 하나가 두세 조각으로 강제 분할되는 것을 줄여야 뒷단 보완 부담이 줄어든다.
  • 인접 ID 기록은 모든 보완 동작의 전제다: chunk를 단독으로 저장하지 말고 상위·하위 인접 ID를 함께 적재해야, 조회 단계의 연동 소환이 성립한다.
  • 연동 소환은 "필요할 때만" 확장할 것: 잔결 조각이 명중했을 때만 전후 내용을 끌어오는 것이지, 모든 chunk를 일률적으로 키우는 것이 아니다 — 확장 반경과 정지 조건(몇 홉까지 소환할지)을 명시적으로 정의해야 변형된 chunk 확대로 퇴화하지 않는다.
  • 집계층에서 중복 제거를 빠뜨리지 말 것: 인접 조각을 연동 소환하면 겹치는 내용이 필연적으로 생긴다 — 통합·보완과 함께 중복 제거를 반드시 넣을 것.
  • 재조합 기준은 원문 구조이지 검색 점수가 아니다: 재정렬 근거를 문서 자체의 순서로 되돌려야지, 검색 스코어 순서를 그대로 답습하면 안 된다.
  • "논리 폐합"을 검수 기준으로 삼을 것: 집계층 산출물만 따로 떼어 읽어 보고 그 자체로 말이 되는지 확인하는 것이 가장 저렴한 사람 검수 방법이다.
  • 더 파고들 방향: 의미 감지형 청킹 전략(단락·조항 경계 기반 분할)의 구체 구현, 연관 보완의 확장 반경과 정지 조건 설계, 집계층을 순수 규칙 기반으로 할지 모델 기반 의미 경계 판단을 도입할지의 선택, 세 가지 판정 기준(연관·보완·재조합)을 각각의 관측 지표로 만들어 문서 02의 회귀 평가셋과 통합하는 방법.