Skip to main content
Summary

청킹은 검색의 단위다

RAG에서 문서를 한 번에 통째로 검색하지는 않습니다. 문서를 작은 조각으로 나누고, 질문과 가까운 조각을 찾아 모델에 넣습니다. 이 조각을 청크라고 합니다.

청킹은 단순한 전처리가 아닙니다. AI가 어떤 근거를 보게 될지 결정하는 설계입니다. 문서를 잘 나누면 질문에 필요한 문단이 정확히 검색됩니다. 반대로 잘못 나누면 관련 없는 조각이 검색되거나, 필요한 정보가 여러 조각으로 흩어져 답변이 흐려집니다.

문서를 잘게 나누는 Chunking 전략

너무 짧거나 너무 긴 청크의 문제

청크가 너무 짧으면 맥락이 사라집니다. 예를 들어 "이 설정은 관리자만 변경할 수 있다"라는 문장만 따로 저장되면, 어떤 설정을 말하는지 알기 어렵습니다. 검색은 되었지만 답변에 쓰기에는 근거가 부족합니다.

청크가 너무 길면 다른 문제가 생깁니다. 하나의 청크 안에 여러 주제가 섞이면 질문과 정확히 맞는 부분을 찾기 어렵습니다. 또한 검색된 내용을 프롬프트에 넣을 때 불필요한 문장이 많아져 비용과 토큰을 낭비합니다.

좋은 청크는 하나의 질문에 답할 만큼 충분한 맥락을 갖고, 동시에 불필요한 주제를 너무 많이 포함하지 않아야 합니다.

고정 길이 청킹

가장 단순한 방법은 일정한 길이로 자르는 것입니다. 예를 들어 500토큰 단위로 문서를 나누고, 앞뒤로 50토큰 정도 겹치게 만드는 방식입니다. 겹침을 오버랩이라고 합니다.

오버랩은 문장이나 설명이 경계에서 끊기는 문제를 줄여 줍니다. 하지만 너무 크게 잡으면 비슷한 청크가 많이 생겨 저장 공간과 검색 결과가 낭비됩니다.

고정 길이 청킹을 쓸 때는 세 가지를 봐야 합니다.

  • 한 청크가 하나의 주제를 담을 수 있는가

  • 문장이 중간에 잘리지 않는가

  • 오버랩이 중복을 과하게 만들지 않는가

기술적으로 구현하기 쉽기 때문에 첫 실험에는 좋습니다. 하지만 책, 매뉴얼, 긴 블로그 글처럼 구조가 있는 문서에는 더 나은 방법이 필요합니다.

문단과 제목 구조를 활용하기

문단 단위 청킹은 사람이 쓴 글의 흐름을 어느 정도 보존합니다. 블로그 글이나 짧은 노트처럼 문단마다 하나의 생각이 담긴 문서에 잘 맞습니다. 다만 문단이 너무 짧은 글에서는 여러 문단을 묶어야 합니다.

제목 구조 기반 청킹은 H2, H3 같은 소제목을 기준으로 나누는 방식입니다. 매뉴얼, 책 원고, 튜토리얼처럼 목차가 분명한 문서에 적합합니다. 이때 청크에는 본문뿐 아니라 상위 제목도 함께 넣는 것이 좋습니다.

예를 들어 "설치 방법"이라는 문단만 저장하는 것보다 "관리자 가이드 > 서버 설정 > 설치 방법"처럼 경로를 포함하면 검색과 답변 모두 더 정확해집니다.

의미 단위로 나누기

의미 단위 청킹은 길이보다 내용의 완결성을 우선합니다. 하나의 개념, 하나의 절차, 하나의 예제, 하나의 주장과 근거가 중간에 끊기지 않도록 나눕니다.

예를 들어 튜토리얼 문서에서 "1단계: API 키 만들기"와 "2단계: 환경 변수에 저장하기"는 각각 독립된 청크가 될 수 있습니다. 하지만 코드 예제와 그 설명은 함께 있어야 합니다. 설명만 검색되거나 코드만 검색되면 답변 품질이 떨어집니다.

의미 단위 청킹의 기준은 간단합니다. 이 조각만 읽어도 독자가 핵심을 이해할 수 있는가? 질문에 답할 근거로 사용할 수 있는가? 둘 다 아니라면 너무 잘게 나눈 것입니다.

문서 유형별 추천 전략

책은 장, 절, 소제목 구조를 유지하는 것이 중요합니다. 큰 제목 경로를 메타데이터로 저장하고, 본문은 절이나 의미 단위로 나눕니다. 긴 절은 다시 문단 묶음으로 나눕니다.

개인 노트는 형식이 일정하지 않은 경우가 많습니다. 날짜, 태그, 제목을 보존하고, 짧은 메모는 여러 개를 억지로 합치기보다 하나의 생각 단위로 저장하는 편이 좋습니다.

회의록은 발언 흐름보다 결정 사항, 액션 아이템, 논의 주제를 기준으로 나누는 것이 유리합니다. "누가 무엇을 언제까지 할 것인가"가 한 청크 안에 함께 있어야 합니다.

튜토리얼 문서는 단계별 청킹이 잘 맞습니다. 각 단계에는 목적, 설명, 코드, 주의사항을 함께 넣습니다. 사용자가 "오류가 났을 때 어떻게 하지?"라고 물을 수 있으므로 문제 해결 섹션은 별도 청크로 분리해도 좋습니다.

청킹의 정답은 하나가 아닙니다. 중요한 것은 문서의 구조와 사용자의 질문 방식을 함께 보는 것입니다. RAG에서 좋은 검색은 좋은 청크에서 시작됩니다.

책 목록

처음 만나는 RAG와 AI 지식베이스: 내 문서와 노트를 이해하는 AI 만들기

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기