Le moyen le plus simple de servir des modèles AI/ML en production
Écrivez une fois, exécutez n'importe où : emballez et testez le code, les pondérations et les dépendances du modèle avec un serveur de modèles qui se comporte de la même manière en développement et en production.
Boucle de développement rapide : implémentez votre modèle avec un retour rapide d'un serveur de rechargement en direct et ignorez la configuration Docker et Kubernetes avec un environnement de service de modèles avec batteries incluses.
Prise en charge de tous les frameworks Python : transformers
et diffusers
à PyTorch
et TensorFlow
en passant par TensorRT
et Triton
, Truss prend en charge les modèles créés et servis avec n'importe quel framework.
Voir Fermes pour les modèles populaires, notamment :
Lama 2 7B (13B) (70B)
Diffusion stable XL
Chuchoter
et des dizaines d'autres exemples.
Installez Truss avec :
pip install --upgrade truss
À titre d’exemple rapide, nous allons empaqueter un pipeline de classification de texte à partir du package transformers
open source.
Pour commencer, créez une ferme avec la commande de terminal suivante :
truss init classification de texte
Lorsque vous y êtes invité, donnez à votre ferme un nom tel que Text classification
.
Ensuite, accédez au répertoire nouvellement créé :
classification de texte sur CD
L'un des deux fichiers essentiels d'un Truss est model/model.py
. Dans ce fichier, vous écrivez une classe Model
: une interface entre le modèle ML que vous emballez et le serveur de modèles sur lequel vous l'exécutez.
Il existe deux fonctions membres que vous devez implémenter dans la classe Model
:
load()
charge le modèle sur le serveur de modèles. Il s'exécute exactement une fois lorsque le serveur de modèles est lancé ou corrigé.
predict()
gère l'inférence de modèle. Il s'exécute à chaque fois que le serveur de modèles est appelé.
Voici le model/model.py
complet pour le modèle de classification de texte :
à partir des transformateurs import pipelineclass Model:def __init__(self, **kwargs):self._model = Nonedef load(self):self._model = pipeline("text-classification")def predict(self, model_input):return self._model (modèle_entrée)
L'autre fichier essentiel d'un Truss est config.yaml
, qui configure l'environnement de diffusion du modèle. Pour une liste complète des options de configuration, consultez la référence de configuration.
Le modèle de pipeline s'appuie sur Transformers et PyTorch. Ces dépendances doivent être spécifiées dans la configuration Truss.
Dans config.yaml
, recherchez la ligne requirements
. Remplacez la liste vide par :
exigences: - torche==2.0.1 - transformateurs==4.30.0
Aucune autre configuration n'est nécessaire.
Truss est géré par Baseten, qui fournit une infrastructure pour exécuter des modèles ML en production. Nous utiliserons Baseten comme hôte distant pour votre modèle.
D'autres télécommandes arriveront bientôt, à commencer par AWS SageMaker.
Pour configurer la télécommande Baseten, vous aurez besoin d'une clé API Baseten. Si vous n'avez pas de compte Baseten, ne vous inquiétez pas, créez simplement un compte et vous recevrez de nombreux crédits gratuits pour vous aider à démarrer.
truss push
Avec votre clé API Baseten prête à être collée lorsque vous y êtes invité, vous pouvez déployer votre modèle :
poussée de ferme
Vous pouvez surveiller le déploiement de votre modèle à partir de votre tableau de bord de modèle sur Baseten.
Une fois le déploiement du modèle terminé, vous pouvez l'appeler depuis le terminal.
Invocation
truss prédire -d '"La ferme est géniale!"'
Réponse
[ {"étiquette": "POSITIVE", "score": 0,999873161315918 } ]
Truss est soutenu par Baseten et construit en collaboration avec des ingénieurs ML du monde entier. Un merci spécial à Stephan Auerhahn @ stability.ai et Daniel Sarfati @ Salad Technologies pour leurs contributions.
Nous accueillons avec enthousiasme les contributions conformément à notre guide du contributeur et à notre code de conduite.