AI 엔지니어링 아카데미: 2.4 검색 증강 생성(RAG) 시스템을 위한 데이터 청킹 기법

AI 기술 자료9개월 전 업데이트 AI 공유 서클
7.7K 00

개요

데이터 청킹은 검색 증강 생성(RAG) 시스템의 핵심 단계입니다. 효율적인 색인, 검색 및 처리를 위해 큰 문서를 관리하기 쉬운 작은 조각으로 나눕니다. 이 README는 다음을 제공합니다. RAG 파이프라인에서 사용할 수 있는 다양한 청킹 방법에 대한 개요입니다.

https://github.com/adithya-s-k/AI-Engineering.academy/tree/main/RAG/01_Data_Ingestion

 

RAG에서 청크의 중요성

효과적인 청킹은 RAG 시스템에서 매우 중요합니다:

  1. 일관성 있는 독립적인 정보 단위를 만들어 검색 정확도를 향상하세요.
  2. 임베딩 생성 및 유사성 검색의 효율성 개선.
  3. 응답을 생성할 때 보다 정확한 컨텍스트를 선택할 수 있습니다.
  4. 언어 모델 및 임베디드 시스템 관리 지원 토큰 제한 사항.

 

청크 방법

저희는 각각 다른 장점과 사용 시나리오를 가진 6가지 청킹 방법을 구현했습니다:

  1. 리커시브 문자 텍스트 스플리터
  2. 토큰 텍스트 스플리터
  3. 캄라트 시맨틱 청커
  4. 캄라트수정청커
  5. 클러스터 시맨틱 청커
  6. LLM세맨틱청커

 

청크

1. 리커시브 문자 텍스트 스플리터

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

2. 토큰 텍스트 스플리터

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

3. 캄라트 시맨틱 청커

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

4. 캄라트수정청커

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

5. 클러스터 시맨틱 청커

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

6. LLM세맨틱청커

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

 

메서드 설명

  1. 리커시브 문자 텍스트 스플리터: 구분 기호 계층 구조를 기반으로 텍스트를 분할하여 문서에서 자연스러운 중단점을 우선순위로 지정합니다.
  2. 토큰 텍스트 스플리터: 텍스트를 고정된 수의 토큰 블록으로 분할하여 토큰 경계에서 분할이 이루어지도록 합니다.
  3. 캄라트 시맨틱 청커슬라이딩 창 임베딩을 사용하여 의미적 불연속성을 식별하고 그에 따라 텍스트를 분할합니다.
  4. 캄라트수정청커이분할 검색을 사용하여 세분화를 위한 최적의 임계값을 찾는 KamradtSemanticChunker의 개선된 버전입니다.
  5. 클러스터 시맨틱 청커텍스트를 청크로 분할하고, 임베딩을 계산하고, 동적 프로그래밍을 사용하여 의미적 유사성을 기반으로 최적의 청크를 생성합니다.
  6. LLM세맨틱청커언어 모델링을 사용하여 텍스트에서 적절한 세분화 지점을 식별합니다.

사용법

RAG 프로세스에서 이러한 청크 방법을 사용하려면 다음과 같이 하세요:

  1. 통해 (틈새) chunkers 모듈을 사용하여 필요한 청커를 가져올 수 있습니다.
  2. 적절한 매개변수(예: 최대 청크 크기, 겹침)를 사용하여 청커를 초기화합니다.
  3. 청크 결과를 보려면 문서를 청커에 전달하세요.

예시:

from chunkers import RecursiveCharacterTextSplitter
chunker = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
chunks = chunker.split_text(your_document)

청킹 방법 선택 방법

청크 방법 선택은 특정 사용 사례에 따라 다릅니다:

  • 간단한 텍스트 분할의 경우, RecursiveCharacterTextSplitter 또는 TokenTextSplitter를 사용할 수 있습니다.
  • 시맨틱 인식 세그멘테이션이 필요한 경우 KamradtSemanticChunker 또는 KamradtModifiedChunker를 고려하세요.
  • 보다 고급 시맨틱 청킹을 사용하려면 ClusterSemanticChunker 또는 LLMSemanticChunker를 사용하세요.

방법을 선택할 때 고려해야 할 요소:

  • 문서 구조 및 콘텐츠 유형
  • 필수 청크 크기 및 겹침
  • 사용 가능한 컴퓨팅 리소스
  • 검색 시스템의 특정 요구 사항(예: 벡터 기반 또는 키워드 기반)

다양한 방법을 시도해보고 문서화 및 검색 요구사항에 가장 적합한 방법을 찾을 수 있습니다.

RAG 시스템과의 통합

청킹을 완료한 후에는 일반적으로 다음 단계가 수행됩니다:

  1. 각 청크에 대한 임베딩을 생성합니다(벡터 기반 검색 시스템의 경우).
  2. 선택한 검색 시스템(예: 벡터 데이터베이스, 반전 인덱스)에서 이러한 청크를 색인화합니다.
  3. 쿼리에 답변할 때는 검색 단계에서 색인 청크를 사용합니다.

 

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术
© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...