2026.11.07 접속자 156명
로그인 회원가입
HOT
[프롬프트] Claude한테 프롬프트 짜는데 자꾸 결과가 산으로 가는 거 같아요 [프롬프트] ChatGPT한테 논문 요약 시킬 때 어떤 프롬프트 쓰세요? [AI뉴스] 요즘 ChatGPT, Claude, Gemini 뭐 써야 할까? [AI뉴스] 국내 AI 기본법 시행 시작했는데 아직 헷갈리는 거 많네요 [AI뉴스] 요즘 AI 기업들 뭐하는 거예요? 진짜 스피드가 미친 수준이네요 ㅋㅋ [프롬프트] 프롬프트 쓰다 보니 느낀 건데, 결국 질문 잘하는 능력이 핵심이더라요 [AI뉴스] 2026년 AI 규제 흐름 정리하는데 이거 맞나요? [AI뉴스] 요즘 딥러닝 논문 트렌드 뭐가 핫한 거 같아요? [프롬프트] 데이터 전처리 프롬프트 이거 효과 있던데 공유합니다 [프롬프트] 코드 리뷰 요청할 때 쓸 만한 프롬프트 있으신가요? [프롬프트] Claude한테 프롬프트 짜는데 자꾸 결과가 산으로 가는 거 같아요 [프롬프트] ChatGPT한테 논문 요약 시킬 때 어떤 프롬프트 쓰세요? [AI뉴스] 요즘 ChatGPT, Claude, Gemini 뭐 써야 할까? [AI뉴스] 국내 AI 기본법 시행 시작했는데 아직 헷갈리는 거 많네요 [AI뉴스] 요즘 AI 기업들 뭐하는 거예요? 진짜 스피드가 미친 수준이네요 ㅋㅋ [프롬프트] 프롬프트 쓰다 보니 느낀 건데, 결국 질문 잘하는 능력이 핵심이더라요 [AI뉴스] 2026년 AI 규제 흐름 정리하는데 이거 맞나요? [AI뉴스] 요즘 딥러닝 논문 트렌드 뭐가 핫한 거 같아요? [프롬프트] 데이터 전처리 프롬프트 이거 효과 있던데 공유합니다 [프롬프트] 코드 리뷰 요청할 때 쓸 만한 프롬프트 있으신가요?
프롬프트

RAG 구현할 때 청킹 전략 어떻게 하세요?

AI새싹 2026.07.14 14:04 조회 335 추천 13 댓글 7건
요즘 LLM 프로젝트에서 RAG를 붙이려고 하는데 문서 청킹 부분에서 자꾸 막혀요. 단순하게 고정 크기로 쪼개다 보니까 문맥이 끊기는 경우가 많더라고요. 특히 테이블이나 코드 블록이 섞여 있으면 정말 답답합니다.

지금 시도해본 방식들을 정리해보면, 먼저 토큰 단위로 청킹하는 게 가장 무난하다는 생각이 드네요. 고정 크기 청크(보통 512~1024 토큰)에 오버랩을 주는 방식인데, 이렇게 하면 청크 경계에서 문맥 손실을 어느 정도 줄일 수 있습니다. 다만 임베딩 계산량이 늘어나는 게 단점이긴 합니다.

요새 떠는 의미론적 청킹도 실험 중이거든요. 문장 단위로 끊고 임베딩 유사도 기반으로 묶는 방식인데, 구현은 좀 복잡하지만 결과가 확실히 낫더라고요. 다만 전처리 시간이 생각보다 오래 걸려서 대용량 데이터셋에서는 고민이 됩니다. 누군가 효율적으로 처리하는 팁이 있으면 듣고 싶네요.

그리고 한국어 자료 다루실 분들은 청킹 전에 품질 검사가 정말 중요합니다. OCR 오류라든지 형식 깨진 부분을 먼저 정리해야 나중에 RAG 품질이 안 떨어져요. 저는 최근에 정규식으로 간단하게라도 거르는 스텝을 앞에 붙였는데 효과가 꽤 있었습니다.

혹시 프로덕션 환경에서 동적으로 청킹 크기를 조정하는 분 계신가요? 문서 타입에 따라 최적의 청크 크기가 다를 것 같은데 어떻게 대응하고 계신지 궁금합니다.
추천 13 비추천 0
댓글 7

댓글목록

profile_image
조용한엔지니어
저도 의미론적 청킹 시도했는데 정말 결과가 좋더라고요. 다만 말씀하신 대로 전처리 시간이 문제네요. 배치 사이즈 줄이고 병렬 처리하니까 좀 개선됐어요. 그리고 한국어 같은 경우 형태소 분석기 거쳐서 청킹하면 품질이 훨씬 나아집니다.
profile_image
딥러닝장인
저도 비슷한 문제로 고생했는데 결국 하이브리드 방식으로 가더라고요. 문서 구조를 먼저 파악해서 테이블이나 코드 블록은 따로 처리하고, 일반 텍스트만 의미론적 청킹하는 식으로요. 전처리 시간 단축하려면 배치로 임베딩 먼저 계산해두고 캐싱해두면 꽤 도움이 됩니다. 한국어 자료는 정말 형식이 중구난방이라 사전 정제가 거의 필수네요.
profile_image
딥러닝장인
저도 비슷한 문제로 좀 헤맸는데, 결국 하이브리드 방식으로 가니까 괜찮더라고요. 의미론적 청킹은 좋긴 한데 전처리 비용이 정말 크죠. 그래서 먼저 문장 단위로 쪼갠 다음에, 인접한 문장들의 유사도가 일정 이상이면 묶는 방식으로 처리했어요. 완전한 의미론적 청킹보다는 빠르면서도 어느 정도 품질을 유지할 수 있습니다. 한국어 처리는 정말 말씀하신 대로 전처리가 핵심인 것 같아요.
profile_image
현실주의자
의미론적 청킹 시간 문제 정말 공감돼요 ㅠㅠ
profile_image
딥러닝장인
의미론적 청킹 전처리 시간이 네요 ㅠㅠ
profile_image
인공지능개그맨
저도 의미론적 청킹 써보다가 전처리 시간 때문에 결국 하이브리드 방식으로 갔어요. 문서 타입별로 청킹 전략을 다르게 가져가니까 훨씬 낫더라고요. 코드는 함수 단위로, 일반 텍스트는 문장 기반으로 묶고 오버랩만 줬는데 성능도 괜찮고 속도도 괜찮아요.
한국어 전처리는 정말 중요하더라고요. 저도 처음엔 무시했다가 OCR 오류 때문에 임베딩이 이상하게 나와서 한 번 당했거든요. 청킹 전에 정규식으로 기본 정제를 한 번 거치는 게 시간 낭비처럼 보여도 결과적으로는 확실히 낫습니다.
profile_image
코드리뷰어
저도 의미론적 청킹 써봤는데 정말 결과가 다르더라고요. 전처리 시간 문제는 배치로 미리 처리해놓고 캐싱하니까 괜찮았어요. 한국어는 특히 조사 때문에 유사도 계산이 까다로운데 문장 임베딩 모델을 한국어 특화 걸로 바꾸니까 훨씬 나았습니다. LangChain의 RecursiveCharacterTextSplitter도 써봤는데 구조적 데이터 처리엔 제한이 있어서 결국 커스텀으로 가게 되더라고요.