취미가 좋다
[ Server ] Model Management 본문
https://github.com/triton-inference-server/server/blob/main/docs/model_management.md
Model Management
triton 은 inference protocols and API (HTTP/REST and GRPC 프로토콜, C API) 의 부분으로 model management APIs를 제공한다.
triton은 3개의 model control 모드 중 하나로 동작한다. (NONE, EXPLICIT, POLL)
The model control mode determines how changes to the model repository are handled by Triton and which of these protocols and APIs are available.
간략히 이해하기엔, model repository에 변화가 있을 때, 어떻게 처리할 것인지 3가지 모드마다 다른 것 같다.
Model Control Mode NONE
triton은 시작할 때, model repository에 있는 모든 모델을 가져온다.
가져오지 못한 모델은 UNAVAILABLE 이 적히고, inferencing 할 수 없다.
서버가 실행되는 동안에는, model repository의 변경은 무시된다.
model control protocol을 사용하여 모델을 불러오려는 요청에는 에러를 응답으로 반환한다.
triton이 시작할 때, --model-control-mode=none 이 기본으로 설정된다.
triton이 실행되는 동안, model repository를 변경시키는 것은 조심해야 한다.
(위에선 영향 없다고 했는데 왜 여기선 조심해야 한다고 하지?)
Model Control Mode EXPLICIT
triton을 시작할 때, --load-model 로 명시한 모델만을 가져온다.
만약 --load-model을 적지 않는다면, 어떠한 모델도 가져오지 않는다.
그렇게 가져오지 않은 모델들은 UNAVAILABLE 로 표시되고 inferencing 할 수 없다.
trtion이 시작한 후에는, 모델 load / unload 가 model control protocol 을 사용하여 실행되어야 한다.
이런 model control 요청에 대한 응답으로는, 요청한 load / unload 을 성공 혹은 실패의 결과가 나온다.
이미 가져와진 모델을 다시 가져올 때 실패한 경우, 이미 가져오진 모델은 바뀌지 않고 그대로 있는다.
만약 가져오는 데 성공한 경우, 기존의 모델을 대체한다.
이 explicit 모드는 --model-control-mode=explicit 으로 설정할 수 있다.
triton이 실행되는 동안, model repository를 변경시키는 것은 조심해야 한다. (위와 동일한 말 반복)
Model Control Mode POLL
triton이 시작할 때, model repository에 있는 모든 모델을 가져오려고 한다.
model repository가 변경되면 triton은 그 변경에 맞춰서 모델을 load / unload 한다.
위와 마찬가지로, 이미 가져와진 모델을 다시 가져올 때 실패한 경우, 이미 가져오진 모델은 바뀌지 않고 그대로 있는다.
그리고 가져오는데 성공한 경우, 기존의 모델을 대체한다.
이 모드는 model repository 변경 즉시 알수는 없고, 주기적으로 repository를 poll 하면서 알게된다.
--repository-poll-secs 옵션을 통해 polling 주기를 설정할 수 있다.
이러한 특성 때문에 repository 변경이 부분적으로만 탐지될 수 있다. (repository 변경 중 polling이 수행될 때)
따라서 production 환경에서는 POLL 모드를 권장하지 않는다.
'Data Engineer > triton inference server' 카테고리의 다른 글
Triton Client (0) | 2021.06.29 |
---|---|
[ Server ] Model Repository (0) | 2021.06.29 |
[ Server ] Quickstart (0) | 2021.06.29 |
[ Server ] Inference protocols (0) | 2021.06.28 |
[ Server ] build (0) | 2021.06.28 |