Ubuntu/Python-2.7 | Ubuntu/Python-3.6 |
---|---|
Multi Model Server (MMS) ist ein flexibles und einfach zu verwendendes Tool zum Servieren von Deep -Learning -Modellen, die mit einem ML/DL -Framework trainiert werden.
Verwenden Sie die MMS-Server-CLI oder die vorkonfigurierten Docker-Bilder, um einen Dienst zu starten, der HTTP-Endpunkte für die Bearbeitung von Modellinferenzanforderungen festlegt.
Eine schnelle Übersicht und Beispiele für das Servieren und die Verpackung finden Sie unten. Detaillierte Dokumentationen und Beispiele finden Sie im Ordner docs.
Schließen Sie sich unserer an Slack Channel, um mit dem Entwicklungsteam in Kontakt zu treten, Fragen zu stellen, herauszufinden, was Kochen ist und vieles mehr!
Bevor Sie mit diesem Dokument weiter fortfahren, stellen Sie sicher, dass Sie die folgenden Voraussetzungen haben.
Ubuntu, Centos oder macos. Windows -Unterstützung ist experimentell. Die folgenden Anweisungen konzentrieren sich nur auf Linux und MacOS.
Python - Multi Model Server erfordert, dass Python die Arbeiter ausführt.
PIP - PIP ist ein Python -Paket -Management -System.
Java 8 - Multi Model Server benötigt Java 8, um zu starten. Sie haben die folgenden Optionen für die Installation von Java 8:
Für Ubuntu:
sudo apt-get install openjdk-8-jre-headless
Für CentOS:
sudo yum install java-1.8.0-openjdk
Für macOS:
brew tap homebrew/cask-versions
brew update
brew cask install adoptopenjdk8
Schritt 1: Richten Sie eine virtuelle Umgebung ein
Wir empfehlen, einen Multi -Modell -Server in einer virtuellen Umgebung zu installieren und auszuführen. Es ist eine gute Praxis, alle Python -Abhängigkeiten in virtuellen Umgebungen auszuführen und zu installieren. Dies ermöglicht die Isolation der Abhängigkeiten und die Leichtigkeit des Abhängigkeitsmanagements.
Eine Option ist die Verwendung von Virtualenv. Dies wird verwendet, um virtuelle Python -Umgebungen zu erstellen. Sie können ein Virtualenv für Python 2.7 installieren und aktivieren:
pip install virtualenv
Erstellen Sie dann eine virtuelle Umgebung:
# Assuming we want to run python2.7 in /usr/local/bin/python2.7
virtualenv -p /usr/local/bin/python2.7 /tmp/pyenv2
# Enter this virtual environment as follows
source /tmp/pyenv2/bin/activate
Weitere Informationen finden Sie in der Dokumentation von Virtualenv.
Schritt 2: Installieren Sie MXNET MMS nicht standardmäßig die MXNET -Engine. Wenn es nicht bereits in Ihrer virtuellen Umgebung installiert ist, müssen Sie eines der MXNET -PIP -Pakete installieren.
Für die CPU-Inferenz wird mxnet-mkl
empfohlen. Installieren Sie es wie folgt:
# Recommended for running Multi Model Server on CPU hosts
pip install mxnet-mkl
Für die GPU-Inferenz wird mxnet-cu92mkl
empfohlen. Installieren Sie es wie folgt:
# Recommended for running Multi Model Server on GPU hosts
pip install mxnet-cu92mkl
Schritt 3: Installieren oder aktualisieren Sie MMS wie folgt:
# Install latest released version of multi-model-server
pip install multi-model-server
Um aus einer früheren Version von multi-model-server
zu aktualisieren, lesen Sie bitte das Migrationsreferenzdokument.
Anmerkungen:
model-archiver
wird mit MMS als Abhängigkeit installiert. Weitere Optionen und Details finden Sie unter Model-Archiver. Nach der Installation können Sie MMS Model Server sehr schnell zum Laufen bringen. Versuchen Sie es --help
, um alle verfügbaren CLI -Optionen zu sehen.
multi-model-server --help
Für diesen schnellen Start überspringen wir die meisten Funktionen. Schauen Sie sich jedoch die vollständigen Serverdokumente an, wenn Sie bereit sind.
Hier ist ein einfaches Beispiel für das Servieren eines Objektklassifizierungsmodells:
multi-model-server --start --models squeezenet=https://s3.amazonaws.com/model-server/model_archive_1.0/squeezenet_v1.1.mar
Wenn der oben ausgeführte Befehl ausgeführt wird, werden MMS auf Ihrem Host ausgeführt und nach Inferenzanfragen anhören. Bitte beachten Sie, dass, wenn Sie Modell (en) während des MMS -Starts angeben - die Backend -Mitarbeiter automatisch auf die Anzahl der verfügbaren VCPUs (falls Sie auf der CPU -Instanz ausführen) oder auf die Anzahl der verfügbaren GPUs (wenn Sie auf der GPU -Instanz ausgeführt werden, skalieren ). Bei leistungsstarken Hosts mit vielen Berechnungsressourcen (VCPUs oder GPUs) kann dieser Start- und Autoscaling -Prozess erhebliche Zeit in Anspruch nehmen. Wenn Sie die MMS -Startzeit minimieren möchten, können Sie versuchen, das Registrieren und Skalieren von Modell während der Startzeit zu vermeiden und diese an einen späteren Punkt zu verschieben, indem Sie entsprechende Management -API -Aufrufe verwenden (dies ermöglicht eine feinere Kornsteuerung, wie viel Ressourcen für die Zuordnung von Ressourcen zugewiesen werden. jedes bestimmte Modell).
Um es zu testen, können Sie ein neues Terminalfenster neben dem auslaufenden MMS öffnen. Dann können Sie curl
verwenden, um eines dieser niedlichen Bilder eines Kätzchens herunterzuladen, und das Flag von Curl -o
Curl wird es für Sie kitten.jpg
nennen. Dann werden Sie einen POST
in den MMS -Vorhersagen des Endpunkts mit dem Image des Kätzchens curl
.
Im folgenden Beispiel bieten wir eine Abkürzung für diese Schritte.
curl -O https://s3.amazonaws.com/model-server/inputs/kitten.jpg
curl -X POST http://127.0.0.1:8080/predictions/squeezenet -T kitten.jpg
Der vorhersagende Endpunkt gibt eine Vorhersagereaktion in JSON zurück. Es wird ungefähr das folgende Ergebnis aussehen:
[
{
"probability" : 0.8582232594490051 ,
"class" : " n02124075 Egyptian cat "
},
{
"probability" : 0.09159987419843674 ,
"class" : " n02123045 tabby, tabby cat "
},
{
"probability" : 0.0374876894056797 ,
"class" : " n02123159 tiger cat "
},
{
"probability" : 0.006165083032101393 ,
"class" : " n02128385 leopard, Panthera pardus "
},
{
"probability" : 0.0031716004014015198 ,
"class" : " n02127052 lynx, catamount "
}
]
Sie sehen, dass dies in der Antwort auf Ihren curl
-Aufruf auf den Vorhersageendpunkt und in den Serverprotokollen im Terminalfenster MMS und in den Serverprotokollen angezeigt wird. Es wird auch lokal mit Metriken angemeldet.
Andere Modelle können aus dem Modellzoo heruntergeladen werden. Probieren Sie also auch einige davon aus.
Jetzt haben Sie gesehen, wie einfach es sein kann, ein tiefes Lernmodell mit MMS zu dienen! Möchten Sie mehr wissen?
Führen Sie den folgenden Befehl aus, um die aktuelle modell-server-Instanz zu stoppen: Führen Sie den folgenden Befehl aus:
$ multi-model-server --stop
Sie würden sehen, dass die Ausgabe angibt, dass Multi-Model-Server gestoppt hat.
Mit MMS können Sie alle Ihre Modellartefakte in ein einzelnes Modellarchiv integrieren. Dies erleichtert das Teilen und Bereitstellen Ihrer Modelle. Um ein Modell zu verpacken
Stöbern Sie zu den Docs Readme, um den vollständigen Dokumentationsindex zu erhalten. Dies beinhaltet weitere Beispiele, wie Sie den API -Dienst, den API -Endpunktdetails und mehr anpassen.
Hier sind einige Beispiele für Deep -Learning -Anwendungen, die von MMS betrieben werden:
Produktüberprüfungsklassifizierung ![]() | Visuelle Suche ![]() |
Gesichtsemotionserkennung ![]() | Transfer neuronaler Stil ![]() |
Wir begrüßen alle Beiträge!
Um einen Fehler einzureichen oder eine Funktion anzufordern, stellen Sie bitte ein GitHub -Problem ein. Pull -Anfragen sind willkommen.