Der einfachste Weg, KI/ML-Modelle in der Produktion bereitzustellen
Einmal schreiben, überall ausführen: Paketieren und testen Sie Modellcode, Gewichtungen und Abhängigkeiten mit einem Modellserver, der sich in Entwicklung und Produktion gleich verhält.
Schnelle Entwicklerschleife: Implementieren Sie Ihr Modell mit schnellem Feedback von einem Live-Reload-Server und überspringen Sie die Docker- und Kubernetes-Konfiguration mit einer batteriebetriebenen Modellserverumgebung.
Unterstützung für alle Python-Frameworks : Von transformers
und diffusers
über PyTorch
und TensorFlow
bis hin zu TensorRT
und Triton
unterstützt Truss Modelle, die mit jedem Framework erstellt und bereitgestellt werden.
Beliebte Modelle finden Sie unter Traversen, darunter:
Lama 2 7B (13B) (70B)
Stabile Diffusion XL
Flüstern
und Dutzende weitere Beispiele.
Installieren Sie Truss mit:
pip install --upgrade truss
Als kurzes Beispiel packen wir eine Textklassifizierungspipeline aus dem Open-Source transformers
-Paket.
Erstellen Sie zunächst ein Truss mit dem folgenden Terminalbefehl:
Truss-Init-Textklassifizierung
Wenn Sie dazu aufgefordert werden, geben Sie Ihrem Truss einen Namen wie Text classification
.
Navigieren Sie dann zum neu erstellten Verzeichnis:
CD-Textklassifizierung
Eine der beiden wesentlichen Dateien in einem Truss ist model/model.py
. In dieser Datei schreiben Sie eine Model
Klasse: eine Schnittstelle zwischen dem ML-Modell, das Sie verpacken, und dem Modellserver, auf dem Sie es ausführen.
Es gibt zwei Mitgliedsfunktionen, die Sie in der Model
-Klasse implementieren müssen:
load()
lädt das Modell auf den Modellserver. Es wird genau einmal ausgeführt, wenn der Modellserver hochgefahren oder gepatcht wird.
predict()
verarbeitet die Modellinferenz. Es wird jedes Mal ausgeführt, wenn der Modellserver aufgerufen wird.
Hier ist die vollständige model/model.py
für das Textklassifizierungsmodell:
aus Transformatoren importieren Pipelineklasse Model:def __init__(self, **kwargs):self._model = Nonedef Load(self):self._model = Pipeline("text-classification")def Predict(self, model_input):return self._model (model_input)
Die andere wichtige Datei in einem Truss ist config.yaml
, die die Modellbereitstellungsumgebung konfiguriert. Eine vollständige Liste der Konfigurationsoptionen finden Sie in der Konfigurationsreferenz.
Das Pipeline-Modell basiert auf Transformers und PyTorch. Diese Abhängigkeiten müssen in der Truss-Konfiguration angegeben werden.
Suchen Sie in config.yaml
nach der Zeile requirements
. Ersetzen Sie die leere Liste durch:
Anforderungen: - Taschenlampe==2.0.1 - Transformatoren==4.30.0
Es ist keine weitere Konfiguration erforderlich.
Truss wird von Baseten verwaltet, das eine Infrastruktur für die Ausführung von ML-Modellen in der Produktion bereitstellt. Wir verwenden Baseten als Remote-Host für Ihr Modell.
Weitere Fernbedienungen folgen bald, beginnend mit AWS SageMaker.
Um die Baseten-Fernbedienung einzurichten, benötigen Sie einen Baseten-API-Schlüssel. Wenn Sie kein Baseten-Konto haben, machen Sie sich keine Sorgen, melden Sie sich einfach für ein Konto an und Sie erhalten zahlreiche kostenlose Credits für den Einstieg.
truss push
ausWenn Ihr Baseten-API-Schlüssel zum Einfügen bereit ist, wenn Sie dazu aufgefordert werden, können Sie Ihr Modell bereitstellen:
Fachwerkschub
Sie können Ihre Modellbereitstellung über Ihr Modell-Dashboard auf Baseten überwachen.
Nachdem die Bereitstellung des Modells abgeschlossen ist, können Sie es über das Terminal aufrufen.
Aufruf
truss Predict -d '"Truss ist großartig!"'
Antwort
[ {"label": "POSITIVE", "score": 0,999873161315918 } ]
Truss wird von Baseten unterstützt und in Zusammenarbeit mit ML-Ingenieuren weltweit entwickelt. Besonderer Dank geht an Stephan Auerhahn @ Stability.ai und Daniel Sarfati @ Salad Technologies für ihre Beiträge.
Wir freuen uns über Beiträge gemäß unserem Leitfaden und Verhaltenskodex für Mitwirkende.