Model Sunma için özel yapıtları paketleme
Bu makalede, Azure Databricks uç noktasıyla hizmet veren Modelinizde modelinizin dosya ve yapıt bağımlılıklarının kullanılabilir olduğundan nasıl emin olunması açıklanır.
Gereksinimler
MLflow 1.29 ve üzeri
Modellerle yapıtları paketleme
Modeliniz çıkarım sırasında dosya veya yapıt gerektirdiğinde, modeli günlüğe kaydederken bunları model yapıtına paketleyebilirsiniz.
Azure Databricks not defterleriyle çalışıyorsanız, bu dosyaların Unity Kataloğu birimlerinde bulunması 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 Sunma, Unity Kataloğu birimleri yapıtlarının MLflow arabirimleri kullanılarak model yapıtına paketlenmiş olmasını gerektirir. Modelle yüklenen ağ yapıtları mümkün olduğunda modelle birlikte paketlenmelidir.
MLflow komutu log_model() ile bir modeli ve bağımlı yapıtlarını parametresiyle günlüğe artifacts
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 altındaki context.artifacts
nesneden context
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.