Öğretici: Üretim makine öğrenmesi işlem hatları oluşturma

ŞUNLAR IÇIN GEÇERLIDIR: Python SDK'sı azure-ai-ml v2 (geçerli)

Not

İşlem hattı oluşturmak için SDK v1 kullanan bir öğretici için bkz . Öğretici: Görüntü sınıflandırması için Azure Machine Learning işlem hattı oluşturma

Makine öğrenmesi işlem hattının temeli, eksiksiz bir makine öğrenmesi görevini çok adımlı bir iş akışına bölmektir. Her adım, tek tek geliştirilebilen, iyileştirilebilen, yapılandırılabilen ve otomatikleştirilen yönetilebilir bir bileşendir. Adımlar iyi tanımlanmış arabirimler aracılığıyla bağlanır. Azure Machine Learning işlem hattı hizmeti, işlem hattı adımları arasındaki tüm bağımlılıkları otomatik olarak düzenler. İşlem hattı kullanmanın avantajları MLOps uygulaması, ölçeklenebilir ekip işbirliği, eğitim verimliliği ve maliyet azaltma standartlaştırılmıştır. İşlem hatlarının avantajları hakkında daha fazla bilgi edinmek için bkz . Azure Machine Learning işlem hatları nedir?

Bu öğreticide, Azure Machine Learning Python SDK v2 kullanarak üretime hazır bir makine öğrenmesi projesi oluşturmak için Azure Machine Learning'i kullanacaksınız.

Bu, Azure Machine Learning Python SDK'sını kullanarak aşağıdakiler için kullanabileceğiniz anlamına gelir:

  • Azure Machine Learning çalışma alanınıza tanıtıcı alma
  • Azure Machine Learning veri varlıkları oluşturma
  • Yeniden kullanılabilir Azure Machine Learning bileşenleri oluşturma
  • Azure Machine Learning işlem hatlarını oluşturma, doğrulama ve çalıştırma

Bu öğretici sırasında, bir modeli kredi varsayılan tahmini için eğitmek üzere bir Azure Machine Learning işlem hattı oluşturursunuz. İşlem hattı iki adımı işler:

  1. Veri hazırlama
  2. Eğitilen modeli eğitip kaydetme

Bir sonraki görüntüde basit bir işlem hattı gösterilir. Bu işlem hattı gönderildikten sonra Azure studio'da gösterilir.

İki adım, ilk veri hazırlama ve ikinci eğitimdir.

Diagram shows overview of the pipeline.

Bu videoda, öğreticideki adımları izleyebilmek için Azure Machine Learning stüdyosu kullanmaya nasıl başlayabileceğiniz gösterilmektedir. Videoda not defteri oluşturma, işlem örneği oluşturma ve not defterini kopyalama gösterilmektedir. Adımlar aşağıdaki bölümlerde de açıklanmıştır.

Önkoşullar

  1. Azure Machine Learning'i kullanmak için öncelikle bir çalışma alanı gerekir. Bir çalışma alanınız yoksa, çalışma alanı oluşturmaya başlamak ve bu çalışma alanını kullanma hakkında daha fazla bilgi edinmek için ihtiyacınız olan kaynakları oluşturma'yı tamamlayın.

  2. Stüdyoda oturum açın ve henüz açık değilse çalışma alanınızı seçin.

  3. Bu öğreticide ihtiyacınız olan veri varlığını oluşturmak için verilerinizi karşıya yükleme, bunlara erişme ve verileri keşfetme öğreticisini tamamlayın. İlk veri varlığını oluşturmak için tüm kodu çalıştırdığınızdan emin olun. İsterseniz verileri keşfedin ve düzeltin, ancak yalnızca bu öğreticideki ilk verilere ihtiyacınız olacak.

  4. Çalışma alanınızda bir not defteri açın veya oluşturun:

    • Hücrelere kod kopyalamak/yapıştırmak istiyorsanız yeni bir not defteri oluşturun.
    • Veya studio'nun Örnekler bölümünde tutorials/get-started-notebooks/pipeline.ipynb dosyasını açın. Ardından Kopyala'yı seçerek not defterini Dosyalarınıza ekleyin. (Bkz. Örneklerin bulunacağı yer.)

