본문으로 바로가기

토큰, 청크, 벡터 DB, RAG

category SKALAAI 11일 전
반응형

토큰(Token)

  • LLM이 텍스트를 내부적으로 처리하는 최소 단위
  • 단순히 "단어"가 아니라, 문자, 부분 단어, 공백, 문장 부호 등도 포함
  • 예시
    • "Hello, world!" → ["Hello", ",", " world", "!"] (공백도 포함됨)
    • "책상" → ["책", "상"] (단어가 조각날 수도 있음)

청크(Chunk)

  • LLM을 학습하거나 추론할 때, 긴 텍스트를 일정한 크기로 나눈 블록
  • 한 번에 처리할 수 있는 문장의 길이를 제한하기 위해 사용됨
  • 하나의 청크는 여러 개의 토큰으로 구성됨
  • 예시
    • "Hello, world! This is ChatGPT. Nice to meet you!" →
      • 청크1: "Hello, world! This is ChatGPT."
      • 청크2: "Nice to meet you!"
    • 만약 한 청크당 10개 토큰으로 제한하면, 문장을 쪼개서 여러 청크로 나눔
  • 보통 벡터 데이터베이스나 RAG(Retrieval-Augmented Generation) 시스템에서 긴 문서를 작은 단위로 나눌 때 사용해.
  • RAG에서 검색 효율을 높일 때 사용된다

 

벡터 데이터베이스(Vector Database)란?

벡터 데이터베이스는 고차원 벡터(숫자로 표현된 데이터)를 저장하고 빠르게 검색하는 데이터베이스이다.

일반적인 관계형 데이터베이스(RDB)는 테이블과 행, 열을 기반으로 데이터를 저장하지만, 벡터 DB는 이미지, 텍스트, 오디오 등의 데이터를 숫자 벡터로 변환하여 저장하고, 이를 기반으로 유사한 데이터를 빠르게 찾는 데 최적화되어 있다.

  • 빠른 검색 속도: 일반적인 SQL 검색보다 고속 유사도 검색 수행
  • 예시 벡터 DB: Pinecone, FAISS, Weaviate, Milvus, Chroma 등

 

RAG (Retrieval-Augmented Generation)란?

  • *RAG(Retrieval-Augmented Generation)**는 LLM(대형 언어 모델) + 정보 검색(Retrieval) 을 조합한 방식

즉, LLM이 외부 데이터베이스(특히 벡터 DB)에서 필요한 정보를 검색한 후, 이를 기반으로 응답을 생성하는 방법을 의미

 

 

벡터 데이터베이스 기반 RAG 애플리케이션의 특징

벡터 DB를 활용한 RAG 애플리케이션은 데이터 검색과 LLM 응답을 결합하여 더 정확하고 최신 정보를 제공하는 것이 핵심이다.

특징 요약

  • 외부 데이터 활용: LLM이 최신 정보나 도메인별 데이터를 실시간 검색 후 답변 생성
  • 빠른 검색 속도: 벡터 데이터베이스를 사용해 대규모 문서에서 관련 내용을 빠르게 찾음
  • 정확도 향상: LLM이 단순히 기억에 의존하는 것이 아니라, 검색한 데이터를 기반으로 답변을 보강
  • 최신 정보 반영 가능: LLM 자체가 학습한 이후에도, 실시간으로 업데이트된 데이터를 반영 가능

 

 

다음 포스트에서는 실제로 벡터 DB기반 RAG를 구축한 애플리케이션을 제작해보겠다.

 

반응형