카테고리 없음
smart chunking
혜룐
2024. 3. 23. 08:39
나이브청킹 vs 스마트청킹
https://ambikasukla.substack.com/p/efficient-rag-with-document-layout 스마트청킹은 23년 12월4일에 공유드렸던 내용입니다. 해당내용 기반으로 kbpro버전2가 진행되고 있습니다.
청킹될 원문의 결(=content type)
- content type에 따라
- 색인 전처리 과정
- 원문 요약시 프롬프트에 원문 특성을 살려서 요약으로 개선 가능
- 검색 전처리 과정
- 후보군을 넘길때 비즈니스 로직으로 개선
- 답변 전처리 과정
- content type을 포함하여 답변프롬프트를 만들었을때 전후로 비교
- 색인 전처리 과정
layout오픈소스
- 특징
- llama_index을 사용하여, 청킹된 데이터에 문서 구조,표등 마크다운 형태를 유지(논문이나 보고서형태의경우 유용하게 쓰일거 같음)
- Section and Subsections, Lists, Tables 등에 문서의 구조 반영하여 스마트청킹을 돕는다.
- 코드 : https://github.com/nlmatics/llmsherpa
나이브청킹
- 문서의 특성을 모르고 고정된 토큰크기로 일관되게 자르면, 문서의 특성을 잘 살리지 못해 정보와 의미가 손실된다.
- 예를 들어, 제목1 / 제목2은 문단의 "제목" = 핵심적인 내용인 주제를 다루는 것으로 중요도를 두지 못하는 단점이 있다.
스마트청킹
- Section and Subsections
- 리더/로더가 문서 구조를 인식하면 아래 섹션에 설명된 대로 스마트 청크를 만들 수 있습니다.스마트 청크: 섹션 및 하위 섹션스마트 청크는 섹션과 하위 섹션을 각각의 중첩 구조와 함께 식별
- Lists
- 무조건 고정된 토큰값으로 청킹한다기 보다는 문서의 형태가 "리스트"형이라면 가급적 하나의 청킹데이터로 묶는다.
- Tables
- 테이블 형태의 레이아웃을 보존한다.