LoginSignup
1
0

More than 1 year has passed since last update.

Databricksワークスペース間における機械学習モデルの共有(実践編)

Posted at

Databricksワークスペース間における機械学習モデルの共有で紹介されている、ワークスペース間でのモデル共有の手順を実際にトライした内容となっています。

集中管理されるモデルレジストリ用のワークスペースを構築することで、開発ワークスペース、本格運用ワークスペースなどで機械学習モデルを共有することが可能となります。

本書では以下の2つのワークスペースを使用します。

  1. ローカルワークスペース: モデル開発を行うワークスペースとなります。
    • URLはhttps://local-tydb-test-environment.cloud.databricks.com/であるとします。
  2. モデルレジストリワークスペース: モデルを集中管理するためのワークスペースです。
    • URLはhttps://model-registry-tydb-test-environment.cloud.databricks.com/であるとします。

Screen Shot 2022-01-17 at 13.05.13.png

実際に運用を行う際には、これ以外にもテスト用のワークスペース、モデルを本格運用するためのワークスペースなどを要件に応じて構築することになります。

モデルレジストリワークスペースでアクセストークンを作成

API経由でワークスペースを操作するため、アクセスに必要となるパーソナルアクセストークンを作成します。

注意
パーソナルアクセストークンは厳重に管理してください。ノートブックに直接記述するのではなく、シークレットに保管することを強くお勧めします。

Settings > User Settings > Access Tokens > Generate New Tokenを選択し、トークン名、有効日数を指定してGenerateをクリックします。表示されるトークンをメモしておきます。
Screen Shot 2022-01-17 at 11.32.12.png

ローカルのワークスペースでパーソナルアクセストークンを作成

次のステップで必要となるので、上の手順に従いローカルワークスペースでもパーソナルアクセストークンを生成してメモしておきます。

ローカルのワークスペースでシークレットを作成

ここでは、Databricks CLI(コマンドラインインタフェース)を用いてシークレットを作成します。

CLIをインストールしていない場合には、ローカルマシンにインストールの上、トークンの設定を行なってください。ここでは、ローカルワークスペースのパーソナルアクセストークンが必要となります。

bash
databricks configure --token

上記を実行すると、ホスト名とトークンを聞かれるのでホスト名にはhttps://local-tydb-test-environment.cloud.databricks.com/、トークンはローカルワークスペースで生成したパーソナルアクセストークンを設定します。これによって、ローカルワークスペースにアクセスして各種操作を行えるようになります。

シークレットのスコープの定義

Databricksのシークレットは「スコープ」というある種のグループで管理します。ここではスコープ名はmodel-shareとします。

bash
databricks secrets create-scope --scope model-share

シークレットの作成:リモートレジストリのホスト名

以降の3つの設定では、ワークスペースを識別できるようにスコープ名にプレフィクスを追加します。ここでは、モデルレジストリワークスペースに対するプレフィクスをremote-registryとします。複数のワークスペースを取り扱う際には、一意となるプレフィクスを適宜つけてください。

bash
databricks secrets put --scope model-share --key remote-registry-host

上を実行するとエディタが開きますので、今回の例ではhttps://model-registry-tydb-test-environment.cloud.databricks.com/を入力して保存・終了します。

シークレットの作成:リモートレジストリのトークン

bash
databricks secrets put --scope model-share --key remote-registry-token

上を実行するとエディタが開きますので、モデルレジストリワークスペースでアクセストークンを作成で作成したパーソナルアクセストークンを入力して保存・終了します。

シークレットの作成:リモートレジストリのワークスペースID

bash
databricks secrets put --scope model-share --key remote-registry-workspace-id

ワークスペースIDは、こちらで説明されているようにブラウザから対象のワークスペースにアクセスした際にURLに含まれています。https://<databricksワークスペースのホスト名>/?o=6280049833385130となっている場合、ワークスペースIDはo=以降の6280049833385130となります。

上を実行するとエディタが開きますので、モデルレジストリワークスペースのワークスペースIDを入力して保存・終了します。

サンプルノートブック

  1. 上のノートブックをローカルワークスペースにインポートします。
  2. MLランタイムが動作するクラスターにノートブックをアタッチします。
  3. ノートブック上部にウィジェットが表示されているので、1_registry_secret_scopeには、シークレットのスコープ名model-share2_registry_secret_key_prefixには、モデルレジストリワークスペースのプレフィクスremote-registryを入力し、以降のセルを実行していきます。

これだけで、ワークスペース間での機械学習モデルの共有が可能となります。

Databricks 無料トライアル

Databricks 無料トライアル

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0