インストール

ModelServer のインストール

Dockerを使用したインストール

TensorFlow Serving を使用する最も簡単で直接的な方法は、Docker イメージを使用することです。コンテナー内で実行することで対処できない特定のニーズがない限り、このルートを強くお勧めします。

ヒント: これは、TensorFlow Serving をGPU サポートで動作させる最も簡単な方法でもあります。

APTを使用したインストール

利用可能なバイナリ

TensorFlow Serving ModelServer バイナリは 2 つのバリアントで利用できます。

tensorflow-model-server : SSE4 や AVX 命令などのプラットフォーム固有のコンパイラ最適化を使用する、完全に最適化されたサーバー。これはほとんどのユーザーにとって推奨されるオプションですが、一部の古いマシンでは機能しない可能性があります。

tensorflow-model-server-universal : 基本的な最適化でコンパイルされていますが、プラットフォーム固有の命令セットは含まれていないため、すべてのマシンではないにしても、ほとんどのマシンで動作するはずです。 tensorflow-model-serverが機能しない場合は、これを使用してください。バイナリ名は両方のパッケージで同じであるため、既に tensorflow-model-server をインストールしている場合は、まず次のコマンドを使用してアンインストールする必要があることに注意してください。

apt-get remove tensorflow-model-server

インストール

  1. TensorFlow Serving ディストリビューション URI をパッケージ ソースとして追加します (1 回限りのセットアップ)

    echo "deb [arch=amd64] http://storage.googleapis.com/tensorflow-serving-apt stable tensorflow-model-server tensorflow-model-server-universal" | sudo tee /etc/apt/sources.list.d/tensorflow-serving.list && \
    curl https://storage.googleapis.com/tensorflow-serving-apt/tensorflow-serving.release.pub.gpg | sudo apt-key add -
    
  2. TensorFlow ModelServer のインストールと更新

    apt-get update && apt-get install tensorflow-model-server
    

インストールしたら、コマンドtensorflow_model_serverを使用してバイナリを呼び出すことができます。

以下を使用して、tensorflow-model-server の新しいバージョンにアップグレードできます。

apt-get upgrade tensorflow-model-server

ソースから構築する

ソースからビルドする場合に推奨されるアプローチは、Docker を使用することです。 TensorFlow Serving Docker 開発イメージには、TensorFlow Serving の独自バージョンを構築するために必要なすべての依存関係がカプセル化されています。

これらの依存関係のリストについては、TensorFlow Serving Development Dockerfiles [ CPUGPU ] を参照してください。

Docker のインストール

一般的なインストール手順は、Docker サイトにあります。

ビルドスクリプトのクローンを作成する

Docker をインストールした後、ビルドに使用するソースを取得する必要があります。 Git を使用して TensorFlow Serving のマスター ブランチを複製します。

git clone https://github.com/tensorflow/serving.git
cd serving

建てる

すべての依存関係を考慮した密閉環境を構築するには、 run_in_docker.shスクリプトを使用します。このスクリプトは、ビルド コマンドを Docker コンテナに渡します。デフォルトでは、スクリプトは最新の夜間 Docker 開発イメージを使用してビルドされます。

TensorFlow Serving は、ビルド ツールとして Bazel を使用します。 Bazel コマンドを使用して、個々のターゲットまたはソース ツリー全体を構築できます。

ツリー全体を構築するには、次を実行します。

tools/run_in_docker.sh bazel build -c opt tensorflow_serving/...

バイナリは bazel-bin ディレクトリに配置され、次のようなコマンドを使用して実行できます。

bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server

ビルドをテストするには、次を実行します。

tools/run_in_docker.sh bazel test -c opt tensorflow_serving/...

TensorFlow Serving の実行の詳細な例については、基本チュートリアル高度なチュートリアルを参照してください。

TensorFlow Serving の特定のバージョンを構築する

特定のブランチ (リリース ブランチなど) からビルドする場合は、 -b <branchname>git cloneコマンドに渡します。

また、使用する Docker 開発イメージをrun_in_docker.shスクリプトに渡すことで、そのコード ブランチのビルド環境を一致させることもできます。

たとえば、TensorFlow Serving のバージョン 1.10 をビルドするには、次のようにします。

$ git clone -b r1.10 https://github.com/tensorflow/serving.git
...
$ cd serving
$ tools/run_in_docker.sh -d tensorflow/serving:1.10-devel \
  bazel build tensorflow_serving/...
...
最適化されたビルド

プロセッサーのプラットフォーム固有の命令セットの利用など、一般に推奨される最適化を適用したい場合は、TensorFlow Serving をビルドするときに--config=nativeopt Bazel ビルド コマンドに追加できます。

例えば:

tools/run_in_docker.sh bazel build --config=nativeopt tensorflow_serving/...

特定の命令セット (AVX など) を使用してコンパイルすることも可能です。ドキュメント内でbazel build表示される場合は、対応するフラグを追加するだけです。

命令セットフラグ
AVX --copt=-mavx
AVX2 --copt=-mavx2
FMA --copt=-mfma
SSE4.1 --copt=-msse4.1
SSE4.2 --copt=-msse4.2
すべてプロセッサーでサポートされています--copt=-march=native

例えば:

tools/run_in_docker.sh bazel build --copt=-mavx2 tensorflow_serving/...
GPU サポートを使用したビルド

GPU サポートを備えた TensorFlow Serving のカスタム バージョンをビルドするには、提供された Docker イメージを使用してビルドするか、 GPU Dockerfileのアプローチに従うことをお勧めします。

TensorFlow サービング Python API PIP パッケージ

API をビルドせずに Python クライアント コードを実行するには、以下を使用してtensorflow-serving-api PIP パッケージをインストールします。

pip install tensorflow-serving-api