Watson
ibmcloud
DSX

Watson Studioの「チーム」機能のいくつかを簡単にご紹介します

image

はじめに

こんにちわ! IBMのMLaaS(Machine Learning as a Service)である Watson Studioの「売り文句」の一つは「AIプロジェクトのチームを支援」です。「Pickerの方もCoderの方もお好きなツールを!」ってのはいいとして、それ以外に「チームの生産性を上げるために、どんな機能が盛りこまれているのかな?」と思ったので、調べてみました。ディープラーニングのような「派手」な機能ではないですが、結構地味にいい機能があったので、いくつかピックアップしてご紹介させてください。
image

プロジェクト

「チーム支援」といえば、まずはWatson Stduioには初めから「プロジェクト」という枠組みが用意されていることがあげられます。AIプロジェクトでの成果物=アセット(ノートブックやモデルなど)はプロジェクト単位にまとめられ、チームでシェアできます。「プロジェクト」とはチームの作業場であり、権限を与えられた全員でシェアできます。市場にはJupyperノートブックの環境をSaaSとして提供するものは色々ありますが、「チーム」の観点は薄く「個人の分析環境」に留まっているものが多い印象です。(具体的に申せば、Aさんが作ったNotebookをBさんがレビュー/修正する場合にどうすればいいでしょうか? メールで送る? ファイルをs3上でシェア?Watson Studioなら簡単です)

image

コラボするメンバーを招待するには

まずは「管理」-「アカウント」-「ユーザー」からユーザーを招待します。(この手順はIBM Cloudの通常の流れであり、Watson Studio固有の手順ではありません)
image

次にWatson Studioの「プロジェクト」の「Collaborators」タブでコラボしたいユーザーおよび役割を指定します。
image

結果、以下のように「プロジェクト」毎に異なる参加メンバーを指定でき、適切な権限を保持しながらコラボレーションを進められます。

image

データ

当然ですが、プロジェクトのデータ・アセットはチームでシェアできます。

コネクション

ここでご紹介したいのはコネクションです。Watson Studioでは他社クラウドやオンプレミスを含めた多様なデータソースを利用できますが、各々の接続情報は「コネクション」としてアセット登録して再利用できます。ので「えーと、s3上のファイル使いたいんだけど、アクセスキー何だっけ?」のような接続情報を各人が記録・記憶しておく必要は無く、全員で定義を共用/再利用できます。(変更時も一箇所変えればオーケーなので楽ですね)
image

データ・カタログ

データ・カタログ自体がデータに対するガバナンスをチームや関係者に提供するものではありますが、「チーム」面でお伝えしたい点としては

評価・コメント

下記のようにデータに関する評価やコメントを投稿することができます。
image

Jupyter Notebook

ロック

Notebookの編集中はロックがかかります。別の人は参照のみ可能です。ロックはNotebookのタブを閉じるか、鍵のマークのクリック(unlock)で解除できます。
image

また、Watson StudioのJupyter Notebookでは通常の機能に加え、「チーム向け」に以下の機能が独自に追加されています。(Notebook編集中のメニュー)

image

# 機能 説明
1 Publish on GitHub GitHub/GistへのNotebook公開
2 Share インターネット上でのシェア
3 Insert Project Token プロジェクト・トークンの挿入
4 Notebook Info ノートブック情報
5 Versions バージョン管理
6 Comments コメント
7 Data データアクセス・コードの生成
8 Find Resource in the community コミュニティの検索

以下、主なものをご紹介します。

1. GitHub/Gistへの公開(publish)

以下のようなNotebookがあり、公開したくない認証情報については@hidden_cellでタグ付けしてあるものとします。
image

ここでPublish to GitHubを実行します。デフォルトでは@hidden_cellタグの内容は公開されません。
image

以下のようにGitHub/Gistいずれでも同じように認証情報は隠しつつ、公開できました。
image

