Skip to the content.

Online bigsize pattern

Case

Situation

Webサービスにせよバッチ処理にせよ、ひとつの処理を完了するのに求められる所要時間の要件があります。Webサービスであれば1リクエストに対して1秒以内にレスポンスするという要件になります。バッチ処理であれば夜間6時間で1億件のレコードを完了する、というものになります。いかなるビジネスやシステムにおいても、時間は有限かつ貴重であるため、1回の処理に長時間を費やすことはできません。機械学習の推論器を組み込んで稼働させる場合、推論器の所要時間がシステムの要件を満たすように開発する必要があります。特に複雑で頂戴なディープラーニングのモデルは計算量が膨大になるため、Webサービスでオンラインで稼働させることは難しくなるでしょう。スケールアウトやスケールアップで1サーバの処理量を減らして高速化することも可能ですが、1推論時間が要件を満たすことが条件になります。推論の処理時間を短縮するために推論用GPUを使うことも可能ですが、通常のCPUよりコストが割高になります。シンプルなモデルで推論速度を向上することも可能ですが、Accuracy等の評価値が複雑なモデルよりも低くなる可能性もあります。
モデルの評価vsスピードのバランスに正解はありませんが、どういう推論とスピードであればビジネスやシステム要件を満たすのか、モデル開発と共同してサービスレベルを定めることが肝要です。

Diagram

diagram

Pros

Cons

Work around