TensorFlow Servingの概要

TensorFlow Servingは、TensorFlowの学習済みモデルを本番環境で運用するためのシステム(RPCサーバー)です。

機械学習で得たモデルを使用したい場合に、TensorFlow Servingは便利です。インターフェースとして使用できる言語は様々なものに対応しています。インターフェースはgRPCなので、gRPCを対応している言語なら全部対応しています。

私はJavaが得意なのでJavaでTensorFlow Servingを扱ってみようと思います。TensorFlowで機械学習をするにはpythonかC++で扱うのが王道のようで、提供されているAPIを見る限り、TensorFlowをJavaで扱うのは得策ではなさそうです。

TensorFlow Servingは次のような特徴を持ちます。

  • TensorFlow ServingはLinuxにインストールする。(Dockerでもいける)
  • TensorFlowの学習済みモデルをTensorFlow Servingに登録する。
  • クライアントプログラムから予測したいデータを送信すると、TensorFlow Servingに登録された学習済みモデルが予測した結果を返す。
  • gRPCインターフェースを持つ

分かりやすく参考になったサイトをご紹介します。

【TensorFlow】学習済みモデルをサーバーで動かすServingとは – Samurai Blog

TensorFlow Servingで機械学習モデルをプロダクション環境で運用する – freee Developers blog

インターフェースがgRPCということで、まずはgRPCの勉強から始めると良いと思います。