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
インストール
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 -
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 [ CPU 、 GPU ] を参照してください。
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