배포(Deployment) 만들기 — 자체 모델을 상시 API로 운영하기

배포(Deployment) 만들기 — 자체 모델을 상시 API로 운영하기

Replicate에서 모델은 기본적으로 필요할 때 워커를 띄워 실행하는 구조예요. 그런데 자체 커스텀 모델을 고정된 하드웨어로 늘 떠 있는 API로 운영하고 싶다면 '배포(deployment)'를 쓰면 돼요. 배포는 모델 인스턴스를 상시 유지해 예측을 보다 예측 가능한 비용과 성능으로 처리할 수 있게 해 주죠. 이 글에서 배포를 만드는 방법을 정리해요.

출처: Replicate Docs — Create a deployment

웹에서 배포 만들기

새 배포를 만들려면 replicate.com/deployments 에 가서 Create a new deployment를 선택하면 돼요. (어떤 모델 버전 페이지의 오른쪽 위 Deploy 버튼을 눌러도 바로 진입할 수 있어요.)

여기서 배포 이름을 짓고, 배포할 모델과 버전을 확인해요. 버전은 언제든 바꿀 수 있어요. 배포가 만들어지면 새 모델 인스턴스에 예측을 실행할 수 있어요.

배포를 더 세밀하게 구성하려면 배포 페이지의 Settings 탭으로 가요. 하드웨어와 오토스케일링 특성을 여기서 조정할 수 있고, 배포 운영 비용 예상치도 함께 보여줘요.

API로 배포 관리하기

배포는 API로도 만들고 관리할 수 있어요.

cURL 요청 예시입니다.

curl -s \
  -X POST \
  -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "name": "my-app-image-generator",
        "model": "some-org/some-model",
        "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
        "hardware": "gpu-t4",
        "min_instances": 1,
        "max_instances": 5
      }' \
  https://api.replicate.com/v1/deployments

응답은 배포를 설명하는 JSON 객체예요.

{
  "owner": "acme",
  "name": "my-app-image-generator",
  "current_release": {
    "number": 1,
    "model": "some-org/some-model",
    "version": "da77bc59ee60423279fd632efb4795ab731d9e3ca9705ef3341091fb989b7eaf",
    "created_at": "2024-02-15T16:32:57.018467Z",
    "created_by": {
      "type": "organization",
      "username": "acme",
      "name": "Acme Corp, Inc.",
      "github_url": "https://github.com/acme",
    },
    "configuration": {
      "hardware": "gpu-t4",
      "min_instances": 1,
      "max_instances": 5
    }
  }
}

요청 본문에서 눈여겨볼 파라미터를 짚어볼게요.

  • name: 배포 이름이에요.
  • model / version: 배포할 모델과 그 버전이에요.
  • hardware: gpu-t4 같은 하드웨어 스킴이에요.
  • min_instances / max_instances: 오토스케일링 범위예요. 상시 최소 인스턴스 수와 트래픽이 몰릴 때 확장되는 최대 인스턴스 수를 정해요.

API 세부 사항은 다음 문서들을 참고하세요.

  • Create a deployment
  • Get a deployment
  • Update a deployment
  • Delete a deployment
  • List deployments
  • Create a prediction using a deployment

더 알아보기