【ご参考】上記を実施する場合は事前にプロジェクトのSettingsで対象GitHubのリポジトリの場所を登録しておく必要があります。

image

:triangular_flag_on_post: 現時点(2018/05)での公開対象はパブリックのGitHubのみです。GitHub Enterprise等は現時点では未対応です
:triangular_flag_on_post: 現時点ではGitHubに分析結果などを「公開(Publish)」するだけであって、「Pull」や「CommitT」など、ブランチやバージョン管理などGitHubの全機能を使えるわけではありません。

マニュアル:Publish notebooks on GitHub

2. インターネット上でのノートブックの直接的なシェア

「URLを知ってる人は誰でも参照できる」でよいならば、Notebookを直接公開することもできます

  • 公開内容のレベルが選択できます
  • 公開されるのは「最新状態の内容」ではなく「最新のバージョン」です。よって公開したい状態で「Save Version」して最新のバージョンを作ってください。逆に言えばノートブックの公開と変更・更新作業は別々に進められる、ということです。

image

デフォルトの「Only text and output」ではコードは公開されませんので、コメントと結果だけを参照することになります。

image

3. プロジェクト・トークンの挿入

Notebookからプロジェクト上のアセット(データやコネクションなど)にアクセスする場合はプロジェクト・トークンが必要です。プロジェクト・トークンは下記のようにプロジェクトのSettingsメニューで生成します。

image

プロジェクト・トークンをNotebookのコードで利用する場合は下記の「insert project token」メニューを使うとコーディングの手間が省けます。

image

マニュアル:Manually add the project token

5. バージョン管理

Watson Stduio上で作ったNotebookは単にSaveするだけではなくバージョン管理できます。
image

右側のアイコンからも操作可能です。特定のバージョン時点に戻ることも、もちろん可能です。
image

6. コメント

Notebookにはコメントをつけられますのでレビューなどに便利です。
image

7. アクセス・コードの生成と挿入

アセットとして登録してあるデータにアクセスするPythonコードを自動的に生成できます。Notebookのセル上の挿入したい場所にカーソルを置いて、ファイルを選択して「Insert to code」を選択すると、該当のコードが生成されます。
image

以下の例ではIBM Cloud Object Storage上に置いてあるcsvファイルをPandasのDataFrameとしてアクセスするコードが生成されました。常にPandasというわけではなく、データの種類により適切なコードが選べるようになっています。
image

以下はファイルではなくコネクションの定義を生成した例です。AWSのS3やICOSなどの定義を生成しています、
image

Db2 Warehouseの場合はテーブルにアクセスするコードが生成できます。
image

8. コミュニティ・リソースの参照

事前に有用なリソースをブックマークしておけば
WS-01.gif

あとでNotebook利用中に検索できます。
image

プロジェクトのBookmarksタブからも参照できます。
image

スケジュール実行

Notebook作成時のランタイムとしてSparkを選択すれば、Notebookをスケジュール実行できます。
image

Spark上で動くNotebookの場合は追加で時計のアイコンが表示されます。
image

スケジュールされたNotebookには時計マークが付きます。
image

View Job Detailsではジョブのスケジュール情報は見られますが、実行結果は見られません。
image

ジョブの実行結果はWatson StudioではなくSparkサービス側のメニューから見られます。
image

マニュアル:Schedule a notebook to run at specific intervals

モデル

SPSS Modeler Flowでのバージョン管理

Modeler Flowでは以下のように最大10バージョンまで保持できます。
image

Modeler Builderでのバージョン管理

Model Builderを使った自動モデリング(Sparkベース)では、継続的学習システムの一環としてモデルの自動トレーニング~自動デプロイが可能です。前のバージョンのモデルも保持されており、そちらに戻すこともできます。
image

以上、簡単ですがWatson Studioでは単なる「個人用の分析環境」を越えた「チーム」支援機能が色々と追加されていることをご紹介しました。Watson Studioは永久無料のライトアカウントでも利用できますので、ぜひ一度触ってみてください。