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
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 -
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 build
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 :
Ensemble 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