- 텍스트 청킹은 RAG에서 중요한 변환 과정이며, 문서 특성에 따라 다양한 방법이 존재합니다. ⚙️
CharacterTextSplitter
는 구분자를 기준으로 텍스트를 나누지만,RecursiveCharacterTextSplitter
는 여러 구분자를 재귀적으로 사용하여 청크 크기를 맞춥니다. ✂️- 코드 청킹 시에는
RecursiveCharacterTextSplitter.from_language
를 사용하여 언어별 구분자를 활용, 코드의 맥락을 유지합니다. 💻 - 마크다운 문서는
MarkdownHeaderTextSplitter
를 통해 헤더 기준으로 분할하고, 메타데이터에 헤더 정보를 추가하여 LM에 문서 구조를 인지시킬 수 있습니다. 📑 - 시멘틱 청킹은 문장 임베딩 유사도를 기반으로 맥락을 유지하며 텍스트를 나누며, 오픈AI 또는 로컬 임베딩 모델을 사용할 수 있습니다. 🧠
- 올라(Ollama)를 통해 로컬 임베딩 모델을 활용하면 시멘틱 청킹을 무료로 수행할 수 있습니다. 🦙