임베딩 시스템을 위한 벡터 데이터베이스

OpenAI API로 시작하는 임베딩 Introduction

Emmanuel Pire

Senior Software Engineer, DataCamp

현재 접근 방식의 한계

  • 모든 임베딩을 메모리에 로드 (1536 floats ~ 13kB/임베딩)
  • 새 쿼리마다 임베딩 재계산
  • 모든 임베딩의 코사인 거리 계산 및 정렬이 느리고 선형적으로 확장됨

저장 솔루션 없이 모든 쿼리마다 문서와 쿼리가 임베딩되는 과정을 나타낸 다이어그램.

OpenAI API로 시작하는 임베딩 Introduction

벡터 데이터베이스

  • 임베딩된 문서는 벡터 데이터베이스에 _저장_ 및 _조회_됩니다

벡터 데이터베이스를 사용하여 문서 임베딩을 저장하고, 임베딩된 쿼리를 기반으로 결과를 사용자에게 반환하는 과정을 나타낸 다이어그램.

OpenAI API로 시작하는 임베딩 Introduction

 

NoSQL 데이터베이스
  • 더 빠른 조회를 지원하는 유연한 구조

키:값, 문서, 그래프 데이터베이스 등 NoSQL 데이터베이스 스키마 예시.

 

SQL/관계형 데이터베이스
  • 데이터를 테이블, 행, 열로 구조화

SQL(관계형) 데이터베이스의 열과 행이 있는 테이블.

OpenAI API로 시작하는 임베딩 Introduction

저장할 구성 요소

 

  • 임베딩
  • 원본 텍스트
  • 메타데이터
    • ID 및 참조
    • 결과 필터링에 유용한 추가 데이터

 

유용한 팁: 원본 텍스트를 메타데이터로 저장하지 마세요!

벡터 데이터베이스 아이콘.

OpenAI API로 시작하는 임베딩 Introduction

벡터 데이터베이스 생태계

오픈 소스 여부 및 전용 벡터 데이터베이스 여부에 따라 분류된 주요 벡터 데이터베이스 솔루션 목록.

1 이미지 출처: Yingjun Wu
OpenAI API로 시작하는 임베딩 Introduction

최적의 솔루션은?

 

  • 데이터베이스 관리:
    • 관리형 → 비용이 높지만 운영 부담 감소
    • 자체 관리형 → 비용이 낮지만 시간과 전문성 필요
  • 오픈 소스 또는 상용?
    • 오픈 소스 → 유연하고 비용 효율적
    • 상용 → 더 나은 지원, 고급 기능, 규정 준수

 

  • 데이터 모델: 데이터 유형이 특정 데이터베이스 유형에 적합한가?
  • 특정 기능: 사용 사례에 멀티모달 저장 등 특정 기능이 필요한가?

Chroma 로고.

OpenAI API로 시작하는 임베딩 Introduction

연습해 봅시다!

OpenAI API로 시작하는 임베딩 Introduction

Preparing Video For Download...