Çekirdeğinizi ayarlama

  1. Açık not defterinizin üst çubuğunda, henüz yoksa bir işlem örneği oluşturun.

    Screenshot shows how to create a compute instance.

  2. İşlem örneği durdurulduysa İşlemi başlat'ı seçin ve çalışana kadar bekleyin.

    Screenshot shows how to start compute if it is stopped.

  3. Sağ üst kısımda bulunan çekirdeğin olduğundan Python 3.10 - SDK v2emin olun. Aksi takdirde, bu çekirdeği seçmek için açılan listeyi kullanın.

    Screenshot shows how to set the kernel.

  4. Kimliğinizin doğrulanması gerektiğini belirten bir başlık görürseniz Kimliği Doğrula'yı seçin.

Önemli

Bu öğreticinin geri kalanı, öğretici not defterinin hücrelerini içerir. Bunları kopyalayıp yeni not defterinize yapıştırın veya kopyaladıysanız şimdi not defterine geçin.

İşlem hattı kaynaklarını ayarlama

Azure Machine Learning çerçevesi CLI, Python SDK veya stüdyo arabiriminden kullanılabilir. Bu örnekte, işlem hattı oluşturmak için Azure Machine Learning Python SDK v2'yi kullanırsınız.

İşlem hattını oluşturmadan önce aşağıdaki kaynaklara ihtiyacınız vardır:

  • Eğitim için veri varlığı
  • İşlem hattını çalıştırmak için yazılım ortamı
  • İşin çalıştırıldığı işlem kaynağı

Çalışma alanına tanıtıcı oluşturma

Kodu incelemeden önce çalışma alanınıza başvurmak için bir yönteme ihtiyacınız vardır. Çalışma alanının tanıtıcısı için oluşturacaksınız ml_client . Daha sonra kaynakları ve işleri yönetmek için kullanacaksınız ml_client .

Sonraki hücreye Abonelik Kimliğinizi, Kaynak Grubu adınızı ve Çalışma Alanı adınızı girin. Bu değerleri bulmak için:

  1. Sağ üst Azure Machine Learning stüdyosu araç çubuğunda çalışma alanı adınızı seçin.
  2. Çalışma alanı, kaynak grubu ve abonelik kimliğinin değerini koda kopyalayın.
  3. Bir değeri kopyalamanız, alanı kapatıp yapıştırmanız ve ardından bir sonraki değer için geri dönmeniz gerekir.
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

# authenticate
credential = DefaultAzureCredential()

SUBSCRIPTION="<SUBSCRIPTION_ID>"
RESOURCE_GROUP="<RESOURCE_GROUP>"
WS_NAME="<AML_WORKSPACE_NAME>"
# Get a handle to the workspace
ml_client = MLClient(
    credential=credential,
    subscription_id=SUBSCRIPTION,
    resource_group_name=RESOURCE_GROUP,
    workspace_name=WS_NAME,
)

Not

MLClient oluşturma çalışma alanına bağlanmaz. İstemci başlatma yavaştır, ilk kez çağrı yapmasını bekler (bu bir sonraki kod hücresinde gerçekleşir).

çağrısı ml_clientyaparak bağlantıyı doğrulayın. Çalışma alanına ilk kez çağrı yaptığınız için kimlik doğrulaması yapmanız istenebilir.

# Verify that the handle works correctly.  
# If you ge an error here, modify your SUBSCRIPTION, RESOURCE_GROUP, and WS_NAME in the previous cell.
ws = ml_client.workspaces.get(WS_NAME)
print(ws.location,":", ws.resource_group)

Kayıtlı veri varlığına erişme

Öğretici: Azure Machine Learning'de verilerinizi karşıya yükleme, erişme ve keşfetme başlığı altında daha önce kaydettiğiniz verileri alarak başlayın.

  • Azure Machine Learning, Data verilerin yeniden kullanılabilir bir tanımını kaydetmek ve verileri bir işlem hattı içinde kullanmak için bir nesne kullanır.
# get a handle of the data asset and print the URI
credit_data = ml_client.data.get(name="credit-card", version="initial")
print(f"Data asset URI: {credit_data.path}")

