Deploy Model API
출처: 문서
본문
모델 배포(Deploy Model API)
모델 배포(deploy model) 작업은 모델 인덱스에서 모델의 청크(chunk)를 읽어 온 뒤, 메모리에 캐시할 모델 인스턴스를 생성해요. 이 작업에는 model_id가 필요해요.
외부 호스팅 모델은 Predict API 요청을 처음 보내는 시점에 기본적으로 자동으로 배포돼요. 외부 호스팅 모델의 자동 배포를 끄려면 plugins.ml_commons.model_auto_deploy.enable를 false로 설정하세요:
PUT _cluster/settings
{
"persistent": {
"plugins.ml_commons.model_auto_deploy.enable": "false"
}
}
{% include copy-curl.html %}
이 API의 사용자 접근 권한에 대한 내용은 모델 접근 제어 고려 사항을 참고하세요.
엔드포인트
POST /_plugins/_ml/models/{model_id}/_deploy
예제 요청: 사용 가능한 모든 ML 노드에 배포하기
이 예제 요청에서는 OpenSearch가 사용 가능한 아무 OpenSearch ML 노드에나 모델을 배포해요:
POST /_plugins/_ml/models/WWQI44MBbzI2oUKAvNUt/_deploy
{% include copy-curl.html %}
예제 요청: 특정 노드에 배포하기
클러스터 안의 다른 ML 노드 메모리를 아껴 두고 싶다면, 요청 본문에 node_ids를 지정해서 모델을 특정 노드(들)에 배포할 수 있어요:
POST /_plugins/_ml/models/WWQI44MBbzI2oUKAvNUt/_deploy
{
"node_ids": ["4PLK7KJWReyX0oWKnBA8nA"]
}
{% include copy-curl.html %}
예제 응답
Deploy Model API는 배포 진행 상황을 모니터링할 때 사용할 수 있는 task_id를 반환해요:
{
"task_id": "hA8P44MBhyWuIwnfvTKP",
"task_type": "DEPLOY_MODEL",
"status": "CREATED"
}
배포 상태 모니터링하기
모델 배포 상태를 확인하고 배포가 완료됐을 때 모델 ID를 가져오려면, Get ML Task API를 사용하면서 반환된 task_id를 경로 파라미터로 넘기면 돼요:
GET /_plugins/_ml/tasks/hA8P44MBhyWuIwnfvTKP
{% include copy-curl.html %}
Get ML Task API는 배포가 진행 중인지 완료됐는지에 따라 서로 다른 응답 형식을 반환해요. 가능한 모든 응답 형식에 대한 자세한 내용은 Get ML Task API를 참고하세요.
클러스터나 노드가 재시작되면 모델을 다시 배포해야 해요. 자동 재배포를 설정하는 방법은 모델 배포 설정을 참고하세요. {: .tip}