Skip to main content

TEI (Text Embeddings Inference)

HuggingFace에서 개발한 임베딩 추론 서버입니다. 텍스트를 벡터(임베딩)로 변환하는 작업에 최적화되어 있습니다.

어디에 쓰이나요?

  • RAG 파이프라인: 문서를 임베딩으로 변환하여 벡터 DB(Qdrant, Milvus 등)에 저장
  • 시맨틱 검색: 사용자 질문을 임베딩으로 변환하여 유사한 문서 검색
  • 문장 유사도: 두 텍스트 간의 의미적 유사도 계산
  • 리랭킹(Reranking): 검색 결과의 관련성을 재평가하여 순위 재정렬
OpenAI Embeddings API와 호환되는 형식으로 서빙하므로, 기존 OpenAI 임베딩을 사용하던 코드를 수정 없이 로컬 모델로 전환할 수 있습니다.

Docker Compose

GPU 환경

docker-compose.yml
services:
  tei:
    image: ghcr.io/huggingface/text-embeddings-inference:latest
    container_name: tei
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - tei_data:/data
    command: >
      --model-id BAAI/bge-m3
      --max-client-batch-size 64
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

volumes:
  tei_data:

CPU 환경

GPU가 없는 환경에서는 CPU 전용 이미지를 사용합니다.
docker-compose.yml
services:
  tei:
    image: ghcr.io/huggingface/text-embeddings-inference:cpu-latest
    container_name: tei
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - tei_data:/data
    command: >
      --model-id BAAI/bge-m3
      --max-client-batch-size 32

volumes:
  tei_data:

실행

docker compose up -d

접속 확인

curl http://localhost:8080/v1/embeddings \
  -H "Content-Type: application/json" \
  -d '{
    "input": "안녕하세요, 임베딩 테스트입니다.",
    "model": "BAAI/bge-m3"
  }'

기본 정보

항목
API 포트8080
API 형식OpenAI Embeddings API 호환
GPU선택 (CPU 전용 이미지 제공)

주요 실행 옵션

옵션설명
--model-idHuggingFace 임베딩 모델 ID
--max-client-batch-size최대 배치 크기
--max-concurrent-requests최대 동시 요청 수
--tokenization-workers토크나이저 워커 수

추천 임베딩 모델

모델차원다국어용도
BAAI/bge-m31024O범용 다국어 임베딩
BAAI/bge-large-en-v1.51024X영어 고성능
intfloat/multilingual-e5-large1024O다국어 검색
sentence-transformers/all-MiniLM-L6-v2384X경량 영어 임베딩

라이선스

구분내용
라이선스Apache License 2.0
개인 사용자유롭게 사용 가능
상업적 사용자유롭게 사용 가능. 단, 사용하는 모델의 라이선스는 별도 확인 필요

참고