İşlem hattı adımları için iş ortamı oluşturma

Şimdiye kadar, geliştirme makineniz olan işlem örneğinde bir geliştirme ortamı oluşturdunuz. ayrıca işlem hattının her adımı için kullanılacak bir ortama da ihtiyacınız vardır. Her adımın kendi ortamı olabilir veya birden çok adım için bazı ortak ortamları kullanabilirsiniz.

Bu örnekte, conda yaml dosyası kullanarak işleriniz için bir conda ortamı oluşturursunuz. İlk olarak, dosyayı depolamak için bir dizin oluşturun.

import os

dependencies_dir = "./dependencies"
os.makedirs(dependencies_dir, exist_ok=True)

Şimdi dosyayı bağımlılıklar dizininde oluşturun.

%%writefile {dependencies_dir}/conda.yaml
name: model-env
channels:
  - conda-forge
dependencies:
  - python=3.8
  - numpy=1.21.2
  - pip=21.2.4
  - scikit-learn=0.24.2
  - scipy=1.7.1
  - pandas>=1.1,<1.2
  - pip:
    - inference-schema[numpy-support]==1.3.0
    - xlrd==2.0.1
    - mlflow== 2.4.1
    - azureml-mlflow==1.51.0

Belirtim, işlem hattınızda kullandığınız bazı normal paketleri (numpy, pip) ve bazı Azure Machine Learning'e özgü paketleri (azureml-mlflow) içerir.

Azure Machine Learning işlerini çalıştırmak için Azure Machine Learning paketleri zorunlu değildir. Ancak bu paketleri eklemek, azure Machine Learning işinin içinde ölçümleri günlüğe kaydetmek ve modelleri kaydetmek için Azure Machine Learning ile etkileşim kurmanızı sağlar. Bunları bu öğreticinin devamında eğitim betiğinde kullanacaksınız.

Bu özel ortamı oluşturmak ve çalışma alanınıza kaydetmek için yaml dosyasını kullanın:

from azure.ai.ml.entities import Environment

custom_env_name = "aml-scikit-learn"

pipeline_job_env = Environment(
    name=custom_env_name,
    description="Custom environment for Credit Card Defaults pipeline",
    tags={"scikit-learn": "0.24.2"},
    conda_file=os.path.join(dependencies_dir, "conda.yaml"),
    image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest",
    version="0.2.0",
)
pipeline_job_env = ml_client.environments.create_or_update(pipeline_job_env)

print(
    f"Environment with name {pipeline_job_env.name} is registered to workspace, the environment version is {pipeline_job_env.version}"
)

Eğitim işlem hattını oluşturma

artık işlem hattınızı çalıştırmak için gereken tüm varlıklarınız olduğuna göre işlem hattının kendisini oluşturmanın zamanı geldi.

Azure Machine Learning işlem hatları, genellikle çeşitli bileşenlerden oluşan yeniden kullanılabilir ML iş akışlarıdır. Bir bileşenin tipik ömrü şöyledir:

  • Bileşenin yaml belirtimini yazın veya kullanarak ComponentMethodprogram aracılığıyla oluşturun.
  • İsteğe bağlı olarak, bileşeni yeniden kullanılabilir ve paylaşılabilir hale getirmek için çalışma alanınızda bir ad ve sürümle kaydedin.
  • Bu bileşeni işlem hattı kodundan yükleyin.
  • Bileşenin girişlerini, çıkışlarını ve parametrelerini kullanarak işlem hattını uygulayın.
  • İşlem hattını gönderin.

Programlı ve yaml tanımı olmak üzere bir bileşen oluşturmanın iki yolu vardır. Sonraki iki bölümde bileşen oluşturma adımları her iki şekilde de izlenmiştir. Her iki seçeneği de deneyen iki bileşeni oluşturabilir veya tercih ettiğiniz yöntemi seçebilirsiniz.

Not

Kolaylık sağlamak için bu öğreticide tüm bileşenler için aynı hesaplamayı kullanıyoruz. Ancak, her bileşen için, örneğin gibi train_step.compute = "cpu-cluster"bir satır ekleyerek farklı hesaplamalar ayarlayabilirsiniz. Her bileşen için farklı işlemlerle işlem hattı oluşturma örneğini görüntülemek için cifar-10 işlem hattı öğreticisindeki Temel işlem hattı işi bölümüne bakın.

