Watson Machine Learningへのモデルのデプロイはフレームワークのバージョン制限が厳しい

あるプロジェクトでWatson Machine Learning(以下、Watson ML)に、TensorFlowとKerasで作ったモデルをデプロイしているのですが、これが使えなくなってしまいました・・・。

いままでは、下記のようなバージョンのTensorFlowとKerasで作ったモデルをデプロイしていました。

TensorFlow 1.14.0と、Keras 2.2.4ですね。

それが、ある日突然(というわけでもないのでしょうが・・・)使えないようになり、再度デプロイしようとすると、こんなエラーになってしまいます。

TensorFlow 1.14じゃダメだというわけです。このメッセージにあるURLにアクセスしてみると、こんなことが書いてあります。

due to a recent security vulnerability for multiple TensorFlow versions, Watson Machine Learning (WML) will deprecate unsecure TensorFlow versions, including 1.13 and 1.14.

TensorFlow 1.14はセキュリティの脆弱性が有り、Watson MLでのサポートは廃止だということです。で、どうすれば良いかというと・・・

You have the following upgrade options:
TensorFlow 1.15
Keras 2.2.5 with TensorFlow 1.15 backend

TensorFlow 1.15でモデルを作るか、TensorFlow 1.1.5をバックエンドにしたKeras 2.2.5でモデルを作って、それをデプロイするしかなさそうです。

また、調べてみると、IBM Cloudから、このような資料がありました。

Keras
Keras 2.2.5 with TensorFlow 1.15 in an Anaconda 2019.03 environment
Deployment: online and batch only.
Core ML
Only JSON content is supported as the payload for scoring.
tf.estimator is not supported.
User-defined layers with trainable weights are not supported. However, stateless custom operations defined using layers.core.Lambda layers are supported with online deployment.
Online deployment uses Python 3.6.

やはりKeras 2.2.5とTensorFlow 1.15は必須のようです。
他にもいろいろ書いてあるのですが、実際にモデルを作り直して、デプロイを試しつつ、動作を確認していこうと思います。

この記事を書いた人

井上 研一

株式会社VIVINKO 代表取締役
経済産業省推進資格ITコーディネータ/ITエンジニア

AI・IoTに強いITコーディネータとして活動していたところ、2017年に北九州市主催のビジネスコンテスト「北九州でIoT」に当時主催していたコミュニティで応募したアイディアが入選。2018年、株式会社ビビンコ(現VIVINKO)を北九州市に設立し、IoTソリューションの開発・導入や、画像認識モデルを活用したアプリの開発を行う。2024年、生成AIを業務に組み込むためのサービス「Gen2Go」を開発し、北九州発!新商品創出事業の認定を受ける。日本全国でセミナー・研修講師としての登壇も多数。