PR

Notebook Serversを使って機械学習モデルを作成する

2021年11月26日(金)
張替 清音(はりがえ きよなり)
連載3回目となる今回は、Notebook Serversを使って、機械学習モデルを作成します。

はじめに

前回は、Kubeflowの内部構造の解説と構築を行いました。今回は、Kubeflowのコンポーネントの一つである「Notebook Servers」を使ってJupyter notebookを作成し、その環境上で機械学習モデルを作成するところまでを解説します。なお、本稿の後半部分で解説する機械学習モデルの開発のステップやハンズオンで利用するサンプルは、次回以降に解説するTensorFlow Extended (TFX) を使った機械学習パイプラインの構築にもつながる内容となっているため、おさえておくことをお勧めします。

「Notebook Servers」について

Kubeflowのコンポーネントの一つである「Notebook Servers」は、Jupyter notebookの作成と管理が行える機能を提供しています。管理画面(WebUI)から簡単な設定を行うだけで、Jupyter notebookの作成や利用することができ、ユーザーごとに複数管理することができます。Jupyter notebookはローカル環境においてもAnacondaなどのパッケージを利用することで簡単に導入できますが、「Notebook Servers」を利用するメリットとしては以下の点が挙げられます。

  • 環境の再現性を高められる:「Notebook Servers」はコンテナ化されたJupyter notebookを前提に作成を行うため、あらかじめインストールが必要なパッケージや設定を含めた環境をコンテナイメージとして管理できます。ノートブック(.ipynbファイル)とセットで管理することで、開発時の環境を再現しやすくできます
  • ユーザー間で共有できる:複数のユーザーで利用できる共通の基盤上にJupyter notebookを作成できるため、データ分析や可視化した結果、開発中のモデルなどを共有し共同作業を行うことが可能です。
  • モデルの開発と運用を共通の基盤で実施できる:「KFServing」や「Kubeflow Pipelines」といったモデルのデプロイや運用を行うためのKubeflow のコンポーネントとシームレスに連携することが可能です。

手元の環境で試行錯誤した結果、ようやく高精度なモデルが作成できたとしても、いざ本番環境で稼働させようとした際に、「別の環境では再現ができない(結果が大きく変わってしまう)」や「チーム内で共有したいが簡単に共有できない」「(デプロイ先の環境や運用基盤の違いなどにより)すぐに本番環境で利用できない」といった問題が発生してしまうと、その価値を発揮させることが困難になります。「Notebook Servers」を利用することで、機械学習モデルの開発者が試行錯誤や共同作業ができる環境だけでなく、開発したモデルの本番稼働に近づけることも可能になります。

Jupyter notebook 環境を作成する

それでは、「Notebook Servers」を使って、Jupyter notebookを作成していきます。概略は以下のとおりで、すべてGUIで行うことができます。

  1. 「Kubeflow UI」にアクセス
  2. Jupyter notebook(ノートブックサーバー)の作成
  3. 必要なライブラリのインストール

それでは、まず「Kubeflow UI」にアクセスしてJupyter notebookを作成していきましょう。なお、本連載の第2回で解説した構築手順に沿ってKubeflowを構築済みの方は、記事内に記載されている「ポートフォワーディング」の手順が実施済みであることが前提となっています。

1. Kubeflow UIにアクセス

Kubeflow UIの左側にあるパネルの中から、「Notebook Servers」をクリックします。

図1-1:Kubeflow UI

図1-1:Kubeflow UI

ノートブックサーバーの管理画面に遷移しますので、画面上部にある「+ NEW SERVER」をクリックして新規ノートブックサーバーを作成します。

図1-2:ノートブックサーバー管理画面

図1-2:ノートブックサーバー管理画面

2. Jupyter notebook(ノートブックサーバー)の作成

作成するノートブックサーバーの名前やメモリ等の設定を行います。ノートブックサーバーはコンテナイメージ(Docker Image)から作成します。今回は標準で選択できるコンテナイメージを使用します。

図1-3:ノートブックサーバー設定画面

図1-3:ノートブックサーバー設定画面

本稿で使用するノートブックサーバーの設定は下記のようになります。ここで記載のない項目についてはデフォルト設定のままで問題ありません。

項目名設定値備考
Nameexample-notebookノートブックサーバーの名前
Imagegcr.io/kubeflow-images-public/tensorflow-2.1.0-notebook-cpu:1.0.0ノートブックサーバーのDocker Image
CPU2ノートブックサーバーの CPU個数
Memory5.0Giノートブックサーバーのメモリ容量
※Notebook Servers側の入力規則に従い、単位は「Gi」で設定します

設定が完了したら、画面下部にある「LAUNCH」ボタンをクリックしてノートブックサーバーを作成します。

数分待つとノートブックサーバーの作成が完了します。作成できたら「CONNECT」をクリックしてノートブックサーバーに接続します。

図1-4:ノートブックサーバー管理画面

図1-4:ノートブックサーバー管理画面

ノートブックに接続するとJupyter notebookのUIに遷移します。

図1-5:Jupyter notebook の UI

図1-5:Jupyter notebook の UI

3. 必要なライブラリのインストール

機械学習モデルを開発するために必要なライブラリをインストールします。まずはノートブックを作成するため、画面右上にある[New]→[Python 3]をクリックします。

図1-6:ノートブックの環境選択

図1-6:ノートブックの環境選択

今回必要なライブラリとしてTensorFlow Extended(TFX)scikit-learnwitwidgetalibiseabornboto3をインストールします。ノートブックのセルにライブラリインストールのコマンドを入力し実行します。

!pip install tfx==1.2.1 scikit-learn==0.24.2 witwidget==1.8.1 alibi==0.6.0 seaborn==0.11.2 boto3==1.20.5 --user

上述のコマンドの実行結果は、以下のようになります。

図1-7:ライブラリインストール結果

図1-7:ライブラリインストール結果

画面上部の「restart the kernel」(赤枠)のボタンをクリックし、ノートブックの環境を再起動します。

図1-8:restart the kernel ボタン

図1-8:restart the kernel ボタン

再起動確認ポップアップが表示されますので、「Restart」ボタンをクリックします。

図1-9. 再起動確認ポップアップ

図1-9. 再起動確認ポップアップ

これで機械学習モデルを開発する環境の準備ができました。次は機械学習モデル開発の各ステップの概要を解説した後に、このJupyter notebookを使った実際の操作を解説していきます。

著者
張替 清音(はりがえ きよなり)
NTTデータ先端技術株式会社

ソフトウェアソリューション事業本部 AIソリューション事業部 ビッグデータ基盤担当

2017年入社。HadoopやSparkといったOSSのビッグデータ基盤の導入支援や技術開発を経て、現在はサイバーセキュリティ対策のためのデータ分析基盤の構築や、 OSSをベースとしたクラウドネイティブなデータ分析・活用基盤に関する技術検証やソリューション開発に従事。

連載バックナンバー

開発ツール技術解説
第3回

Notebook Serversを使って機械学習モデルを作成する

2021/11/26
連載3回目となる今回は、Notebook Serversを使って、機械学習モデルを作成します。
AI・人工知能技術解説
第2回

Kubeflowを構築する

2021/10/27
連載の2回目となる今回は、Kubeflowの内部構造の概要と構築手順について解説します。
AI・人工知能技術解説
第1回

Kubeflowとは

2021/9/24
連載第1回目となる今回は、Kubeflowの登場した背景とその概要について解説します。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています