프로덕션 ML 시스템: 정적 추론과 동적 추론 비교

추론은 학습된 모델을 라벨이 없는 예에 적용하여 예측을 수행하는 프로세스입니다. 대략적으로 모델은 다음 두 가지 방법 중 하나로 예측을 추론할 수 있습니다.

  • 정적 추론 (오프라인 추론 또는 일괄 추론이라고도 함)은 모델이 일반적인 라벨이 없는 예를 대상으로 예측을 실행한 후 이러한 예측을 어딘가에 캐시한다는 것을 의미합니다.
  • 동적 추론 (온라인 추론 또는 실시간 추론이라고도 함)은 모델이 클라이언트가 예측을 요청할 때와 같이 요청 시만 예측을 실행한다는 것을 의미합니다.

극단적인 예를 들어 예측을 추론하는 데 1시간이 걸리는 매우 복잡한 모델을 생각해 보세요. 다음과 같은 경우 정적인 추론을 적용하는 것이 좋습니다.

그림 4. 정적 추론에서는 모델이 예측을 생성한 후 서버에 캐시합니다.
그림 4. 정적 추론에서는 모델이 예측을 생성한 후 서버에 캐시합니다.

 

이 동일한 복잡한 모델이 정적 추론 대신 동적 추론을 실수로 사용한다고 가정해 보겠습니다. 여러 클라이언트가 거의 동시에 예측을 요청하면 대부분의 클라이언트는 몇 시간 또는 며칠 동안 예측을 받지 못합니다.

이제 상대적으로 최소한의 계산 리소스를 사용하여 2밀리초 내에 빠르게 추론하는 모델을 생각해 보겠습니다. 이 경우 클라이언트는 그림 5와 같이 동적 추론을 통해 빠르고 효율적으로 예측을 받을 수 있습니다.

그림 5. 동적 추론에서 모델은 요청 시 예측을 추론합니다.
그림 5. 동적 추론에서는 모델이 요청 시 예측을 추론합니다.

 

정적 추론

정적 추론에는 특정 장단점이 있습니다.

장점

  • 추론 비용에 관해 크게 걱정할 필요는 없습니다.
  • 푸시하기 전에 예측의 사후 확인을 실행할 수 있습니다.

단점

  • 캐시된 예측만 제공할 수 있으므로 시스템에서 흔하지 않은 입력 예시의 예측을 제공하지 못할 수 있습니다.
  • 업데이트 지연 시간은 시간 또는 일 단위로 측정될 수 있습니다.

동적 추론

동적 추론에는 특정 장단점이 있습니다.

장점

  • 새로 들어오는 모든 항목에 대한 예측을 추론할 수 있으므로, 롱테일 (덜 일반적인) 예측에 적합합니다.

단점

  • 컴퓨팅 집약적이고 지연 시간에 민감합니다. 이 조합은 모델 복잡성을 제한할 수 있습니다. 즉, 복잡한 모델보다 더 빠르게 예측을 추론할 수 있는 더 간단한 모델을 빌드해야 할 수 있습니다.
  • 모니터링 요구사항이 더 많습니다.

연습문제: 이해도 확인

다음 네 가지 문장 중 정적 추론에 관해 참인 문장은 세 개입니다.
모델은 가능한 모든 입력에 대해 예측을 생성해야 합니다.
예. 모델은 가능한 모든 입력에 대해 예측을 수행하고 이를 캐시 또는 조회 테이블에 저장해야 합니다. 모델이 예측하는 항목 집합이 제한되어 있다면 정적 추론을 사용하는 것이 좋습니다. 그러나 드물거나 희귀한 항목이 많은 사용자 쿼리와 같은 자유 형식 입력의 경우 정적 추론으로 전체 적용 범위를 제공할 수 없습니다.
시스템은 추론된 예측을 게재하기 전에 확인할 수 있습니다.
예, 이는 정적 추론의 유용한 측면입니다.
특정 입력에 대해 모델은 동적 추론보다 빠르게 예측을 제공할 수 있습니다.
예, 정적 추론은 거의 항상 동적 추론보다 빠르게 예측을 제공할 수 있습니다.
전 세계의 변화에 빠르게 대응할 수 있습니다.
아니요. 이는 정적 추론의 단점입니다.
다음 중 동적 추론에 관해 참인 문장은 무엇인가요?
가능한 모든 항목에 대해 예측을 제공할 수 있습니다.
예, 이는 동적 추론의 강점입니다. 들어오는 모든 요청에는 점수가 부여됩니다. 동적 추론은 영화 리뷰에 작성된 모든 가능한 문장의 공간과 같이 희귀한 항목이 많은 롱테일 분포를 처리합니다.
예측을 사용하기 전에 예측의 사후 검증을 수행할 수 있습니다.
일반적으로 예측은 주문형으로 이루어지므로 모든 예측을 사용하기 전에 사후 검증을 수행할 수 없습니다. 하지만 집계된 예측 품질을 모니터링하여 어느 정도의 품질 검사를 제공할 수는 있지만, 화재가 이미 확산된 후에만 화재 경보가 울립니다.
동적 추론을 실행할 때는 정적 추론을 실행할 때만큼 예측 지연 시간 (예측을 반환하는 데 걸리는 지연 시간)을 걱정할 필요가 없습니다.
예측 지연 시간은 동적 추론에서 종종 실제적인 문제입니다. 하지만 추론 서버를 더 추가한다고 해서 반드시 예측 지연 시간 문제가 해결되는 것은 아닙니다.