Databricks Certified Machine Learning Associate 無料問題 9 / 10 ・ 分野4: Model Deployment
1件の入力ごとにシミュレーションを回すカスタムモデルがあり、1件の計算に約15分かかる。対象は毎日数千件で、結果は翌朝までにそろえばよい。担当者は、このモデルを Model Serving のエンドポイントに置き、1件ずつ REST で問い合わせる案を出した。公式の記述に照らして、どう判断するか。
- エンドポイントは使わず、Spark のバッチ推論にする。エンドポイントは計算が上限の時間を超えたリクエストをタイムアウトにする
- エンドポイントを使い、ゼロへのスケールを無効にする。起きたままの状態なら、長い計算でも応答を待ち続けられる
- エンドポイントは使わず、Spark のバッチ推論にする。エンドポイントの served entity は同時に1件ずつ順にリクエストを処理する
- エンドポイントを使い、GPU のワークロードタイプを選ぶ。GPU のエンドポイントには1件の計算の時間の上限が無い
正解と解説を見る
正解: A
正解の理由
カスタムモデルの Model Serving には「Expectations and limitations」に、モデルの計算が決まった時間を超えるとリクエストがタイムアウトする、という制限が書かれている(取得日の文書の値は597秒)。1件に約15分(900秒)かかる計算は、エンドポイントでは応答を返せない。そのうえ、この場面は翌朝までにそろえばよく、1件ずつの低い遅延も要らない。表の全件を Spark のクラスタでまとめてスコアするバッチ推論が合う。
違う選択肢
「エンドポイントは使わず、Spark のバッチ推論にする。エンドポイントの served entity は同時に1件ずつ順にリクエストを処理する」… served entity が同時に処理できる数は Compute Scale-out のサイズで決まり、1件ずつ順に処理するという説明は無い。バッチにする理由はそこではなく、1件の計算の時間がタイムアウトの上限を超えることにある。
「エンドポイントを使い、ゼロへのスケールを無効にする。起きたままの状態なら、長い計算でも応答を待ち続けられる」… ゼロへのスケールは、使われない間に容量を0まで下げるかどうかの設定で、0から戻るときの遅れ(コールドスタート)に関わる。無効にしても、1件の計算が上限を超えたリクエストのタイムアウトは変わらない。
「エンドポイントを使い、GPU のワークロードタイプを選ぶ。GPU のエンドポイントには1件の計算の時間の上限が無い」… GPU のワークロードについて書かれた制限は、コンテナの作成が CPU より長くかかること、自動のスケールが遅いことなどで、リクエストの時間の上限を外すという記述は無い。タイムアウトの制限はカスタムモデルのエンドポイント全体の説明に置かれている。
押さえどころ
リアルタイムの推論は、1件ずつ低い遅延で返す用途のための仕組みで、長い計算や一晩でまとめて済む処理には向かない。リクエストの時間の上限は、エンドポイントで扱えるかどうかを最初に分ける条件になる。
Databricks Certified Machine Learning Associateの演習アプリ(無料10問・全問は解錠で)へ