Bileşen oluşturma 1: veri hazırlığı (programlı tanımı kullanarak)

İlk bileşeni oluşturarak başlayalım. Bu bileşen, verilerin ön işlemesini işler. Ön işleme görevi data_prep.py Python dosyasında gerçekleştirilir.

İlk olarak data_prep bileşeni için bir kaynak klasör oluşturun:

import os

data_prep_src_dir = "./components/data_prep"
os.makedirs(data_prep_src_dir, exist_ok=True)

Bu betik, verileri eğitme ve test veri kümelerine bölme basit görevini gerçekleştirir. Azure Machine Learning veri kümelerini işlemlere klasör olarak bağlamıştır, bu nedenle bağlı giriş klasörünün içindeki veri dosyasına erişmek için yardımcı bir select_first_file işlev oluşturduk.

MLFlow , işlem hattı çalıştırmamız sırasında parametreleri ve ölçümleri günlüğe kaydetmek için kullanılır.

%%writefile {data_prep_src_dir}/data_prep.py
import os
import argparse
import pandas as pd
from sklearn.model_selection import train_test_split
import logging
import mlflow


def main():
    """Main function of the script."""

    # input and output arguments
    parser = argparse.ArgumentParser()
    parser.add_argument("--data", type=str, help="path to input data")
    parser.add_argument("--test_train_ratio", type=float, required=False, default=0.25)
    parser.add_argument("--train_data", type=str, help="path to train data")
    parser.add_argument("--test_data", type=str, help="path to test data")
    args = parser.parse_args()

    # Start Logging
    mlflow.start_run()

    print(" ".join(f"{k}={v}" for k, v in vars(args).items()))

    print("input data:", args.data)

    credit_df = pd.read_csv(args.data, header=1, index_col=0)

    mlflow.log_metric("num_samples", credit_df.shape[0])
    mlflow.log_metric("num_features", credit_df.shape[1] - 1)

    credit_train_df, credit_test_df = train_test_split(
        credit_df,
        test_size=args.test_train_ratio,
    )

    # output paths are mounted as folder, therefore, we are adding a filename to the path
    credit_train_df.to_csv(os.path.join(args.train_data, "data.csv"), index=False)

    credit_test_df.to_csv(os.path.join(args.test_data, "data.csv"), index=False)

    # Stop Logging
    mlflow.end_run()


if __name__ == "__main__":
    main()

artık istediğiniz görevi gerçekleştirebilen bir betiğiniz olduğuna göre, bundan bir Azure Machine Learning Bileşeni oluşturun.

Komut satırı eylemlerini çalıştırabilen genel amacı CommandComponent kullanın. Bu komut satırı eylemi doğrudan sistem komutlarını çağırabilir veya bir betik çalıştırabilir. Girişler/çıkışlar, komut satırında gösterimi aracılığıyla ${{ ... }} belirtilir.

from azure.ai.ml import command
from azure.ai.ml import Input, Output

data_prep_component = command(
    name="data_prep_credit_defaults",
    display_name="Data preparation for training",
    description="reads a .xl input, split the input to train and test",
    inputs={
        "data": Input(type="uri_folder"),
        "test_train_ratio": Input(type="number"),
    },
    outputs=dict(
        train_data=Output(type="uri_folder", mode="rw_mount"),
        test_data=Output(type="uri_folder", mode="rw_mount"),
    ),
    # The source folder of the component
    code=data_prep_src_dir,
    command="""python data_prep.py \
            --data ${{inputs.data}} --test_train_ratio ${{inputs.test_train_ratio}} \
            --train_data ${{outputs.train_data}} --test_data ${{outputs.test_data}} \
            """,
    environment=f"{pipeline_job_env.name}:{pipeline_job_env.version}",
)

İsteğe bağlı olarak, gelecekte yeniden kullanmak üzere bileşeni çalışma alanına kaydedin.

# Now we register the component to the workspace
data_prep_component = ml_client.create_or_update(data_prep_component.component)

