Xinference 사용하기 — 로컬과 클러스터

Xinference 사용하기

로컬 머신에서 Xinference 를 실행하고 LLM 모델을 돌려 봅니다.

출처: Using Xinference — 공식문서

로컬 서버 시작

xinference-local --host 0.0.0.0 --port 9997

기본 홈 경로는 <HOME>/.xinference 이며 XINFERENCE_HOME=/tmp/xinference 처럼 바꿀 수 있습니다. 웹 UI(http://127.0.0.1:9997/ui)와 API 문서(/docs)를 볼 수 있습니다.

모델 엔진

v0.11.0 부터 LLM 모델 실행 시 추론 엔진을 지정해야 합니다. 지원 엔진: vllm, sglang, llama.cpp, transformers, MLX.

  • Linux: 성능 우선이면 vLLM/SGLang, 리소스 제한이면 llama.cpp, 그 외 transformers.
  • Mac: 모델이 지원하면 MLX, 아니면 llama.cpp.

xinference engine 명령으로 모델·엔진별 파라미터 조합을 조회할 수 있습니다.

xinference engine --model-name qwen-chat --model-engine vllm

모델 실행

xinference launch --model-engine <엔진> -n qwen2.5-instruct -s 0_5 -f pytorch

OpenAI 호환 API

Xinference 는 OpenAI 호환 API 를 제공하므로 기존 클라이언트를 그대로 쓸 수 있습니다.

from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:9997/v1", api_key="not used actually")
response = client.chat.completions.create(model="qwen2.5-instruct",
    messages=[{"role": "user", "content": "What is the largest animal?"}])

클러스터 배포

supervisor 한 대와 worker 여러 대로 분산 배포합니다.

xinference-supervisor -H "${supervisor_host}"
xinference-worker -e "http://${supervisor_host}:9997" -H "${worker_host}"

Docker

CUDA 12.4 기준:

docker run -e XINFERENCE_MODEL_SRC=modelscope -p 9998:9997 --gpus all   xprobe/xinference:<version> xinference-local -H 0.0.0.0 --log-level debug

더 알아보기