第8章 独立した Python 関数としてモデルを保存
データモデルを独立した Python 機能に切り替えて、ノートブックサーバー環境外でこれを実行し、これをインテリジェントアプリケーションで使用できます。
前提条件
- JupyterLab インターフェイスへのアクセスがある。
- Jupyter ノートブックで予測モデルを開発している。
- Jupyter ノートブックが、Red Hat OpenShift DataScience サンプル S2I アプリケーションリポジトリーから作成された Git リポジトリーに保存されている。
手順
-
JupyterLab で、新しい
prediction.pyファイルを作成します。 prediction.pyファイルを編集し、Jupyter ノートブックの予測モデルに基づいてpredict関数を定義します。- 予測の作成に必要なコードのみを含めます。たとえば、Jupyter ノートブックでのプロットのレンダリングにのみ関連するライブラリーをインポートする必要はありません。
-
予測を実行するために新しいパッケージが必要な場合は、
requirements.txtファイルの内容を更新し、pip install -r requirements.txtを実行して新規パッケージをインストールします。
新しいノートブックセルで関数を呼び出すことにより、ノートブックから独立した Python 関数を実行できることをテストします。以下はその例です。
from prediction import predict predict(data)
検証
-
predict関数が正しく実行され、ノートブックセルから呼び出されると予想される出力を返します。
8.1. ノートブックサーバーへの Python パッケージのインストール
パッケージとバージョンを requirements.txt ファイルに追加し、ノートブックセルで pip install コマンドを実行すると、デフォルトのノートブックサーバーイメージには含まれない Python パッケージをインストールできます。
パッケージを直接インストールすることもできますが、Red Hat は、requirements.txt ファイルを使用して、ファイルに記載されているパッケージを異なるノートブック間で簡単に再利用できるようにすることをお勧めします。さらに、requirements.txt ファイルを使用すると、S2I ビルドを使用してモデルをデプロイする場合にも役立ちます。
前提条件
- Jupyter にログインし、ノートブックを開いている。
手順
以下の方法のいずれかを使用して、新規テキストファイルを作成します。
- + をクリックして新規ランチャーを開き、Text file をクリックします。
- File → New → Text File の順にクリックします。
テキストファイルの名前を
requirements.txtに変更します。- ファイルの名前を右クリックし、Rename Text をクリックします。Rename File ダイアログが開きます。
-
New Name フィールドに
requirements.txtを入力し、Rename をクリックします。
Requirements.txtファイルにインストールするパッケージを追加します。altair
==(equal to) 演算子を使用して、インストールするバージョンを指定できます。以下はその例です。altair==4.1.0
注記Red Hat は、時間が経過してもノートブックサーバーの高い安定性を確保するために、正確なパッケージバージョンを指定することをお勧めします。新しいパッケージバージョンは、お使いの環境における動作に対し、望ましくない/予期しない変更を加える可能性があります。
複数のパッケージを同時にインストールする場合は、各パッケージを別々の行に配置します。
ノートブックセルを使用して、
requirements.txtのパッケージをサーバーにインストールします。ノートブックに新しいセルを作成し、以下のコマンドを入力します。
!pip install -r requirements.txt
- Shift と Enter を押してセルを実行します。
重要ノートブックサーバーにパッケージがインストールされますが、コードセルで
importディレクティブを実行してコード内のパッケージを使用する必要があります。import altair
検証
-
requirements.txtのパッケージが、ノートブックサーバーにインストールされているパッケージ一覧に表示されることを確認します。詳細は、ノートブックサーバーにインストールされている Python パッケージの表示 を参照してください。