Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive come assicurarsi che le dipendenze dei file e degli artefatti del modello siano disponibili sull'endpoint di distribuzione del modello usando Mosaic AI Model Serving.
Requisiti
MLflow 1.29 e versioni successive
Imballare artefatti con modelli
Quando il modello richiede file o artefatti durante l'inferenza, è possibile inserirli nell'artefatto del modello quando si registra il modello.
Se si lavora con i notebook di Azure Databricks, è consigliabile che questi file si trovino in volumi di Unity Catalog. I modelli sono anche configurati per scaricare artefatti da Internet ( ad esempio HuggingFace Tokenizers). I carichi di lavoro in tempo reale su larga scala sono ottimali quando tutte le dipendenze necessarie vengono acquisite in modo statico in fase di distribuzione. Per questo motivo, Model Serving richiede che gli artefatti dei volumi del catalogo Unity vengano inseriti nell'artefatto del modello stesso usando le interfacce MLflow. Gli artefatti di rete caricati con il modello devono essere inseriti nel pacchetto con il modello quando possibile.
Con il comando MLflow log_model() è possibile registrare un modello e i relativi artefatti dipendenti con il artifacts parametro .
mlflow.pyfunc.log_model(
...
artifacts={'model-weights': "/Volumes/catalog/schema/volume/path/to/file", "tokenizer_cache": "./tokenizer_cache"},
...
)
Nei modelli PyFunc questi percorsi degli artefatti sono accessibili dall'oggetto context in context.artifactse possono essere caricati nel modo standard per quel tipo di file.
Ad esempio, in un modello MLflow personalizzato:
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"])
...
Dopo che i file e gli artefatti sono impacchettati all'interno dell'artefatto del modello, puoi distribuire il tuo modello a un endpoint Model Serving.