Weaviate 모델 프로바이더 통합
Weaviate 모델 프로바이더 통합
Weaviate는 셀프호스트(자체 서버)와 API 기반의 다양한 모델을 통합해서 쓸 수 있어요. 이 통합 덕분에 "객체를 넣으면 Weaviate가 알아서 임베딩을 만들어 저장"하고, 생성형 AI 모델로 RAG 파이프라인까지 한 번에 구성할 수 있습니다. 여기서는 모델 프로바이더의 종류와 임베딩 생성 원리를 개괄적으로 살펴볼게요.
출처: 공식문서
모델 프로바이더 통합이란
모델 프로바이더 통합을 활성화하면 Weaviate가 데이터베이스에 추가되는 객체의 임베딩을 자동으로 생성합니다. 데이터를 통합 프로바이더에 보내면 프로바이더가 임베딩을 계산해 돌려주고, Weaviate가 그 임베딩을 저장하는 식이에요.
이 통합을 통해 가능해지는 것들입니다.
- 임베딩을 직접 지정하지 않아도 객체를 Weaviate에 바로 가져올 수 있음
- 생성형 AI 모델로 통합형 RAG(검색 증강 생성) 파이프라인을 구축할 수 있음
API 기반 프로바이더
대표적인 API 기반 프로바이더와 지원 모델 유형을 표로 정리하면 다음과 같아요.
| 모델 프로바이더 | 임베딩 | 생성형 AI | 기타 |
|---|---|---|---|
| Anthropic | - | 텍스트 | - |
| AWS | 텍스트 | 텍스트 | - |
| Cohere | 텍스트, 멀티모달 | 텍스트 | Reranker |
| Databricks | 텍스트 | 텍스트 | - |
| 텍스트, 멀티모달 | 텍스트 | - | |
| 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는 객체가 추가될 때 자동으로 임베딩을 만듭니다. 그 과정은 다음과 같습니다.
- 텍스트 또는
text[]데이터 타입 속성만 선택 (건너뛰도록 설정된 속성 제외) - 값을 이어 붙이기 전에 속성을 알파벳(a-z) 순으로 정렬
- 설정에 따라 컬렉션 이름을 앞에 붙임 (대소문자 구분)
텍스트를 소문자로 만들고 싶으면 LOWERCASE_VECTORIZATION_INPUT 환경 변수를 설정하면 됩니다. 다만 text2vec-contextionary 통합은 항상 텍스트를 소문자로 처리한다는 점 기억해 두세요.