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
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 -
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