Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article décrit comment garantir que les fichiers et artefacts de dépendance de votre modèle sont disponibles sur votre point de terminaison Deploy models using Mosaic AI Model Serving.
Spécifications
MLflow 1.29 et ultérieur
Empaqueter des artefacts avec des modèles
Quand votre modèle nécessite des fichiers ou des artefacts pendant l’inférence, vous pouvez les empaqueter dans l’artefact de modèle quand vous enregistrez le modèle.
Si vous utilisez des notebooks Azure Databricks, il est courant que ces fichiers résident dans des volumes de catalogue Unity. Les modèles sont également parfois configurés pour télécharger des artefacts depuis Internet (par exemple HuggingFace Tokenizers). Les charges de travail en temps réel à grande échelle fonctionnent mieux quand toutes les dépendances nécessaires sont capturées de façon statique au moment du déploiement. Pour cette raison, Model Service nécessite que les artefacts de volumes de catalogue Unity soient empaquetés dans l’artefact de modèle lui-même à l’aide d’interfaces MLflow. Les artefacts réseau chargés avec le modèle doivent être empaquetés avec le modèle quand c’est possible.
Avec la commande MLflow log_model(), vous pouvez enregistrer un modèle et ses artefacts dépendants avec le paramètre artifacts.
mlflow.pyfunc.log_model(
...
artifacts={'model-weights': "/Volumes/catalog/schema/volume/path/to/file", "tokenizer_cache": "./tokenizer_cache"},
...
)
Dans les modèles PyFunc, les chemins d’accès de ces artefacts sont accessibles à partir de l’objet context sous context.artifacts, et ils peuvent être chargés de la manière standard pour ce type de fichier.
Par exemple, dans un modèle MLflow personnalisé :
class ModelPyfunc(mlflow.pyfunc.PythonModel):
def load_context(self, context):
self.model = torch.load(context.artifacts["model-weights"])
self.tokenizer = transformers.BertweetTokenizer.from_pretrained("model-base", local_files_only=True, cache_dir=context.artifacts["tokenizer_cache"])
...
Une fois vos fichiers et artefacts empaquetés dans votre artefact de modèle, vous pouvez servir votre modèle à un point de terminaison De service de modèle.