Skip to content

Latest commit

 

History

History
35 lines (27 loc) · 3.18 KB

File metadata and controls

35 lines (27 loc) · 3.18 KB

Online bigsize pattern

Case

  • 실시간 대응이 필요한 온라인 서비스의 경우 또는 시스템에 예측에 오랜 시간이 걸리는 큰 모델을 배치하는 경우
  • 예측의 평균 지연 시간이 요구되는 성능을 충족하지 못하는 경우
  • 배치 시스템에서 예측 횟수 또는 평균 지연 시간이 예상되는 완료 시간보다 긴 경우

Situation

웹 서비스와 배치 시스템을 포함한 모든 서비스에는 완료 시간에 대한 요구 사항이 있습니다. 예를 들면, 웹 서비스에서는 모든 요청의 평균 응답 시간이 1초 이하가 되어야 한다는 것이 있습니다. 배치 시스템에서는 1억 개의 요청을 저녁 6시간 내에 처리해야 한다는 것이 요구 사항이 될 수 있습니다. 어떤 비즈니스 또는 시스템이든지 간에, 시간은 한정되어 있는 귀중한 자원이기 때문에 1회 처리에 무한정의 시간을 소비할 수 없습니다. 작업의 소요되는 시간을 측정할 수 있는 유용한 단위는 머신러닝 시스템이 예측에 소비하는 평균 초로, 이 단위를 기준으로 요구 사항에 충족할 수 있게 모델과 예측 시스템을 설계해야 합니다. 특히 시간이 많이 걸릴 수 있는 복잡하고 거대한 딥러닝 모델을 사용하는 경우에는 어떻게든 최적화해야 합니다. 최악의 경우, 웹 실시간 서비스로는 사용이 불가능할 수 있습니다. 단위 예측 응답 시간이 요구 사항을 충족하는 경우에만 적용할 수 있지만, 스케일 업 또는 스케일 아웃을 시도해 서버당 동작하는 프로세스 양의 균형을 맞출 수 있습니다. 또는 CPU보다 비용이 많이 들 수도 있지만, 예측 특화형 GPU를 사용할 수도 있습니다. 성능과 지연 시간을 충족시키기 위해 간단한 모델을 만드는 것도 최선의 선택일 수 있습니다.
모델의 성능과 속도의 균형에 정답은 없습니다. 따라서 비즈니스 및 시스템 요구사항에 따라 성능 및 속도의 서비스 수준을 정의하는 것이 중요합니다.

Diagram

diagram

Pros

  • 크고 복잡한 모델이 성능이 더 좋은 경우가 많습니다.
  • 복잡한 모델을 만드는 것은 재미있습니다.

Cons

  • 속도와 비용, 정확성 간의 균형을 잡을 필요가 있습니다.
  • 간단하고 재사용 가능한 모델을 만드는 것도 재미있습니다.

Work around

  • 모델의 정확성 뿐만 아니라, 비즈니스적 또는 시스템적으로 요구되는 응답 시간이나 속도를 충족하는 모델을 개발합니다.
  • 만약 비용면에서 허락한다면, GPU를 사용하거나 스케일 아웃 하는 방법도 고려해보세요.

Related design pattern