# Create (register) the component in your workspace
print(
    f"Component {data_prep_component.name} with Version {data_prep_component.version} is registered"
)

Bileşen oluşturma 2: eğitim (yaml tanımını kullanarak)

Oluşturduğunuz ikinci bileşen eğitim ve test verilerini kullanır, ağaç tabanlı bir model eğitir ve çıkış modelini döndürür. Öğrenme ilerleme durumunu kaydetmek ve görselleştirmek için Azure Machine Learning günlük özelliklerini kullanın.

sınıfını CommandComponent ilk bileşeninizi oluşturmak için kullandınız. Bu kez ikinci bileşeni tanımlamak için yaml tanımını kullanırsınız. Her yöntemin kendi avantajları vardır. Yaml tanımı kod boyunca iade edilebilir ve okunabilir bir geçmiş izlemesi sağlar. Kullanarak programlama yöntemi CommandComponent , yerleşik sınıf belgeleri ve kod tamamlama ile daha kolay olabilir.

Bu bileşen için dizini oluşturun:

import os

train_src_dir = "./components/train"
os.makedirs(train_src_dir, exist_ok=True)

Dizinde eğitim betiğini oluşturun:

%%writefile {train_src_dir}/train.py
import argparse
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.metrics import classification_report
import os
import pandas as pd
import mlflow


def select_first_file(path):
    """Selects first file in folder, use under assumption there is only one file in folder
    Args:
        path (str): path to directory or file to choose
    Returns:
        str: full path of selected file
    """
    files = os.listdir(path)
    return os.path.join(path, files[0])


# Start Logging
mlflow.start_run()

# enable autologging
mlflow.sklearn.autolog()

os.makedirs("./outputs", exist_ok=True)


def main():
    """Main function of the script."""

    # input and output arguments
    parser = argparse.ArgumentParser()
    parser.add_argument("--train_data", type=str, help="path to train data")
    parser.add_argument("--test_data", type=str, help="path to test data")
    parser.add_argument("--n_estimators", required=False, default=100, type=int)
    parser.add_argument("--learning_rate", required=False, default=0.1, type=float)
    parser.add_argument("--registered_model_name", type=str, help="model name")
    parser.add_argument("--model", type=str, help="path to model file")
    args = parser.parse_args()

    # paths are mounted as folder, therefore, we are selecting the file from folder
    train_df = pd.read_csv(select_first_file(args.train_data))

    # Extracting the label column
    y_train = train_df.pop("default payment next month")

    # convert the dataframe values to array
    X_train = train_df.values

    # paths are mounted as folder, therefore, we are selecting the file from folder
    test_df = pd.read_csv(select_first_file(args.test_data))

    # Extracting the label column
    y_test = test_df.pop("default payment next month")

    # convert the dataframe values to array
    X_test = test_df.values

    print(f"Training with data of shape {X_train.shape}")

    clf = GradientBoostingClassifier(
        n_estimators=args.n_estimators, learning_rate=args.learning_rate
    )
    clf.fit(X_train, y_train)

    y_pred = clf.predict(X_test)

    print(classification_report(y_test, y_pred))

    # Registering the model to the workspace
    print("Registering the model via MLFlow")
    mlflow.sklearn.log_model(
        sk_model=clf,
        registered_model_name=args.registered_model_name,
        artifact_path=args.registered_model_name,
    )

    # Saving the model to a file
    mlflow.sklearn.save_model(
        sk_model=clf,
        path=os.path.join(args.model, "trained_model"),
    )

    # Stop Logging
    mlflow.end_run()


if __name__ == "__main__":
    main()

Bu eğitim betiğinde görebileceğiniz gibi, model eğitildikten sonra model dosyası kaydedilir ve çalışma alanına kaydedilir. Artık uç noktaları çıkarsamada kayıtlı modeli kullanabilirsiniz.

Bu adımın ortamı için yerleşik (seçilmiş) Azure Machine Learning ortamlarından birini kullanırsınız. etiketi azureml, sisteme seçilen ortamlarda adı arama özelliğini kullanmasını söyler. İlk olarak, bileşeni açıklayan yaml dosyasını oluşturun:

%%writefile {train_src_dir}/train.yml
# <component>
name: train_credit_defaults_model
display_name: Train Credit Defaults Model
# version: 1 # Not specifying a version will automatically update the version
type: command
inputs:
  train_data: 
    type: uri_folder
  test_data: 
    type: uri_folder
  learning_rate:
    type: number     
  registered_model_name:
    type: string
outputs:
  model:
    type: uri_folder
code: .
environment:
  # for this step, we'll use an AzureML curate environment
  azureml:AzureML-sklearn-1.0-ubuntu20.04-py38-cpu:1
command: >-
  python train.py 
  --train_data ${{inputs.train_data}} 
  --test_data ${{inputs.test_data}} 
  --learning_rate ${{inputs.learning_rate}}
  --registered_model_name ${{inputs.registered_model_name}} 
  --model ${{outputs.model}}
# </component>

Şimdi bileşeni oluşturun ve kaydedin. Bunu kaydetmek, diğer işlem hatlarında yeniden kullanmanıza olanak tanır. Ayrıca, çalışma alanınıza erişimi olan herkes kayıtlı bileşeni kullanabilir.

# importing the Component Package
from azure.ai.ml import load_component

# Loading the component from the yml file
train_component = load_component(source=os.path.join(train_src_dir, "train.yml"))

# Now we register the component to the workspace
train_component = ml_client.create_or_update(train_component)

# Create (register) the component in your workspace
print(
    f"Component {train_component.name} with Version {train_component.version} is registered"
)

Bileşenlerden işlem hattı oluşturma

Artık her iki bileşeniniz de tanımlandığına ve kaydedildiğini göre işlem hattını uygulamaya başlayabilirsiniz.

Burada giriş verileri, bölme oranı ve kayıtlı model adını giriş değişkenleri olarak kullanırsınız. Ardından bileşenleri çağırın ve giriş/çıkış tanımlayıcıları aracılığıyla bağlayın. Her adımın çıkışlarına özelliği aracılığıyla .outputs erişilebilir.

Tarafından load_component() döndürülen Python işlevleri, her adımı çağırmak için bir işlem hattı içinde kullandığımız herhangi bir normal Python işlevi olarak çalışır.

İşlem hattını kodlamak için Azure Machine Learning işlem hatlarını tanımlayan belirli @dsl.pipeline bir dekoratör kullanırsınız. Dekoratörde işlem hattı açıklamasını ve işlem ve depolama gibi varsayılan kaynakları belirtebiliriz. Python işlevinde olduğu gibi işlem hatlarında da girişler olabilir. Ardından, farklı girişlere sahip tek bir işlem hattının birden çok örneğini oluşturabilirsiniz.

Burada giriş verileri, bölme oranı ve kayıtlı model adını giriş değişkenleri olarak kullandık. Ardından bileşenleri çağırır ve giriş/çıkış tanımlayıcıları aracılığıyla birbirine bağlarız. Her adımın çıkışlarına özelliği aracılığıyla .outputs erişilebilir.

# the dsl decorator tells the sdk that we are defining an Azure Machine Learning pipeline
from azure.ai.ml import dsl, Input, Output


@dsl.pipeline(
    compute="serverless",  # "serverless" value runs pipeline on serverless compute
    description="E2E data_perp-train pipeline",
)
def credit_defaults_pipeline(
    pipeline_job_data_input,
    pipeline_job_test_train_ratio,
    pipeline_job_learning_rate,
    pipeline_job_registered_model_name,
):
    # using data_prep_function like a python call with its own inputs
    data_prep_job = data_prep_component(
        data=pipeline_job_data_input,
        test_train_ratio=pipeline_job_test_train_ratio,
    )

    # using train_func like a python call with its own inputs
    train_job = train_component(
        train_data=data_prep_job.outputs.train_data,  # note: using outputs from previous step
        test_data=data_prep_job.outputs.test_data,  # note: using outputs from previous step
        learning_rate=pipeline_job_learning_rate,  # note: using a pipeline input as parameter
        registered_model_name=pipeline_job_registered_model_name,
    )

    # a pipeline returns a dictionary of outputs
    # keys will code for the pipeline output identifier
    return {
        "pipeline_job_train_data": data_prep_job.outputs.train_data,
        "pipeline_job_test_data": data_prep_job.outputs.test_data,
    }

Şimdi işlem hattı tanımınızı kullanarak veri kümenizle bir işlem hattı örneği oluşturun, tercih ettiğiniz oranı ve modeliniz için seçtiğiniz adı belirleyin.

registered_model_name = "credit_defaults_model"

# Let's instantiate the pipeline with the parameters of our choice
pipeline = credit_defaults_pipeline(
    pipeline_job_data_input=Input(type="uri_file", path=credit_data.path),
    pipeline_job_test_train_ratio=0.25,
    pipeline_job_learning_rate=0.05,
    pipeline_job_registered_model_name=registered_model_name,
)

İşi gönderme

Şimdi Azure Machine Learning'de çalıştırılacak işi gönderme zamanı geldi. Bu kez üzerinde ml_client.jobskullanırsınızcreate_or_update.

Burada bir deneme adı da geçirirsiniz. Deneme, belirli bir projede yapılan tüm yinelemeler için bir kapsayıcıdır. Aynı deneme adı altında gönderilen tüm işler Azure Machine Learning stüdyosu'da yan yana listelenir.

İşlem hattı tamamlandıktan sonra, eğitimin bir sonucu olarak çalışma alanınıza bir model kaydeder.

# submit the pipeline job
pipeline_job = ml_client.jobs.create_or_update(
    pipeline,
    # Project's name
    experiment_name="e2e_registered_components",
)
ml_client.jobs.stream(pipeline_job.name)

Önceki hücrede oluşturulan bağlantıyı kullanarak işlem hattınızın ilerleme durumunu izleyebilirsiniz. Bu bağlantıyı ilk kez seçtiğinizde işlem hattının hala çalıştığını görebilirsiniz. İşlem tamamlandıktan sonra her bileşenin sonuçlarını inceleyebilirsiniz.

Kredi Varsayılanları Modelini Eğit bileşenine çift tıklayın.

Eğitim hakkında görmek isteyeceğiniz iki önemli sonuç vardır:

  • Günlüklerinizi görüntüleyin:

    1. Çıkışlar+günlükler sekmesini seçin.
    2. Klasörleri user_logs>std_log.txt Bu bölümde açın, betik çalıştırma stdout'u gösterir. Screenshot of std_log.txt.
  • Ölçümlerinizi görüntüleme: Ölçümler sekmesini seçin. Bu bölümde farklı günlüğe kaydedilen ölçümler gösterilir. Bu örnekte. mlflow autologging, eğitim ölçümlerini otomatik olarak günlüğe kaydetmiştir.

    Screenshot shows logged metrics.txt.

Modeli çevrimiçi uç nokta olarak dağıtma

Modelinizi çevrimiçi uç noktaya dağıtmayı öğrenmek için bkz . Modeli çevrimiçi uç nokta olarak dağıtma öğreticisi.

Kaynakları temizleme

Şimdi diğer öğreticilere devam etmek istiyorsanız Sonraki adımlar'a atlayın.

İşlem örneğini durdurma

Şimdi kullanmayacaksanız işlem örneğini durdurun:

  1. Stüdyoda, sol gezinti alanında İşlem'i seçin.
  2. Üst sekmelerde İşlem örnekleri'ni seçin
  3. Listeden işlem örneğini seçin.
  4. Üst araç çubuğunda Durdur'u seçin.

Tüm kaynakları silme

Önemli

Oluşturduğunuz kaynaklar, diğer Azure Machine Learning öğreticileri ve nasıl yapılır makaleleri için önkoşul olarak kullanılabilir.

Oluşturduğunuz kaynaklardan hiçbirini kullanmayı planlamıyorsanız, ücret ödememek için bunları silin:

  1. Azure portalının en sol tarafındaki Kaynak gruplarını seçin.

  2. Listeden, oluşturduğunuz kaynak grubunu seçin.

  3. Kaynak grubunu sil'i seçin.

    Screenshot of the selections to delete a resource group in the Azure portal.

  4. Kaynak grubu adını girin. Ardından Sil'i seçin.

Sonraki adımlar