취미가 좋다

[ Server ] Model Repository 본문

Data Engineer/triton inference server

[ Server ] Model Repository

benlee73 2021. 6. 29. 10:55

https://github.com/triton-inference-server/server/blob/main/docs/model_repository.md

 

Model Repository

triton inference server는 서버가 지정한 model repository 에서 하나 혹은 그 이상의 모델을 제공한다.

 

Repository Layout

repository 는 triton을 시작할 때, --model-repository option으로 지정된다.

$ tritonserver --model-repository=<model-repository-path>

 

이 repository는 무조건 아래와 같이 layout을 따라야 한다.

  <model-repository-path>/
    <model-name>/
      [config.pbtxt]
      [<output-labels-file> ...]
      <version>/
        <model-definition-file>
      <version>/
        <model-definition-file>
      ...
    <model-name>/
      [config.pbtxt]
      [<output-labels-file> ...]
      <version>/
        <model-definition-file>
      <version>/
        <model-definition-file>
      ...
    ...

가장 상단의 repository 디렉토리에는 0개 이상의 서브 디렉토리가 있어야 한다.

각 서브 디렉토리는 해당되는 모델에 대한 repository 정보가 포함되어 있다.

config.pbtxt 파일은 모델의 model configuration 정보를 가지고 있다.

config.pbtxt 는 어떤 모델들에겐 항상 필요하지 않을 수는 있다. (auto-generated model configuration)

 

각 디렉토리는 모델의 버전을 나타내는 적어도 한 개 이상의 서브 디렉토리가 있어야 한다.

모델 버전에 대한 정보는 아래 model versions에서 설명한다.

각 모델은 특정 backend에서 실행되고, 그 backend에 필요한 파일이 서브 디렉토리에 있어야 한다.

예를 들어, TensorRT, PyTorch, ONNX, TensorFlow 등 여러 프레임워크 백엔드를 사용하는 모델은, 각 프레임워크 별 모델 파일이 필요하다.

 

Model Repository Locations

triton은 여러 곳에 있는 모델에 접근할 수 있다.

 

Local File System

로컬에 있는 파일 시스템은 절대 경로로 지정되어야 한다.

$ tritonserver --model-repository=/path/to/model/repository ...

Google Cloud Storage

google cloud storage 에 있는 모델 repository는 gs:// 를 앞에 작성해야 한다.

$ tritonserver --model-repository=gs://bucket/path/to/model/repository ...

S3

Amazon S3에 있는 model repository는 s3:// 를 앞에 작성해야 한다.

$ tritonserver --model-repository=s3://bucket/path/to/model/repository ...

 

Model versions

각 모델은 repository 안에서 여러 버전을 가질 수 있다.

각 버전을 숫자로 지정된 하위 디렉토리를 가리킨다.

숫자가 아니거나 0으로 시작하는 디렉토리는 무시된다.

 

Model Files

각 모델 버전의 서브 디렉토리에 있을 파일들은, 모델의 타입과 모델을 지원하는 백엔드에 따라 결정된다.

 

TensorRT Models

TensorRT 모델은 Plan으로 정의되고, 모델의 이름은 반드시 model.plan 이어야 한다.

 

ONNX Modles

onnx 모델은 하나의 파일이거나 여러 파일을 가지는 디렉토리이다.

모델의 이름이 model.onnx 이어야 한다.

 

TorchScript Models

 

TensorFlow Models

 

OpenVINO Models

 

Python Models

python 백엔드는 triton 내에서 python 코드가 실행되도록 한다.

python script 이름은 model.py 이어야 한다.

 

DALI Models

DALI 백엔드는 triton에서 DALI 파이프라인은 하나의 모델로서 실행하도록 한다.

model.dali 라는 이름의 파일을 생성해야 한다.

model.dali 파일을 생성하기 위해 DALI backend documentation 을 참고해라.

'Data Engineer > triton inference server' 카테고리의 다른 글

[ Server ] Model Management  (0) 2021.07.23
Triton Client  (0) 2021.06.29
[ Server ] Quickstart  (0) 2021.06.29
[ Server ] Inference protocols  (0) 2021.06.28
[ Server ] build  (0) 2021.06.28
Comments