Installation

Installation de ModelServer

Installation à l'aide de Docker

La manière la plus simple et la plus directe d'utiliser TensorFlow Serving consiste à utiliser les images Docker . Nous recommandons fortement cette voie, sauf si vous avez des besoins spécifiques qui ne sont pas satisfaits par une exécution dans un conteneur.

CONSEIL : Il s'agit également du moyen le plus simple de faire fonctionner TensorFlow Serving avec la prise en charge du GPU .

Installation avec APT

Binaires disponibles

Le binaire TensorFlow Serving ModelServer est disponible en deux variantes :

tensorflow-model-server : serveur entièrement optimisé qui utilise certaines optimisations de compilateur spécifiques à la plate-forme telles que les instructions SSE4 et AVX. Cela devrait être l’option préférée de la plupart des utilisateurs, mais elle peut ne pas fonctionner sur certaines machines plus anciennes.

tensorflow-model-server-universal : Compilé avec des optimisations de base, mais n'inclut pas de jeux d'instructions spécifiques à la plate-forme, il devrait donc fonctionner sur la plupart, sinon toutes les machines. Utilisez-le si tensorflow-model-server ne fonctionne pas pour vous. Notez que le nom binaire est le même pour les deux packages, donc si vous avez déjà installé tensorflow-model-server, vous devez d'abord le désinstaller en utilisant

apt-get remove tensorflow-model-server

Installation

  1. Ajouter l'URI de distribution TensorFlow Serving en tant que source de package (installation unique)

    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. Installer et mettre à jour TensorFlow ModelServer

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

Une fois installé, le binaire peut être invoqué à l'aide de la commande tensorflow_model_server .

Vous pouvez passer à une version plus récente de tensorflow-model-server avec :

apt-get upgrade tensorflow-model-server

Construire à partir de la source

L'approche recommandée pour créer à partir des sources consiste à utiliser Docker. Les images de développement TensorFlow Serving Docker encapsulent toutes les dépendances dont vous avez besoin pour créer votre propre version de TensorFlow Serving.

Pour obtenir la liste de ces dépendances, consultez les fichiers Dockerfiles de développement TensorFlow Serving [ CPU , GPU ].

Installation de Docker

Les instructions générales d'installation sont sur le site Docker .

Cloner le script de construction

Après avoir installé Docker, nous devons obtenir la source à partir de laquelle nous voulons construire. Nous utiliserons Git pour cloner la branche principale de TensorFlow Serving :

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

Construire

Afin de construire dans un environnement hermétique avec toutes les dépendances prises en charge, nous utiliserons le script run_in_docker.sh . Ce script transmet les commandes de build à un conteneur Docker. Par défaut, le script sera construit avec la dernière image de développement Docker nocturne.

TensorFlow Serving utilise Bazel comme outil de création. Vous pouvez utiliser les commandes Bazel pour créer des cibles individuelles ou l'intégralité de l'arborescence source.

Pour construire l'arborescence entière, exécutez :

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

Les binaires sont placés dans le répertoire bazel-bin et peuvent être exécutés à l'aide d'une commande telle que :

bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server

Pour tester votre build, exécutez :

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

Consultez le didacticiel de base et le didacticiel avancé pour obtenir des exemples plus détaillés d'exécution de TensorFlow Serving.

Créer des versions spécifiques de TensorFlow Serving

Si vous souhaitez construire à partir d'une branche spécifique (telle qu'une branche de version), transmettez -b <branchname> à la commande git clone .

Nous voudrons également faire correspondre l'environnement de construction pour cette branche de code, en transmettant au script run_in_docker.sh l'image de développement Docker que nous aimerions utiliser.

Par exemple, pour créer la version 1.10 de 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/...
...
Construction optimisée

Si vous souhaitez appliquer les optimisations généralement recommandées, notamment l'utilisation de jeux d'instructions spécifiques à la plate-forme pour votre processeur, vous pouvez ajouter --config=nativeopt aux commandes de génération Bazel lors de la création de TensorFlow Serving.

Par exemple:

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

Il est également possible de compiler à l'aide de jeux d'instructions spécifiques (par exemple AVX). Partout où vous voyez bazel build dans la documentation, ajoutez simplement les indicateurs correspondants :

Jeu d'instructions Drapeaux
AVX --copt=-mavx
AVX2 --copt=-mavx2
FMA --copt=-mfma
ESS 4.1 --copt=-msse4.1
ESS 4.2 --copt=-msse4.2
Tous pris en charge par le processeur --copt=-march=native

Par exemple:

tools/run_in_docker.sh bazel build --copt=-mavx2 tensorflow_serving/...
Construire avec la prise en charge du GPU

Afin de créer une version personnalisée de TensorFlow Serving avec prise en charge du GPU, nous vous recommandons soit de créer avec les images Docker fournies , soit de suivre l'approche décrite dans le fichier Docker du GPU .

Package PIP de l'API Python TensorFlow Serving

Pour exécuter le code client Python sans avoir besoin de créer l'API, vous pouvez installer le package PIP tensorflow-serving-api en utilisant :

pip install tensorflow-serving-api