Weaviate 모델 프로바이더 통합

Weaviate 모델 프로바이더 통합

Weaviate는 셀프호스트(자체 서버)와 API 기반의 다양한 모델을 통합해서 쓸 수 있어요. 이 통합 덕분에 "객체를 넣으면 Weaviate가 알아서 임베딩을 만들어 저장"하고, 생성형 AI 모델로 RAG 파이프라인까지 한 번에 구성할 수 있습니다. 여기서는 모델 프로바이더의 종류와 임베딩 생성 원리를 개괄적으로 살펴볼게요.

출처: 공식문서

모델 프로바이더 통합이란

모델 프로바이더 통합을 활성화하면 Weaviate가 데이터베이스에 추가되는 객체의 임베딩을 자동으로 생성합니다. 데이터를 통합 프로바이더에 보내면 프로바이더가 임베딩을 계산해 돌려주고, Weaviate가 그 임베딩을 저장하는 식이에요.

이 통합을 통해 가능해지는 것들입니다.

  • 임베딩을 직접 지정하지 않아도 객체를 Weaviate에 바로 가져올 수 있음
  • 생성형 AI 모델로 통합형 RAG(검색 증강 생성) 파이프라인을 구축할 수 있음

API 기반 프로바이더

대표적인 API 기반 프로바이더와 지원 모델 유형을 표로 정리하면 다음과 같아요.

모델 프로바이더 임베딩 생성형 AI 기타
Anthropic - 텍스트 -
AWS 텍스트 텍스트 -
Cohere 텍스트, 멀티모달 텍스트 Reranker
Databricks 텍스트 텍스트 -
Google 텍스트, 멀티모달 텍스트 -
Hugging Face 텍스트 - -
Jina AI 텍스트, 멀티모달 - Reranker
Mistral 텍스트 텍스트 -
OpenAI 텍스트, 멀티모달 텍스트 -
Weaviate 텍스트, 멀티모달 - -
xAI - 텍스트 -

모든 API 기반 모듈 활성화

API 기반 모델 통합은 Weaviate v1.33부터 기본으로 활성화됩니다. 에어갭(air-gapped) 배포처럼 격리된 환경이라 통합을 끄고 싶다면 API_BASED_MODULES_DISABLED 환경 변수를 true로 설정하세요. 그러면 Weaviate는 ENABLE_MODULES에 나열한 모듈만 로드합니다. 이 변수는 v1.33에서 추가됐어요.

로컬 호스팅 프로바이더

로컬에서 모델을 직접 띄워 쓰는 프로바이더도 있어요.

  • GPT4All (Deprecated): 텍스트 임베딩 (Deprecated)
  • Hugging Face: 텍스트, 멀티모달(CLIP) 임베딩, Reranker
  • KubeAI: 텍스트 임베딩
  • Model2vec: 텍스트 임베딩
  • Meta ImageBind: 멀티모달 임베딩
  • Ollama: 텍스트 임베딩

Weaviate는 어떻게 임베딩을 생성하나요

임베딩용 모델 프로바이더 통합이 활성화되면, Weaviate는 객체가 추가될 때 자동으로 임베딩을 만듭니다. 그 과정은 다음과 같습니다.

  1. 텍스트 또는 text[] 데이터 타입 속성만 선택 (건너뛰도록 설정된 속성 제외)
  2. 값을 이어 붙이기 전에 속성을 알파벳(a-z) 순으로 정렬
  3. 설정에 따라 컬렉션 이름을 앞에 붙임 (대소문자 구분)

텍스트를 소문자로 만들고 싶으면 LOWERCASE_VECTORIZATION_INPUT 환경 변수를 설정하면 됩니다. 다만 text2vec-contextionary 통합은 항상 텍스트를 소문자로 처리한다는 점 기억해 두세요.

더 알아보기 (Learn more)