サーバレスリアルタイム推論を用いたDatabricksのモデルサービング

[Model serving with Serverless Real\-Time Inference \| Databricks on AWS](https://docs.databricks.com/mlflow/serverless-real-time-inference.html) [2022/10/26時点]の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

:::note info
**プレビュー**
本機能は[パブリックプレビュー](https://docs.databricks.com/release-notes/release-types.html)です。
:::

本書では、Databricksのサーバレスリアルタイム推論を、クラシックなMLflowモデルサービングと比較して利点と制限を説明します。

サーバレスリアルタイム推論は、お使いのMLflow機械学習モデルをスケーラブルなREST APIエンドポイントとして公開します。この機能では[サーバレスコンピュート](https://qiita.com/taka_yayoi/items/685a11ea726b2b34a174)を使用しており、このエンドポイントと関連する計算リソースはDatabricksクラウドアカウントで管理、実行されることを意味します。生じる利用料とストレージコストは無料ですが、課金を開始する際にはDatabricksから連絡を行います。

[クラシックのMLflowモデルサービング](https://qiita.com/taka_yayoi/items/b5a5f83beb4c532cf921)では、現在ではクラシックデータプレーンと呼ばれるお客様自身のアカウントの元で稼働するシングルノードクラスターを使用します。データプレーンには仮想ネットワークと、ノートブックやジョブで使用するクラスター、proおよびクラシックSQLウェアハウス、クラシックモデルサービングエンドポイントの様な関連づけられた計算資源が含まれます。

# なぜサーバレスリアルタイム推論を用いるのでしょうか？

サーバレスリアルタイム推論は以下を提供します。

- 1クリックでエンドポイントを起動できます: Databricksがあなたのモデルのためにプロダクションレディの環境を準備し、計算処理のためのサーバレス設定オプションを提供します。
- 高可用性とスケーラビリティ: サーバレスリアルタイム推論は、プロダクション用途を意図しており、秒間3000クエリー(QPS)までをサポートすることができます。サーバレスリアルタイム推論エンドポイントは、自動でスケールアップ・ダウンするので、エンドポイントはスコアリングのリクエストのボリュームに応じて自動で調整することを意味します。
- ダッシュボード: QPS、レーテンシー、エラー率のようなメトリクスを用いて、モデルエンドポイントの健康状態をモニターするために、ビルトインのサーバレス推論ダッシュボードを活用します。
- 特徴量ストアのインテグレーション: お使いのモデルが、Databricks Feature Storeの特徴量を用いてトレーニングした場合、モデルは特徴量のメタデータとともにパッケージされます。[オンラインストアを設定](https://docs.databricks.com/machine-learning/feature-store/automatic-feature-lookup.html)した際、スコアリングのリクエストを受け取ると、これらの特徴量がリアルタイムで組み込まれます。

# 制限

このサービスはプレビューですが、以下の制限が適用されます。

- ペイロードサイズの上限はリクエストあたり16MBです。
- 登録されているワークスペースあたりのQPSのデフォルトの制限は200QPSです。Databricksサポート窓口にコンタクトすることで、ワークスペースあたり3000QPSまで制限を引き上げることができます。
- レーテンシーのオーバーヘッドはベストエフォートで100m秒以下です。可用性に関してもベストエフォートです。

IP許可リストが有効化されていない場合、サーバレスリアルタイム推論エンドポイントは内向き通信に関しては、インターネットにオープンとなります。IP許可リストはエンドポイントにも適用されます。

# 利用できるリージョン

サーバレスリアルタイム推論は以下のAWSリージョンで利用できます。

- eu-west-1
- eu-central-1
- us-east-1
- us-east-2
- us-west-2
- ca-central-1
- ap-southeast-1
- ap-southeast-2

# ステージングとプロダクションにおける時間の期待値

モデルをステージングからプロダクションに移行するには時間を要します。新たに登録されたモデルバージョンのデプロイには、モデルコンテナイメージの作成とモデルエンドポイントの廃部が含まれます。このプロセスは~5分程度かかることがあります。

Databricksでは、`/staging`と`/production`エンドポイントの「ゼロダウンタイム」のアップデートを、新たなデプロイメントが準備できるまで既存のモデルデプロイメントを保持し続けることで実現します。この様にすることで、利用中のモデルエンドポイントを阻害しない様にします。

モデル計算処理が60秒以上要するとリクエストはタイムアウトします。モデルの計算処理が60秒以上かかることが事前にわかっているのであれば、Databricksサポート窓口にコンタクトしてください。

# 前提条件

:::note warn
**重要！**
パプリックプレビュー期間中にワークスペースでサーバレスリアルタイム推論を有効化するには、Databricks担当者にお問い合わせください。
:::

サーバレスリアルタイム推論エンドポイントを作成する前に、ワークスペースでこれらを有効化する必要があります。[Enable Serverless Real\-Time Inference endpoints for model serving](https://docs.databricks.com/mlflow/migrate-and-enable-serverless-real-time-inference.html)をご覧ください。

ワークスペースでサーバレスリアルタイム推論エンドポイントが有効化したら、モデルサービングのためにエンドポイントを作成するために以下の権限が必要となります。

- ワークスペースでの[クラスター作成権限](https://docs.databricks.com/administration-guide/access-control/cluster-acl.html)。
- サービングする登録モデルに対する[Can Manage Production Versions](https://qiita.com/taka_yayoi/items/2dd6711b7b254505e4a3#mlflow%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E6%A8%A9)権限。


# その他のリソース

- [Create and manage Serverless Real\-Time Inference endpoints](https://docs.databricks.com/mlflow/create-manage-serverless-model-endpoints.html)
- [Migrate your classic model serving endpoints to Serverless Real\-Time Inference endpoints](https://docs.databricks.com/mlflow/migrate-and-enable-serverless-real-time-inference.html)

### Databricks 無料トライアル

[Databricks 無料トライアル](https://databricks.com/jp/try-databricks)