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は必須のようです。
他にもいろいろ書いてあるのですが、実際にモデルを作り直して、デプロイを試しつつ、動作を確認していこうと思います。

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。画像認識モデルを活用したアプリや、生成AIを業務に組み込むためのサービス「Gen2Go」の開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。