빠른 시작 (Docker 배포와 첫 추론)

빠른 시작 (Docker 배포와 첫 추론)

TEI를 시작하는 가장 쉬운 방법은 공식 Docker 컨테이너를 쓰는 거예요. GPU·CPU 추론을 모두 지원하고, GPU를 쓸 때는 하드웨어가 지원되는지 먼저 확인하세요. NVIDIA 드라이버는 CUDA 12.2 이상과 호환돼야 해요.

배포

Qwen/Qwen3-Embedding-0.6B 모델을 배포한다고 해볼게요.

model=Qwen/Qwen3-Embedding-0.6B
volume=$PWD/data

docker run --gpus all -p 8080:80 -v $volume:/data --pull always ghcr.io/huggingface/text-embeddings-inference:cuda-1.9 --model-id $model

매 실행마다 가중치를 다시 내려받지 않도록 Docker 컨테이너와 볼륨(volume=$PWD/data)을 공유하는 걸 권장해요.

추론 (cURL)

/embed 엔드포인트에 POST 요청을 보내면 돼요.

curl 127.0.0.1:8080/embed \
    -X POST \
    -d '{"inputs":"What is Deep Learning?"}' \
    -H 'Content-Type: application/json'

추론 (Python)

huggingface_hub의 InferenceClient를 쓸 수 있어요.

from huggingface_hub import InferenceClient

client = InferenceClient()

embedding = client.feature_extraction("What is deep learning?",
                                      model="http://localhost:8080/embed")
print(len(embedding[0]))

OpenAI 호환 API

/v1/embeddings로 OpenAI Embeddings API를 그대로 쓸 수 있어요. 기존 RAG 파이프라인에 드롭인 교체가 가능하죠.

import os
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8080/v1", api_key="-")

response = client.embeddings.create(
    model="text-embeddings-inference",
    input="What is Deep Learning?",
)

print(response.data[0].embedding)

cURL로도 동일하게 보낼 수 있어요.

curl http://localhost:8080/v1/embeddings \
  -H "Content-Type: application/json" \
  -d '{
    "input": "What is Deep Learning?",
    "model": "text-embeddings-inference",
    "encoding_format": "float"
  }'

배칭

여러 입력을 한 번에 배치로 보낼 수도 있어요.

curl 127.0.0.1:8080/embed \
    -X POST \
    -d '{"inputs":["Today is a nice day", "I like you"]}' \
    -H 'Content-Type: application/json'

더 알아보기