카테고리 없음

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
    • 테이블 형태의 레이아웃을 보존한다.