Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Makine öğrenmesi modeli, belirli desen türlerini tanımak için eğitilmiş bir dosyadır. Modeli bir veri kümesi üzerinde eğitip bu veri kümesinden mantık yürütmeyi ve bu veri kümesinden öğrenmeyi sağlayan bir algoritma sağlarsınız. Modeli eğitdikten sonra, daha önce hiç görmediği veriler üzerinde mantık oluşturmak ve bu veriler hakkında tahminlerde bulunmak için kullanabilirsiniz.
MLflow'da bir makine öğrenmesi modeli birden çok model sürümü içerebilir. Burada, her sürüm bir model yinelemesini temsil edebilir. Bu makalede, model yinelemelerini izlemek ve karşılaştırmak için ML modelleriyle nasıl etkileşim kuracağınızı öğreneceksiniz.
Bu makalede şunların nasıl yapılacağını öğreneceksiniz:
- Microsoft Fabric'de makine öğrenmesi modelleri oluşturma
- Model sürümlerini yönetme ve izleme
- Sürümler arasında model performansını karşılaştırma
- Puanlama ve çıkarım için modelleri uygulama
Makine öğrenmesi modeli oluşturma
Fabric kullanıcı arabiriminden veya MLflow API'siyle program aracılığıyla bir makine öğrenmesi modeli oluşturabilirsiniz. MLflow'da modeller, Apache Spark'ta toplu çıkarım da dahil olmak üzere çeşitli aşağı akış araçlarıyla çalışan standart bir paketleme biçimi kullanır. Biçim, bir modeli farklı "varyasyonlarda" kaydederek, farklı alt akış araçlarının anlayabileceği hale getirir.
Kullanıcı arabiriminden makine öğrenmesi modeli oluşturmak için:
- Mevcut bir veri bilimi çalışma alanını seçin veya yeni bir çalışma alanı oluşturun.
- Çalışma alanı aracılığıyla veya Oluştur düğmesini kullanarak yeni bir öğe oluşturun:
- Model oluşturulduktan sonra çalıştırma ölçümlerini ve parametrelerini izlemek için model sürümleri eklemeye başlayabilirsiniz. Deneme çalıştırmalarını mevcut bir modele kaydedin veya saklayın.
Ayrıca doğrudan API ile yazma deneyiminizden bir makine öğrenmesi mlflow.register_model() modeli oluşturabilirsiniz. Belirtilen ada sahip kayıtlı bir makine öğrenmesi modeli yoksa, API bunu otomatik olarak oluşturur.
import mlflow
model_uri = "runs:/{}/model-uri-name".format(run.info.run_id)
mv = mlflow.register_model(model_uri, "model-name")
print("Name: {}".format(mv.name))
print("Version: {}".format(mv.version))
Makine öğrenmesi modeli içindeki sürümleri yönetme
Makine öğrenmesi modeli, basitleştirilmiş izleme ve karşılaştırma için bir model sürümleri koleksiyonu içerir. Bir modelde, veri bilimcisi temel alınan parametreleri ve ölçümleri keşfetmek için çeşitli model sürümleri arasında gezinebilir. Veri bilimciler, daha yeni modellerin daha iyi sonuçlar verip vermeyeceğini belirlemek için model sürümleri arasında karşılaştırmalar da yapabilir.
Makine öğrenmesi modellerini izleme
Makine öğrenmesi modeli sürümü, izleme için kayıtlı tek bir modeli temsil eder.
Her model sürümü aşağıdaki bilgileri içerir:
| Mülkiyet | Description |
|---|---|
| Oluşturulma Zamanı | Model oluşturma tarihi ve saati. |
| Çalıştırma Adı | Bu belirli model sürümünü oluşturmak için kullanılan deney çalışmasının tanımlayıcısı. |
| Hiper Parametreler | Anahtar-değer çiftleri olarak kaydedilir. Hem anahtarlar hem de değerler dizelerdir. |
| Metrics | Anahtar-değer çiftleri olarak kaydedilen ölçümleri çalıştırın. Değer sayısaldır. |
| Model Şeması/İmzası | Model girişlerinin ve çıkışlarının açıklaması. |
| Loglanan dosyalar | Herhangi bir formatta kaydedilmiş dosyalar. Örneğin, görüntüleri, ortamı, modelleri ve veri dosyalarını kaydedebilirsiniz. |
| Etiketler | Çalıştırmalara eklenen anahtar-değer çiftleri olarak özel meta veriler. Etiketleri uygulamayı öğrenin. |
Makine öğrenmesi modellerine etiket uygulama
Model sürümleri için MLflow etiketlemesi, kullanıcıların MLflow Model Kayıt Defteri'nde kayıtlı bir modelin belirli sürümlerine özel meta veriler eklemesini sağlar. Anahtar-değer çiftleri olarak depolanan bu etiketler, model sürümlerini düzenlemeye, izlemeye ve ayırt etmeye yardımcı olarak model yaşam döngülerini yönetmeyi kolaylaştırır. Etiketler modelin amacını, dağıtım ortamını veya diğer ilgili bilgileri belirtmek için kullanılabilir ve ekipler içinde daha verimli model yönetimi ve karar alma sürecini kolaylaştırır.
Bu kod, Scikit-learn kullanarak RandomForestRegressor modelini eğitmeyi, modeli ve parametreleri MLflow ile günlüğe kaydetmeyi ve ardından modeli özel etiketlerle MLflow Model Kayıt Defteri'ne kaydetmeyi gösterir. Bu etiketler proje adı, departman, ekip ve proje üç aylık dönemi gibi yararlı meta veriler sağlayarak model sürümünü yönetmeyi ve izlemeyi kolaylaştırır.
import mlflow.sklearn
from mlflow.models import infer_signature
from sklearn.datasets import make_regression
from sklearn.ensemble import RandomForestRegressor
# Generate synthetic regression data
X, y = make_regression(n_features=4, n_informative=2, random_state=0, shuffle=False)
# Model parameters
params = {"n_estimators": 3, "random_state": 42}
# Model tags for MLflow
model_tags = {
"project_name": "grocery-forecasting",
"store_dept": "produce",
"team": "stores-ml",
"project_quarter": "Q3-2023"
}
# Log MLflow entities
with mlflow.start_run() as run:
# Train the model
model = RandomForestRegressor(**params).fit(X, y)
# Infer the model signature
signature = infer_signature(X, model.predict(X))
# Log parameters and the model
mlflow.log_params(params)
mlflow.sklearn.log_model(model, artifact_path="sklearn-model", signature=signature)
# Register the model with tags
model_uri = f"runs:/{run.info.run_id}/sklearn-model"
model_version = mlflow.register_model(model_uri, "RandomForestRegressionModel", tags=model_tags)
# Output model registration details
print(f"Model Name: {model_version.name}")
print(f"Model Version: {model_version.version}")
Etiketleri uyguladıktan sonra, bunları doğrudan model sürümü ayrıntıları sayfasında görüntüleyebilirsiniz. Ayrıca, etiketler bu sayfadan istediğiniz zaman eklenebilir, güncelleştirilebilir veya kaldırılabilir.
Makine öğrenmesi modellerini karşılaştırma ve filtreleme
Makine öğrenmesi modeli sürümlerinin kalitesini karşılaştırmak ve değerlendirmek için, seçili sürümler arasındaki parametreleri, ölçümleri ve meta verileri karşılaştırabilirsiniz.
Makine öğrenmesi modellerini görsel olarak karşılaştırma
Mevcut bir model içindeki çalıştırmaları görsel olarak karşılaştırabilirsiniz. Görsel karşılaştırma, birden çok sürüm arasında kolay gezintiye ve farklı sürümlerde sıralamaya olanak tanır.
Çalıştırmaları karşılaştırmak için şunları yapabilirsiniz:
- Birden çok sürüm içeren mevcut bir makine öğrenmesi modelini seçin.
- Görünüm sekmesini seçin ve model listesi görünümüne gidin. Model listesini doğrudan ayrıntılar görünümünden görüntüleme seçeneğini de belirleyebilirsiniz.
- Tablo içindeki sütunları özelleştirebilirsiniz. Sütunları özelleştir bölmesini genişletin. Buradan, görmek istediğiniz özellikleri, ölçümleri, etiketleri ve hiper parametreleri seçebilirsiniz.
- Son olarak, ölçüm karşılaştırma bölmesinde sonuçları karşılaştırmak için birden çok sürüm seçebilirsiniz. Bu bölmeden grafik başlığında, görselleştirme türünde, X ekseninde, Y ekseninde ve daha fazla değişiklikle grafikleri özelleştirebilirsiniz.
MLflow API'sini kullanarak makine öğrenmesi modellerini karşılaştırma
Veri bilimciler çalışma alanına kaydedilmiş birden çok model arasında arama yapmak için MLflow da kullanabilir. Model etkileşimi için diğer MLflow API'lerini keşfetmek için MLflow belgelerini ziyaret edin.
from pprint import pprint
from mlflow import MlflowClient
client = MlflowClient()
for rm in client.search_registered_models():
pprint(dict(rm), indent=4)
Makine öğrenmesi modelleri uygulama
Bir modeli bir veri kümesinde eğitdikten sonra, tahmin oluşturmak için hiç görmediği verilere bu modeli uygulayabilirsiniz. Bu model kullanım tekniğine puanlama veya çıkarım diyoruz.
Fabric, eğitilen modellerinizi uygulamak için birden çok yaklaşımı destekler:
- Toplu puanlama Apache Spark kullanarak modelinizi büyük veri kümelerinde ölçeklenebilir şekilde uygulayın. Bu, geçmiş veya zamanlanmış veriler üzerinde tahmin oluşturmak için idealdir.
- Gerçek zamanlı puanlama Modelinizi isteğe bağlı tahminler için bir uç noktaya dağıtın; anında sonuç gerektiren uygulamalar için kullanışlıdır.
Modellerinizi uygulamaya başlamak için senaryonuza uygun yaklaşımı seçin: