[MLOps] Triton Inference Server 구축기 1 - 설치

Ellie·2023년 2월 24일
3

Triton Inference Server

목록 보기
2/3

공식 문서에서 추천하는 triton build 및 deployment 방법은 docker 이미지를 통한 빌드이기 때문에 추천하는 방식으로 블로그를 쓰려고 한다.

1. Docker, NVIDIA Container Toolkit 설치하기

Triton inference server 설치 전 아직 docker와 NVIDIA Contianer Toolkit이 설치되어 있지 않다면 설치해주자.

Docker 다운로드 : https://github.com/NVIDIA/nvidia-docker
NVIDIA Contianer Toolkit 다운로드 : https://github.com/NVIDIA/nvidia-docker

만약, DGX 유저라면 아래 링크를 따라 셋팅하면 된다.
https://docs.nvidia.com/deeplearning/frameworks/preparing-containers/index.html

2. NVIDIA driver 버전 확인하기

NVIDIA driver 버전에 따라 사용하는 triton container 버전이 달라질 수 있다. 나의 경우 driver 버전은 515.86.01이라, triton inference server container 버전은 22.08으로 docker image를 빌드했다. 만약 container에서 제공하는 최소 driver 버전보다 나의 driver가 낮다면 오류가 날 수 있으니 꼭 확인할 것!

아래 공식 문서에서 나의 driver 버전과 맞는 container 버전을 확인한다.

Triton Inference Server 릴리즈 노트 : https://docs.nvidia.com/deeplearning/triton-inference-server/release-notes/index.html

3. Triton Inference Server 설치하기

다양한 docker image 종류가 있는데, 이 블로그에서는 가장 기본이 되는 첫번째 image를 사용하려고 한다.

  • xx.yy-py3 (기본)
    Triton inference server + Tensorflow, PyTorch, TensorRT, ONNX, OpenVINO 모델을 지원함
  • xx.yy-py3-sdk
    Triton inference server의 client로 사용할 수 있는 docker image이다. 향후 서버 테스트 시 사용할 예정이다.
  • xx.yy-py3-min
    Custom triton server 구현시에 사용
  • xx.yy-pyt-python-py3
    Triton Inference Server + PyTorch and Python backend만 지원하여 첫번째 이미지보다 좀 더 가벼움
  • xx.yy-tf2-python-py3
    Triton Inference Server + TensorFlow 2.x and Python backend만 지원하여 첫번째 이미지보다 좀 더 가벼움

3-1. docker image download/build

docker pull nvcr.io/nvidia/tritonserver:xx.yy-py3

3-2. docker run

docker run --rm --gpus=2 -p 8000:8000 -p 8001:8001 -p 8002:8002 -v /local/path/of/model:/models nvcr.io/nvidia/tritionserver:xx.yy-py3 tritonserver --model-repository=/models
  • --gpus : 사용 할 gpu 갯수
  • -p 8000:8000 : HTTP 통신용
  • -p 8001:8001 : gRPC 통신용
  • -p 8001:8001 : Metrics용
  • -v {로컬 모델 경로}/models
    여기서 지정한 로컬 모델 경로에는 serving 할 trained model들이 위치하게 된다. 이어지는 블로그 글에서 자세한 내용을 적을 예정이다.

3-3. docker 실행 확인

아래와 같이 결과가 나오면 triton inference server가 제대로 실행 된 것

$ curl -v localhost:8000/v2/health/ready
...
< HTTP/1.1 200 OK
< Content-Length: 0
< Content-Type: text/plain
profile
A bit nerdy

0개의 댓글