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.
MLflow Günlüğe Kaydedilen Modeller, bir modelin yaşam döngüsü boyunca ilerleme durumunu izlemenize yardımcı olur. Modeli eğitirken, benzersiz bir kimlikle tüm kritik bilgilerini birbirine bağlayan bir mlflow.<model-flavor>.log_model() oluşturmak için LoggedModel kullanın. 'nin gücünden LoggedModelsyararlanmak için MLflow 3 kullanmaya başlayın.
GenAI uygulamaları için git LoggedModels işlemelerini veya parametre kümelerini izlemelere ve ölçümlere bağlanabilecek ayrılmış nesneler olarak yakalamak için oluşturulabilir. Derin öğrenme ve klasik ML'de, MLflow çalıştırmalarından üretilen LoggedModels mevcut MLflow kavramlarıdır ve model kodunu yürüten görevler olarak düşünülebilir. Eğitim çalıştırmaları modelleri çıkış olarak üretir ve değerlendirme çalıştırmaları, bir modelin performansını değerlendirmek için kullanabileceğiniz ölçümleri ve diğer bilgileri üretmek için giriş olarak mevcut modelleri kullanır.
LoggedModel Nesnesi modelin yaşam döngüsü boyunca farklı ortamlarda kalır ve meta veriler, ölçümler, parametreler ve modeli oluşturmak için kullanılan kod gibi yapıtlara bağlantılar içerir. Günlüğe Kaydedilen Model izleme, modelleri birbiriyle karşılaştırmanıza, en yüksek performanslı modeli bulmanıza ve hata ayıklama sırasında bilgileri izlemenize olanak tanır.
Kaydedilen Modeller, Unity Catalog model siciline de kaydedilebilir ve model hakkında tüm MLflow denemeleri ve çalışma alanlarından gelen bilgiler tek bir konumda bulunabilir. Diğer ayrıntılar için bkz. MLflow 3 ile Model Kayıt Defteri geliştirmeleri.
Yapay zeka ve derin öğrenme modelleri için geliştirilmiş izleme
Üretken yapay zeka ve derin öğrenme iş akışları özellikle Günlüğe Kaydedilen Modellerin sağladığı ayrıntılı izlemeden yararlanıyor.
Gen AI - birleşik değerlendirme ve izleme verileri:
- Gen AI modelleri değerlendirme ve dağıtım sırasında gözden geçirme geri bildirim verileri ve izlemeleri gibi ek ölçümler oluşturur.
- Varlık,
LoggedModelbir model tarafından oluşturulan tüm bilgileri tek bir arabirim kullanarak sorgulamanıza olanak tanır.
Derin öğrenme - verimli denetim noktası yönetimi:
- Derin öğrenme eğitimi, modelin eğitim sırasında belirli bir noktadaki durumunun anlık görüntüleri olan birden çok denetim noktası oluşturur.
- MLflow, modelin ölçümlerini ve performans verilerini içeren her denetim noktası için ayrı
LoggedModelbir değer oluşturur. Bu, en iyi performansa sahip modelleri verimli bir şekilde tanımlamak için denetim noktalarını karşılaştırmanıza ve değerlendirmenize olanak tanır.
Loglanmış Model Oluşturma
Günlüğe Kaydedilen Model oluşturmak için mevcut MLflow iş yükleriyle aynı log_model() API'yi kullanın. Aşağıdaki kod parçacıkları jeneratif yapay zeka, derin öğrenme ve geleneksel ML iş akışları için Kayıtlı Modelin nasıl oluşturulacağını göstermektedir.
Tam, çalıştırılabilir not defteri örnekleri için bkz. Örnek not defterleri.
Gen AI
Aşağıdaki kod parçacığı, LangChain aracısının nasıl günlüğe kaydedildiğini gösteriyor.
log_model() yöntemi, kullandığınız türdeki ajan için kullanın.
# Log the chain with MLflow, specifying its parameters
# As a new feature, the LoggedModel entity is linked to its name and params
model_info = mlflow.langchain.log_model(
lc_model=chain,
name="basic_chain",
params={
"temperature": 0.1,
"max_tokens": 2000,
"prompt_template": str(prompt)
},
model_type="agent",
input_example={"messages": "What is MLflow?"},
)
# Inspect the LoggedModel and its properties
logged_model = mlflow.get_logged_model(model_info.model_id)
print(logged_model.model_id, logged_model.params)
Bir değerlendirme işi başlatın ve benzersiz model_id sağlayarak ölçümleri Günlük Modele LoggedModel bağlayın.
# Start a run to represent the evaluation job
with mlflow.start_run() as evaluation_run:
eval_dataset: mlflow.entities.Dataset = mlflow.data.from_pandas(
df=eval_df,
name="eval_dataset",
)
# Run the agent evaluation
result = mlflow.evaluate(
model=f"models:/{logged_model.model_id}",
data=eval_dataset,
model_type="databricks-agent"
)
# Log evaluation metrics and associate with agent
mlflow.log_metrics(
metrics=result.metrics,
dataset=eval_dataset,
# Specify the ID of the agent logged above
model_id=logged_model.model_id
)
Derin öğrenme
Aşağıdaki kod parçacığı, derin öğrenme eğitim sürecinde Kayıtlı Modellerin nasıl oluşturulacağını göstermektedir. MLflow modelinizin çeşidi için log_model() yöntemini kullanın.
# Start a run to represent the training job
with mlflow.start_run():
# Load the training dataset with MLflow. We will link training metrics to this dataset.
train_dataset: Dataset = mlflow.data.from_pandas(train_df, name="train")
X_train, y_train = prepare_data(train_dataset.df)
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(scripted_model.parameters(), lr=0.01)
for epoch in range(101):
X_train, y_train = X_train.to(device), y_train.to(device)
out = scripted_model(X_train)
loss = criterion(out, y_train)
optimizer.zero_grad()
loss.backward()
optimizer.step()
# Obtain input and output examples for MLflow Model signature creation
with torch.no_grad():
input_example = X_train[:1]
output_example = scripted_model(input_example)
# Log a checkpoint with metrics every 10 epochs
if epoch % 10 == 0:
# Each newly created LoggedModel checkpoint is linked with its
# name, params, and step
model_info = mlflow.pytorch.log_model(
pytorch_model=scripted_model,
name=f"torch-iris-{epoch}",
params={
"n_layers": 3,
"activation": "ReLU",
"criterion": "CrossEntropyLoss",
"optimizer": "Adam"
},
step=epoch,
signature=mlflow.models.infer_signature(
model_input=input_example.cpu().numpy(),
model_output=output_example.cpu().numpy(),
),
input_example=X_train.cpu().numpy(),
)
# Log metric on training dataset at step and link to LoggedModel
mlflow.log_metric(
key="accuracy",
value=compute_accuracy(scripted_model, X_train, y_train),
step=epoch,
model_id=model_info.model_id,
dataset=train_dataset
)
Geleneksel ML
Aşağıdaki kod parçacığı, bir sklearn modelini günlüklemeyi ve ölçümleri Logged Model öğesine bağlamayı gösterir. MLflow modelinizin çeşidi için log_model() yöntemini kullanın.
## Log the model
model_info = mlflow.sklearn.log_model(
sk_model=lr,
name="elasticnet",
params={
"alpha": 0.5,
"l1_ratio": 0.5,
},
input_example = train_x
)
# Inspect the LoggedModel and its properties
logged_model = mlflow.get_logged_model(model_info.model_id)
print(logged_model.model_id, logged_model.params)
# Evaluate the model on the training dataset and log metrics
# These metrics are now linked to the LoggedModel entity
predictions = lr.predict(train_x)
(rmse, mae, r2) = compute_metrics(train_y, predictions)
mlflow.log_metrics(
metrics={
"rmse": rmse,
"r2": r2,
"mae": mae,
},
model_id=logged_model.model_id,
dataset=train_dataset
)
Örnek not defterleri
Örneğin, LoggedModels kullanımını gösteren not defterlerini görmek için aşağıdaki sayfalara bakabilirsiniz.
Modelleri görüntüleme ve ilerleme durumunu izleme
Günlüğe Kaydedilen Modellerinizi çalışma alanı kullanıcı arabiriminde görüntüleyebilirsiniz:
- Çalışma alanınızdaki Denemeler sekmesine gidin.
- Bir deneme seçin. Ardından Modeller sekmesini seçin.
Bu sayfa, deneyle ilişkilendirilen tüm Günlüğe Kaydedilen Modelleri ve bunların ölçümlerini, parametrelerini ve nesnelerini içerir.
Çalıştırmalar arasında ölçümleri izlemek için grafikler oluşturabilirsiniz.
Günlüğe Kaydedilen Modelleri Arama ve Filtreleme
Modeller sekmesinden Günlüğe Kaydedilen Modelleri özniteliklerine, parametrelerine, etiketlerine ve ölçümlerine göre arayabilir ve filtreleyebilirsiniz.
Ölçümleri veri kümesine özgü performansa göre filtreleyebilirsiniz ve yalnızca belirli veri kümelerinde eşleşen ölçüm değerlerine sahip modeller döndürülür. Veri kümesi filtreleri herhangi bir ölçüm filtresi olmadan sağlanırsa, bu veri kümelerindeki ölçümlere sahip modeller döndürülür.
Aşağıdaki özniteliklere göre filtreleyebilirsiniz:
model_idmodel_namestatusartifact_uri-
creation_time(sayısal) -
last_updated_time(sayısal)
Dize benzeri öznitelikleri, parametreleri ve etiketleri aramak ve filtrelemek için aşağıdaki işleçleri kullanın:
-
=,!=,IN,NOT IN
Sayısal öznitelikleri ve ölçümleri aramak ve filtrelemek için aşağıdaki karşılaştırma işleçlerini kullanın:
-
=,!=,>, ,<,>=,<=
Programatik Olarak Kaydedilen Modelleri Arama
MLflow API'sini kullanarak Günlüğe Kaydedilen Modeller için arama yapabilirsiniz:
## Get a Logged Model using a model_id
mlflow.get_logged_model(model_id = <my-model-id>)
## Get all Logged Models that you have access to
mlflow.search_logged_models()
## Get all Logged Models with a specific name
mlflow.search_logged_models(
filter_string = "model_name = <my-model-name>"
)
## Get all Logged Models created within a certain time range
mlflow.search_logged_models(
filter_string = "creation_time >= <creation_time_start> AND creation_time <= <creation_time_end>"
)
## Get all Logged Models with a specific param value
mlflow.search_logged_models(
filter_string = "params.<param_name> = <param_value_1>"
)
## Get all Logged Models with specific tag values
mlflow.search_logged_models(
filter_string = "tags.<tag_name> IN (<tag_value_1>, <tag_value_2>)"
)
## Get all Logged Models greater than a specific metric value on a dataset, then order by that metric value
mlflow.search_logged_models(
filter_string = "metrics.<metric_name> >= <metric_value>",
datasets = [
{"dataset_name": <dataset_name>, "dataset_digest": <dataset_digest>}
],
order_by = [
{"field_name": metrics.<metric_name>, "dataset_name": <dataset_name>,"dataset_digest": <dataset_digest>}
]
)
Daha fazla bilgi ve ek arama parametreleri için MLflow 3 API belgelerine bakın.
Model giriş ve çıkışlarına göre arama sonuçları
Model Kimliği ile çalıştırmaları arayıp Kaydedilmiş Model'i giriş veya çıkış olarak içeren tüm çalıştırmaları döndürebilirsiniz. Filtre dizesi sözdizimi hakkında daha fazla bilgi için bkz. Çalıştırmalar için filtreleme.
MLflow API'sini kullanarak deneyleri arayabilirsiniz.
## Get all Runs with a particular model as an input or output by model id
mlflow.search_runs(filter_string = "models.model_id = <my-model-id>")
Sonraki Adımlar
MLflow 3'ün diğer yeni özellikleri hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: