본문 바로가기
C.W.K.
Stream
Lesson 03 of 10 · published

논지를 놓치지 않는 청크 전략

~18 min · context, chunking, rag

Level 0수련생
0 XP0/100 lessons0/14 achievements
0/120 XP to next level120 XP to go0% complete

500토큰은 출발점이지 법칙이 아니야

처음에는 흔히 500토큰씩 자르고 50토큰을 겹쳐. 평범한 산문에는 무난하지만 어디에나 맞는 답은 아니야. 한 문단이 2,000토큰인 법률 문서, 함수와 클래스가 경계인 코드, 대화 차례 하나가 의미 단위인 채팅 기록에는 오히려 내용을 망가뜨려. 청크의 크기와 경계는 원자료의 구조를 따라야 해.

자료에 맞춰 고를 네 가지 방식

  • 구조에 따른 분할 — 제목, 절, 함수 정의, 기록 한 건을 경계로 잘라. 문서가 쓰인 방식과 청크를 맞춰.
  • 겹치는 이동 창 — 뚜렷한 구조가 없는 일반 산문에 써. 경계에 걸친 문장이 이웃 문장과 떨어지지 않도록 일부를 겹쳐.
  • 의미에 따른 분할 — 임베딩 거리가 크게 바뀌는 지점에서 잘라. 형식이 자유로운 글에 유용해.
  • 맥락 머리말 — 각 청크에 상위 절을 한 문장으로 요약해 붙여. 검색할 때 청크가 원래 주제를 잃지 않게 해.

논지가 온전히 남았는지 시험해

각 방식으로 여러 문단에 걸친 주장이나 단계별 절차처럼 긴 논지를 잘라봐. 전제와 결론이 한 묶음 안에 남는지 확인해야 해. 청크 경계가 둘을 갈라놓으면 검색은 전제나 결론 하나만 내놓고, 모델은 반쪽짜리 근거로 답하게 돼.

Code

맥락을 덧붙인 청크 머리말·python
def add_context_header(chunk: str, source_title: str, section: str) -> str:
    return (
        f"<source>{source_title}</source>\n"
        f"<section>{section}</section>\n"
        f"<content>\n{chunk}\n</content>"
    )

# After embedding the contextualized chunk, retrieval becomes
# robust to keyword drift across sections.

External links

Exercise

문서 스무 개를 500토큰 이동 창, 제목에 따른 구조 분할, 맥락 머리말을 붙인 분할의 세 방식으로 각각 나눠봐. 같은 작은 질문 모음을 검색에 넣고 어떤 방식이 알맞은 청크를 가장 잘 찾는지 비교해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.