Model Sunumu için özel artefaktları paketleyin

Bu makalede modelinizin dosya ve yapıt bağımlılıklarının Model Sunma uç noktasını kullanarak modelleri dağıtmanızda kullanılabilir olmasını sağlama açıklanmaktadır.

Gereksinimler

MLflow 1.29 ve üzeri

Modellerle yapıtları paketleme

Modeliniz çıkarım sırasında dosyalara veya artefaktlara ihtiyaç duyuyorsa, modeli kaydederken bunları model artefaktının içine paketleyebilirsiniz.

Azure Databricks defterleriyle çalışıyorsanız, bu dosyaların Unity Kataloğu birimlerindeyer alması yaygın bir uygulamadır. Modeller bazen yapıtları İnternet'ten (HuggingFace Tokenizers gibi) indirecek şekilde de yapılandırılır. Gerçek zamanlı iş yükleri, dağıtım zamanında tüm gerekli bağımlılıklar statik olarak yakalandığında en iyi performansı gösterir. Bu nedenle Model Sunumu, Unity Kataloğu birim yapıtlarının MLflow arabirimleri kullanılarak model yapıtının içine paketlenmiş olmasını gerektirir. Modelle yüklenen ağ yapıtları mümkün olduğunda modelle birlikte paketlenmelidir.

MLflow komutu log_model() ile, artifacts parametresini kullanarak bir modeli ve ona bağlı artefaktları günlüğe kaydedebilirsiniz.

mlflow.pyfunc.log_model(
    ...
    artifacts={'model-weights': "/Volumes/catalog/schema/volume/path/to/file", "tokenizer_cache": "./tokenizer_cache"},
    ...
)

PyFunc modellerinde, bu yapıtların yollarına context nesnesinin altındaki context.artifacts üzerinden erişilebilir ve bu dosya türü için standart şekilde yüklenebilir.

Örneğin, özel bir MLflow modelinde:

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"])
    ...

Dosyalarınız ve yapıtlarınız model yapıtınızın içinde paketledikten sonra modelinizi bir Model Sunma uç noktasına servis edebilirsiniz.