Instalação

Instalando ModelServer

Instalando usando Docker

A maneira mais fácil e direta de usar o TensorFlow Serving é com imagens Docker . É altamente recomendável essa rota, a menos que você tenha necessidades específicas que não sejam atendidas pela execução em um contêiner.

DICA: Essa também é a maneira mais fácil de fazer o TensorFlow Serving funcionar com suporte a GPU .

Instalando usando APT

Binários disponíveis

O binário TensorFlow Serving ModelServer está disponível em duas variantes:

tensorflow-model-server : servidor totalmente otimizado que usa algumas otimizações de compilador específicas da plataforma, como instruções SSE4 e AVX. Esta deve ser a opção preferida para a maioria dos usuários, mas pode não funcionar em algumas máquinas mais antigas.

tensorflow-model-server-universal : Compilado com otimizações básicas, mas não inclui conjuntos de instruções específicos da plataforma, portanto, deve funcionar na maioria, senão em todas as máquinas existentes. Use isto se tensorflow-model-server não funcionar para você. Observe que o nome binário é o mesmo para ambos os pacotes, portanto, se você já instalou o tensorflow-model-server, você deve primeiro desinstalá-lo usando

apt-get remove tensorflow-model-server

Instalação

  1. Adicionar o URI de distribuição do TensorFlow Serving como origem do pacote (configuração única)

    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. Instalar e atualizar o TensorFlow ModelServer

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

Uma vez instalado, o binário pode ser invocado usando o comando tensorflow_model_server .

Você pode atualizar para uma versão mais recente do tensorflow-model-server com:

apt-get upgrade tensorflow-model-server

Construindo a partir da fonte

A abordagem recomendada para construir a partir do código-fonte é usar o Docker. As imagens de desenvolvimento do TensorFlow Serving Docker encapsulam todas as dependências necessárias para criar sua própria versão do TensorFlow Serving.

Para obter uma lista de quais são essas dependências, consulte os Dockerfiles de desenvolvimento do TensorFlow Serving [ CPU , GPU ].

Instalando o Docker

As instruções gerais de instalação estão no site do Docker .

Clone o script de construção

Depois de instalar o Docker, precisamos obter a fonte a partir da qual queremos construir. Usaremos o Git para clonar o branch master do TensorFlow Serving:

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

Construir

Para construir em um ambiente hermético com todas as dependências atendidas, usaremos o script run_in_docker.sh . Este script passa comandos de construção para um contêiner Docker. Por padrão, o script será compilado com a imagem noturna de desenvolvimento mais recente do Docker.

O TensorFlow Serving usa o Bazel como ferramenta de compilação. Você pode usar comandos do Bazel para criar destinos individuais ou a árvore de origem inteira.

Para construir a árvore inteira, execute:

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

Os binários são colocados no diretório bazel-bin e podem ser executados usando um comando como:

bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server

Para testar sua compilação, execute:

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

Consulte o tutorial básico e o tutorial avançado para obter exemplos mais detalhados de execução do TensorFlow Serving.

Criação de versões específicas do TensorFlow Serving

Se você deseja compilar a partir de um branch específico (como um branch de lançamento), passe -b <branchname> para o comando git clone .

Também desejaremos combinar o ambiente de construção para esse ramo de código, passando ao script run_in_docker.sh a imagem de desenvolvimento do Docker que gostaríamos de usar.

Por exemplo, para criar a versão 1.10 do TensorFlow Serving:

$ 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/...
...
Construção otimizada

Se quiser aplicar otimizações geralmente recomendadas, incluindo a utilização de conjuntos de instruções específicos da plataforma para seu processador, você pode adicionar --config=nativeopt aos comandos de compilação do Bazel ao criar o TensorFlow Serving.

Por exemplo:

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

Também é possível compilar usando conjuntos de instruções específicos (por exemplo, AVX). Onde quer que você veja bazel build na documentação, basta adicionar os sinalizadores correspondentes:

Conjunto de instruções Bandeiras
AVX --copt=-mavx
AVX2 --copt=-mavx2
FMA --copt=-mfma
SSE 4.1 --copt=-msse4.1
SSE 4.2 --copt=-msse4.2
Todos suportados pelo processador --copt=-march=native

Por exemplo:

tools/run_in_docker.sh bazel build --copt=-mavx2 tensorflow_serving/...
Construindo com suporte de GPU

Para criar uma versão personalizada do TensorFlow Serving com suporte a GPU, recomendamos compilar com as imagens Docker fornecidas ou seguir a abordagem no GPU Dockerfile .

Pacote PIP da API Python do TensorFlow Serving

Para executar o código do cliente Python sem a necessidade de construir a API, você pode instalar o pacote PIP tensorflow-serving-api usando:

pip install tensorflow-serving-api