Docker 이미지#

Xinference는 Dockerhub와 Alibaba Cloud Container Image Service에 공식 이미지를 업로드했습니다.

버전 v2.0에서 변경: Xinference v2.0**부터 cuda 버전 이미지를 사용하려면 cuda 버전이 최소 **CUDA 12.9 이상이어야 합니다.

준비 작업#

  • Xinference는 GPU 가속 추론을 사용하며, 이 이미지는 GPU 그래픽 카드가 있고 CUDA가 설치된 머신에서 실행되어야 합니다.

  • CUDA가 시스템에 올바르게 설치되었는지 확인하십시오. ``nvidia-smi``를 사용하여 제대로 실행되는지 확인할 수 있습니다.

  • CUDA 버전 >= 12.9인 경우, Docker 이미지에서 사용하는 CUDA 버전은 12.9``입니다. 호스트 시스템의 CUDA 버전은 ``12.9 이상이어야 하며, NVIDIA 드라이버 버전은 575 이상이어야 합니다.

  • NVIDIA Container Toolkit 이 설치되어 있는지 확인하십시오.

Docker 이미지#

Xinference 공식 이미지는 DockerHub의 xprobe/xinference 저장소에 게시되어 있습니다. 현재 사용 가능한 태그는 다음과 같습니다:

  • nightly-main: 이 이미지는 GitHub main 브랜치에서 매일 업데이트되어 제작되며, 안정성을 보장하지 않습니다.

  • v<release version>: 이 이미지는 Xinference가 릴리스될 때마다 제작되며, 일반적으로 안정적이고 신뢰할 수 있다고 간주됩니다.

  • latest: 이 이미지는 Xinference가 릴리스될 때 최신 릴리스 버전을 가리킵니다.

  • CPU 버전의 경우 -cpu 접미사를 추가합니다. 예: nightly-main-cpu.

커스텀 이미지#

추가 의존성을 설치해야 하는 경우 xinference/deploy/docker/Dockerfile 을 참조하세요. Dockerfile로 이미지를 빌드할 때 Xinference 프로젝트의 루트 디렉터리에서 작업해야 합니다. 예를 들어:

git clone https://github.com/xorbitsai/inference.git
cd inference
docker build --progress=plain -t test -f xinference/deploy/docker/Dockerfile .

미러 사용하기#

다음과 같은 방식으로 컨테이너 내에서 Xinference를 실행할 수 있으며, 9997 포트를 호스트 머신의 9998 포트로 매핑하고 로그 레벨을 DEBUG로 지정하며, 필요한 환경 변수도 지정할 수 있습니다.

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

경고

  • ``–gpus``는 반드시 지정해야 하며, 앞서 설명한 대로 이미지는 GPU가 있는 머신에서 실행되어야 합니다. 그렇지 않으면 오류가 발생합니다.

  • ``-H 0.0.0.0``도 반드시 지정해야 합니다. 그렇지 않으면 컨테이너 외부에서 Xinference 서비스에 연결할 수 없습니다.

  • 여러 개의 -e 옵션을 지정하여 여러 환경 변수에 값을 할당할 수 있습니다.

물론, 컨테이너를 실행한 후 컨테이너 내부로 들어가서 수동으로 Xinference를 기동할 수도 있습니다.

참고

여러 GPU의 경우 공유 메모리 크기를 설정해야 합니다. 예: docker run –shm-size=128g …

모델 디렉토리 마운트#

기본적으로 이미지에는 모델 파일이 포함되어 있지 않으며, 사용 중에 컨테이너 내에서 모델을 다운로드합니다. 이미 다운로드된 모델을 사용해야 하는 경우, 호스트 시스템의 디렉토리를 컨테이너에 마운트해야 합니다. 이 경우 컨테이너 실행 시 로컬 볼륨을 지정하고, Xinference에 환경 변수를 구성해야 합니다.

docker run -v </on/your/host>:</on/the/container> -e XINFERENCE_HOME=</on/the/container> -p 9998:9997 --gpus all xprobe/xinference:v<your_version> xinference-local -H 0.0.0.0

위 명령의 원리는 호스트의 지정된 디렉터리를 컨테이너에 마운트하고, XINFERENCE_HOME 환경 변수를 컨테이너 내부의 해당 디렉터리를 가리키도록 설정하는 것입니다. 이렇게 하면 모든 다운로드된 모델 파일이 호스트에서 지정한 디렉터리에 저장됩니다. Docker 컨테이너가 중지될 때 이러한 파일이 손실될 염려가 없으며, 다음에 컨테이너를 실행할 때 기존 모델을 바로 사용할 수 있어 중복 다운로드할 필요가 없습니다.

만약 호스트 머신에서 기본 경로로 모델을 다운로드한 경우, xinference 캐시 디렉토리가 심볼릭 링크 방식으로 모델을 저장하기 때문에 원본 파일이 있는 디렉토리도 컨테이너 내에 마운트해야 합니다. 예를 들어 huggingface와 modelscope를 모델 저장소로 사용하는 경우, 이 두 디렉토리를 컨테이너에 마운트해야 하며, 일반적으로 해당 캐시 디렉토리는 각각 <home_path>/.cache/huggingface와 <home_path>/.cache/modelscope에 위치합니다. 사용되는 명령어는 다음과 같습니다:

docker run \
  -v </your/home/path>/.xinference:/root/.xinference \
  -v </your/home/path>/.cache/huggingface:/root/.cache/huggingface \
  -v </your/home/path>/.cache/modelscope:/root/.cache/modelscope \
  -p 9997:9997 \
  --gpus all \
  xprobe/xinference:v<your_version> \
  xinference-local -H 0.0.0.0