빠른 시작 (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'