청킹은 RAG 시스템에서 긴 문서를 검색과 임베딩에 쓸 단위로 나누는 전처리 작업입니다. 나눈 조각을 청크(chunk)라고 합니다. 기억하기 쉽게 정보를 묶는 인지심리학 용어와 이름은 같지만, RAG에서는 모델이 처리하고 검색할 문서 단위를 만드는 작업을 뜻합니다.
RAG 파이프라인에서 청킹이 하는 일
많은 RAG 시스템은 긴 문서를 나눈 뒤 각 청크를 임베딩해 저장합니다. 질문이 들어오면 문서 전체 대신 질문과 관련된 청크를 찾아 답변 모델에 전달할 수 있습니다. 이때 청크는 임베딩 모델의 토큰 한도 안에 들어가야 하며, 검색된 내용만으로도 뜻을 이해할 수 있어야 합니다. 충분히 작은 문서는 나누지 않고 처리할 수도 있습니다.
대표적인 분할 방법은 크기, 문서 구조와 의미 중 무엇을 경계로 삼는지에 따라 나뉩니다.
- 고정 크기: 정한 토큰 수나 글자 수에 맞춰 자릅니다. 구현이 단순하지만 문장이나 문단 중간이 끊길 수 있습니다.
- 재귀 분할: 문단처럼 큰 단위를 먼저 보존하고, 크기 제한을 넘는 부분만 문장이나 단어 등 더 작은 단위로 나눕니다.
- 문서 구조 기반: 마크다운 헤딩이나 HTML 태그를 경계로 같은 절의 내용을 묶습니다.
- 시맨틱 청킹: 인접한 문장 등의 임베딩을 비교해 주제가 달라지는 지점을 분할 경계로 삼습니다.
청크 오버랩은 앞 청크의 끝부분을 다음 청크의 시작에도 넣는 등 일부 내용을 겹치게 나누는 방법입니다. 경계에서 설명이 끊기는 문제를 줄일 수 있지만, 중복해서 저장하고 검색할 내용도 늘어납니다. 문서 구조만으로 충분히 문맥을 보존할 수 있다면 오버랩 없이 나눌 수도 있습니다.
문서를 나누면 수치는 남아 있어도 어느 회사의 실적인지, 어느 시점의 자료인지 청크 안에서 알 수 없는 경우가 생깁니다. Anthropic의 Contextual Retrieval은 문서 전체를 참고해 만든 짧은 문맥 설명을 각 청크 앞에 붙인 뒤 임베딩과 검색에 반영하는 기법입니다. 청크 크기를 늘리는 것 외에도, 빠진 배경을 보충하는 방식으로 문제를 줄일 수 있습니다.
RAG 청킹과 웹 콘텐츠 작성의 차이
일부 AEO, GEO 조언은 AI가 이해하기 쉽도록 웹페이지의 문단이나 글을 잘게 쪼개라고 권합니다. Google은 이런 별도 분할을 요구하지 않습니다. 한 페이지 안의 여러 주제와 세부 내용을 파악해 질문에 맞는 부분을 보여 줄 수 있다고 설명합니다. RAG 구축자가 내부 문서를 나누는 방법을 웹 콘텐츠 작성 규칙으로 그대로 옮길 근거는 없습니다.
같은 가이드에서 권하는 헤딩과 문단 구조는 독자가 내용을 따라 읽고 필요한 부분을 찾도록 돕는 장치입니다. 의미에 맞는 HTML 요소는 스크린리더 탐색에도 도움이 됩니다. 문장을 일정 개수로 제한하거나, AI에 맞춘 토큰 수를 글마다 적용하라는 뜻은 아닙니다.
자체 RAG의 청킹 품질을 평가하는 방법
실제 문서와 대표 질문으로 검색을 실행한 뒤, 정답이 포함된 청크를 찾았는지 살펴봅니다. 필요한 설명이 두 청크 사이에서 끊겼다면 경계나 오버랩을 조정하고, 불필요한 주제까지 함께 검색된다면 크기나 분할 기준을 바꿔 비교합니다. 임베딩 모델과 문서 종류가 달라지면 결과도 달라질 수 있으므로 같은 질문으로 변경 전후를 평가해야 합니다.
자주 묻는 질문
청크 크기는 몇 토큰이 적당한가요?
문서 종류와 질문 유형에 따라 달라집니다. 공식 기술 문서에서도 수백에서 천 토큰 안팎의 여러 예시를 제시하지만, 그 숫자만 복사하기보다는 답에 필요한 문맥이 검색 결과에 남는지 평가해야 합니다. 임베딩 모델의 입력 한도도 확인합니다.
문단을 짧게 쪼개면 AI 검색에 잘 걸리나요?
Google은 AI가 이해하도록 웹 콘텐츠를 잘게 나눌 필요가 없다고 명시합니다. 주제가 바뀔 때 문단을 나누고 소제목으로 내용을 안내하는 것은 유용하지만, 문단을 짧게 만드는 행위 자체가 AI 인용을 늘린다는 뜻은 아닙니다.
그럼 헤딩과 문단 구조는 왜 강조되나요?
독자가 원하는 내용을 찾고 스크린리더로 이동하기 쉽기 때문입니다. 명확한 구조는 기계가 문서를 읽는 데도 도움이 되지만, Google의 설명은 독자의 이용과 접근성을 우선합니다.
청킹과 컨텍스트 윈도우는 무슨 관계인가요?
모델은 컨텍스트 윈도우에 정해진 토큰 한도 안에서 입력을 처리합니다. 긴 문서를 한도에 맞는 단위로 나누는 것이 청킹의 목적 중 하나입니다. 모델의 한도에 비해 문서가 충분히 작다면 나누지 않고 넣을 수도 있습니다.
함께 알아두면 좋은 용어
- RAG: 외부 자료를 검색해 답변 생성에 참고하는 방식
- 임베딩: 텍스트 등의 의미나 특징을 수치 벡터로 표현하는 방식
- 토큰: 모델이 텍스트를 처리할 때 사용하는 기본 단위
- AI 검색 최적화: AI 검색에서 콘텐츠가 발견되고 답변에 활용되도록 개선하는 작업