Aracılığıyla paylaş


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'yı 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 commit'i depoya kopyalamak için --depth 1 kullanın; bu, işlemin tamamlanma süresini kısaltı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 bir işlem kaynağı seçmeniz gerekir.

1. Çalışma alanına bağlanma

İpucu

Modeli eğitmek için kullanmak istediğiniz yöntemi seçmek için aşağıdaki sekmeleri kullanın. 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. Azure Machine Learning çalışma alanına erişmek için MLClient ad alanındaki azure.ai.ml'yı kullanarak bu ayrıntıları edinin. Kimlik doğrulaması yapmak için varsayılan Azure kimlik doğrulamasını kullanın. Kimlik bilgilerini yapılandırma ve çalışma alanına bağlanma hakkında daha fazla bilgi için bu örne bakın.

#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 kullanabileceğiniz tam olarak yönetilen bir işlem kaynağıdır. Aşağıdaki örneklerde adlı cpu-clusterbir işlem kümesi oluşturursunuz.

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 altında commandbulunan main.py Python betiğini yürüten bir ./sdk/python/jobs/single-step/lightgbm/iris/src/ kullanın. Komutunu Azure Machine Learning'e olarak job gönderirsiniz.

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ırılacak kodun bulunduğu yol.
  • command - çalışması gereken komut.
  • environment - eğitim betiğini çalıştırmak için gereken ortam. Bu örnekte, Azure Machine Learning tarafından sağlanan AzureML-lightgbm-3.3@latest adlı, seçilmiş veya hazır bir ortam kullanın. 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. ifadesini kullanarak command içindeki girişlere ${{inputs.<input_name>}} başvuruda bulunun. Girdi olarak dosya veya klasör kullanmak için sınıfını Input kullanın. 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 hizmet, Azure Machine Learning studio'daki iş durumunun URL'sini döndürü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

Eğitim işi bir name özelliği döndürür. Modelin yolunun bir parçası olarak bu adı kullanın.

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: