Azure Machine Learning CLI, SDK ve REST API ile modelleri eğitin

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

Azure Machine Learning, ML eğitim işlerini göndermek için birden fazla yol sağlar. Bu makalede, aşağıdaki yöntemleri kullanarak işleri göndermeyi öğreneceksiniz:

  • Makine öğrenmesi için Azure CLI uzantısı: ml CLI v2 olarak da adlandırılan uzantı.
  • Azure Machine Learning için Python SDK v2.
  • REST API: CLI ve SDK'nın üzerinde oluşturulduğu API.

Önkoşullar

  • Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun. Azure Machine Learning'in ücretsiz veya ücretli sürümünü deneyin.
  • Azure Machine Learning çalışma alanı. Kaynağınız yoksa Başlamak için kaynak oluşturma makalesindeki adımları kullanabilirsiniz.

SDK bilgilerini kullanmak için Python için Azure Machine Learning SDK v2'yi yükleyin.

Örnek deposunu kopyalama

Bu makaledeki kod parçacıkları, Azure Machine Learning örnekleri GitHub deposundaki örnekleri temel alır. Depoyu geliştirme ortamınıza kopyalamak için aşağıdaki komutu kullanın:

git clone --depth 1 https://github.com/Azure/azureml-examples

İpucu

Yalnızca en son işlemeyi depoya kopyalamak için kullanın --depth 1 ; bu işlem tamamlanma süresini kısaltılır.

Örnek iş

Bu makaledeki örneklerde MLFlow modelini eğitmek için iris çiçek veri kümesi kullanılır.

Bulutta eğitin

Bulutta eğitim yaparken Azure Machine Learning çalışma alanınıza bağlanmanız ve eğitim işini çalıştırmak için kullanılacak bir işlem kaynağı seçmeniz gerekir.

1. Çalışma alanına Bağlan

İpucu

Modeli eğitmek için kullanmak istediğiniz yöntemi seçmek için aşağıdaki sekmeleri kullanın. Bir sekme seçildiğinde, bu makaledeki tüm sekmeler otomatik olarak aynı sekmeye geçer. İstediğiniz zaman başka bir sekme seçebilirsiniz.

Çalışma alanına bağlanmak için tanımlayıcı parametrelerine (abonelik, kaynak grubu ve çalışma alanı adı) ihtiyacınız vardır. Gerekli Azure Machine Learning çalışma alanına bir tanıtıcı almak için ad alanında bu ayrıntıları MLClientazure.ai.ml kullanacaksınız. Kimlik doğrulaması yapmak için varsayılan Azure kimlik doğrulamasını kullanırsınız. Kimlik bilgilerini yapılandırma ve çalışma alanına bağlanma hakkında daha fazla bilgi için bu örneği gözden geçirin.

#import required libraries
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

#Enter details of your Azure Machine Learning workspace
subscription_id = '<SUBSCRIPTION_ID>'
resource_group = '<RESOURCE_GROUP>'
workspace = '<AZUREML_WORKSPACE_NAME>'

#connect to the workspace
ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace)

2. Eğitim için işlem kaynağı oluşturma

Not

Sunucusuz işlemi denemek için bu adımı atlayın ve 3'e geçin. Eğitim işini gönderin.

Azure Machine Learning işlem kümesi, eğitim işini çalıştırmak için kullanılabilecek tam olarak yönetilen bir işlem kaynağıdır. Aşağıdaki örneklerde adlı cpu-compute bir işlem kümesi oluşturulur.

from azure.ai.ml.entities import AmlCompute

# specify aml compute name.
cpu_compute_target = "cpu-cluster"

try:
    ml_client.compute.get(cpu_compute_target)
except Exception:
    print("Creating a new cpu compute target...")
    compute = AmlCompute(
        name=cpu_compute_target, size="STANDARD_D2_V2", min_instances=0, max_instances=4
    )
    ml_client.compute.begin_create_or_update(compute).result()

3. Eğitim işini gönderme

Bu betiği çalıştırmak için ./sdk/python/jobs/single-step/lightgbm/iris/src/ altında bulunan main.py Python betiğini yürüten bir command kullanacaksınız. Komut, Azure Machine Learning'e olarak job gönderilerek çalıştırılır.

Not

Sunucusuz işlem kullanmak için bu kodda silincompute="cpu-cluster".

from azure.ai.ml import command, Input

# define the command
command_job = command(
    code="./src",
    command="python main.py --iris-csv ${{inputs.iris_csv}} --learning-rate ${{inputs.learning_rate}} --boosting ${{inputs.boosting}}",
    environment="AzureML-lightgbm-3.2-ubuntu18.04-py37-cpu@latest",
    inputs={
        "iris_csv": Input(
            type="uri_file",
            path="https://azuremlexamples.blob.core.windows.net/datasets/iris.csv",
        ),
        "learning_rate": 0.9,
        "boosting": "gbdt",
    },
    compute="cpu-cluster",
)
# submit the command
returned_job = ml_client.jobs.create_or_update(command_job)
# get a URL for the status of the job
returned_job.studio_url

Yukarıdaki örneklerde şunları yapılandırmışsınız:

  • code - komutu çalıştıracak kodun bulunduğu yol
  • command - çalıştırılması gereken komut
  • environment - eğitim betiğini çalıştırmak için gereken ortam. Bu örnekte, Azure Machine Learning AzureML-lightgbm-3.2-ubuntu18.04-py37-cputarafından sağlanan adlı, seçilmiş veya hazır bir ortam kullanıyoruz. yönergesini kullanarak bu ortamın en son sürümünü kullanırız @latest . Temel bir docker görüntüsü belirterek ve üzerine bir conda yaml belirterek de özel ortamları kullanabilirsiniz.
  • inputs - komutuna ad değer çiftleri kullanan girişlerin sözlüğü. anahtar, iş bağlamında girişin adı ve değer giriş değeridir. girişlerine ifadesi kullanılarak başvurulur command${{inputs.<input_name>}} . Girdi olarak dosya veya klasör kullanmak için sınıfını Input kullanabilirsiniz. Daha fazla bilgi için bkz . SDK ve CLI v2 ifadeleri.

Daha fazla bilgi için başvuru belgelerine bakın.

İşi gönderdiğinizde, Azure Machine Learning stüdyosu iş durumuna bir URL döndürülür. İş ilerleme durumunu görüntülemek için stüdyo kullanıcı arabirimini kullanın. İşin geçerli durumunu denetlemek için de kullanabilirsiniz returned_job.status .

Eğitilen modeli kaydetme

Aşağıdaki örneklerde, Azure Machine Learning çalışma alanınıza nasıl model kaydedilecek gösterilmektedir.

İpucu

name Eğitim işi tarafından döndürülen özellik, modelin yolunun bir parçası olarak kullanılır.

from azure.ai.ml.entities import Model
from azure.ai.ml.constants import AssetTypes

run_model = Model(
    path="azureml://jobs/{}/outputs/artifacts/paths/model/".format(returned_job.name),
    name="run-model-example",
    description="Model created from run.",
    type=AssetTypes.MLFLOW_MODEL
)

ml_client.models.create_or_update(run_model)

Sonraki adımlar

Artık eğitilmiş bir modeliniz olduğuna göre, çevrimiçi uç nokta kullanarak nasıl dağıtacağınızı öğrenin.

Daha fazla örnek için bkz . Azure Machine Learning örnekleri GitHub deposu.

Bu makalede kullanılan Azure CLI komutları, Python SDK sınıfları veya REST API'leri hakkında daha fazla bilgi için aşağıdaki başvuru belgelerine bakın: