概要
このコード・パターンでは Watson Studio 内で稼働する Jupyter Notebook を使用して、サーバーレス・コンピューティングで AI データの前処理に大きなメリットをもたらす方法を説明します。例として Watson Machine Learning サービスを利用した深層学習による顔認識を用い、深層学習のデータを準備するフェーズで、PyWren と IBM Cloud Functions を利用してデータを前処理します。これにより、サーバーレス・コンピューティングを使用せずに同じコードを実行する場合に比べ、プロセス全体の処理速度が 50 倍向上します。
説明
例えば、データを処理して分析する関数を Python で作成するとします。この関数を少量のデータを使ってテストすると、うまく動作しました。そこで、次はこの関数をテラバイト・クラスのデータに対して大規模並列処理が可能なサーバーレス・アクションとして実行することにします。
それには、どのような方法があるでしょうか?今からクラウド IT の手法を学んで、仮想マシンをセットアップすることは、当然したくありません。また、入力データのスケーリング、出力処理、並列実行のモニタリングに長けたサーバーレス・コンピューティング・エキスパートになりたいわけでもありません。
答えは PyWren にあります。PyWren を使用すると、大規模なデータ・セットに対してコードを実行し、結果を取得してデータから引き出した洞察の価値を確認することができます。しかも、複数のジョブが同様の方法で並列処理されるため、処理時間が大幅に短縮します。
このコード・パターンでは、PyWren でデータを前処理するワークフローを最初から最後まで確認した後、前処理されたデータを使用して AI モデルをトレーニングします。
フロー
- IBM Watson Studio にログインします。
- Watson Studio 内で Jupyter Notebook を実行します。
- 画像データを Cloud Object Storage バケットにロードします。
- PyWren と IBM Cloud Functions を利用して画像を前処理します。
- Watson Machine Learning で TensorFlow と scikit-learn を使用してモデルを作成し、トレーニングします。
手順
このパターンの詳細な手順については、README を参照してください。手順の概要は以下のとおりです。
- Cloud Object Storage インスタンスをセットアップします。
- Watson Machine Learning サービス・インスタンスを作成します。
- IBM Cloud Functions サービス・インスタンスを作成します。
- Watson Studio プロジェクトを作成します。
- カスタムのランタイム環境を作成します。
- ノートブックを作成します。
- ノートブックを実行します。
- 結果を確認します。