CLI ile eğitim işi olarak Python betiği çalıştırma (v2)

Tamamlandı

Azure Machine Learning CLI (v2) ile çalışma alanında modelleri eğitebilir ve izleyebilirsiniz.

Bisiklet şirketindeki veri bilim adamlarından biri müşteri değişim sıklığı modelini eğitmiş. Modeli eğitmek için kullanılan Python betiğini ve model için giriş olarak kullanılan müşteri verilerinin bir örneğini içeren CSV veri kümesini alırsınız. Veri bilimi ekibi, modelin pazarlama ekibiyle paylaşılabilmesi için Azure Machine Learning çalışma alanında eğitilmesi istiyor.

Pazarlama ekibi modeli kullanmak için sabırsızlanıyor. Modelin hedeflenen promosyon e-postalarını başka türlü değişime neden olabilecek ve rakiplerden satın alabilen müşterilere göndermenin değerli olmasını beklerler.

Azure Machine Learning CLI (v2) ile Python betiği kullanarak modeli eğiteceksiniz.

İşler

Azure Machine Learning'de makine öğrenmesi iş yüklerini izlemek için modelleri eğitmek için işleri kullanın. Azure Machine Learning işi, belirtilen işlem hedeflerine karşı bir görev yürütür.

Modeli eğitmen genellikle yinelemeli bir işlemdir. Çalışmanızı takip etmek için Azure Machine Learning'de bir modeli iş olarak eğiterek girişleri ve çıkışları gözden geçirebilirsiniz.

Bir modelin girişleri, iş göndermek için gereken YAML dosyasında listelenir. Bu YAML dosyasına temel bilgileri ekleyeceksiniz:

  • Çalıştırılacaklar: Eğitim betiği.
  • Nasıl çalıştırılır: Kodu çalıştırmak için gereken ortam.
  • Nerede çalıştırılır: Kodu yürütmek için kullanılan işlem.

bir iş gönderdiğinizde, çalışma alanında bir deneme çalıştırması oluşturulur. Meta veriler, ölçümler, günlükler ve yapıtlar gibi bir modelin tüm çıkışları deneme çalıştırmasıyla birlikte depolanır. Bir işin tüm girişlerini ve çıkışlarını Azure Machine Learning Studio'da bulabilirsiniz.

Modeli eğitme

Azure Machine Learning'de makine öğrenmesi modelini eğitmek ve izlemek için bir iş kullanın.

Size müşteri değişim sıklığı modelini eğitmek için kullanılan eğitim betiğini ve CSV veri kümesini veren bisiklet şirketinin veri bilimcisini hatırlayın. Betiği çalıştırmak ve modeli iş olarak eğitmek için aşağıdaki YAML dosyasını kullanabilirsiniz:

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: 
  local_path: src
command: >-
  python main.py 
environment: azureml:basic-env-scikit:1
compute: azureml:testdev-vm
experiment_name: customer-churn
description: Train a classification model on a sample customer dataset.

YAML dosyası aşağıdakileri açıklar:

  • code.local_path: Eğitim betiğinin yerel yolu.
  • command: Betiği Python ile çalıştırmak için yürütülecek komut.
  • environment: Komutu yürütmek için gereken ortam. ön ekini azureml:kullanarak çalışma alanından kayıtlı bir ortama başvurabilir veya satır içinde bir ortam tanımlayabilirsiniz.
  • compute: Kodun üzerinde çalıştırılacağı işlem hedefi. Yerel işlem veya çalışma alanından işlem örneğini veya kümesini kullanabilirsiniz.
  • experiment_name: İş, çalışma alanında deneme çalıştırması olarak depolanır. İsteğe bağlı olarak, deneme adını Studio'da daha kolay bulmak için ekleyebilirsiniz. Varsayılan olarak, sizin için bir ad oluşturulur.
  • description: İsteğe bağlı olarak, işin ne içerdiği hakkında daha fazla bilgi vermek için bir açıklama ekleyin.

Önemli

İş YAML dosyasındaki Azure Machine Learning çalışma alanınızdaki bir varlığa başvurmak istediğinizde ön ekini azureml:kullanmanız gerekir. Örneğin, işlem örneğinizde "testdv-vm" adlı bir model eğitmek istiyorsanız kullanırsınız azureml:testdv-vm.

bir iş göndermek için olarak job.yml depolanan YAML dosyasının yoluna bakın ve komutunu çalıştırın:

az ml job create --file job.yml --web

Dekont

Tüm kod örnekleri varsayılan bir kaynak grubu ve Azure Machine Learning çalışma alanının yapılandırıldığını varsayar.

parametresini --webeklediğinizde, iş gönderildikten sonra Azure Machine Learning Studio'da deneme çalıştırmasını izleyebilmenizi sağlayacak bir web sayfası açılır.

Studio'da iş deneme çalıştırması olarak listelenir ve işin ilerleme durumu ve ayrıntıları gösterilir. Ayrıntılar sekmesi, eğitilen modelin doğruluğu gibi komutu, ortamı, işlem hedefini ve performans ölçümlerini bulabileceğiniz girişleri gösterir.

Bahşiş

AZURE Machine Learning işlerini CLI (v2) ile yönetme hakkında daha fazla bilgi edinmek için başvuru belgelerine az ml job gidin.

veri kümesini işe giriş olarak ekleme

Modeli eğitmen yinelemeli bir işlemdir. Veri bilimciler, farklı girişlere ancak aynı eğitim betiğine sahip birden çok modeli eğitmek için giriş bağımsız değişkenleriyle çalışabilir. Şimdi bir veri girişi bağımsız değişkeni örneğine bakalım.

Eğitim betiğini ve CSV veri kümesini kullanarak Azure Machine Learning işlemini kullanarak bir müşteri değişim sıklığı modeli eğitmişsinizdir. Daha fazla veri topladığınızda doğruluğunu artırmak için modeli yeniden eğitme planınız vardır. Modeli eğitmek için giriş olarak kullanılan veri kümesi, daha fazla veri toplanıp CSV'ye eklendikçe zaman içinde değişir. Modeli her yeniden eğitmek istediğinizde giriş veri kümesini kolayca değiştirmek için veriler için bir giriş bağımsız değişkeni oluşturmak istiyorsunuz.

Doğrudan eğitim betiğinden yerel olarak depolanan CSV'ye başvurmak yerine YAML dosyasındaki veri girişini belirtmek istiyorsunuz. Bu yaklaşımı benimserken dikkate alınması gereken iki nokta vardır:

  • Betikte: Giriş bağımsız değişkenlerini modülünü argparse kullanarak tanımlarsınız. Bağımsız değişkenin adını, türünü ve isteğe bağlı olarak bir varsayılan değeri belirtirsiniz.
  • YAML dosyasında: Yerel dosya sistemine bağlanacak (varsayılan seçenek) veya verileri indirecek veri girişini belirtirsiniz. Azure Machine Learning çalışma alanında genel URI'ye veya kayıtlı bir veri kümesine başvurabilirsiniz.

Müşteri değişim sıklığı verileri için Azure Machine Learning çalışma alanına kayıtlı bir veri kümesi oluşturdunuz. Veri kümesi, çalışma alanı blob deposunda depolanan CSV dosyasına başvurur. Veri kümesini eğitim betiğinde giriş olarak kullanmak için, yerel csv dosyası kullanmak yerine modülünü argparse kullanarak eğitim betiğinde veri kümesi için bir giriş bağımsız değişkeni --data-csv tanımlarsınız.

import argparse
import pandas as pd

parser = argparse.ArgumentParser()
parser.add_argument("--data-csv", dest='data_csv', type=str)

args = parser.parse_args()

df = pd.read_csv(args.data_csv)

Betiği çalıştırmak ve modeli giriş olarak bir veri kümesiyle eğitmek için, işi göndermek için kullanılan YAML dosyasında kayıtlı bir veri kümesine başvurursunuz:

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: 
  local_path: src
command: >-
  python main.py
  --data-csv ${{inputs.dataset}}
inputs:
  dataset: azureml:customer-churn-data:1
  mode: download 
environment: azureml:basic-env-scikit:1
compute: azureml:testdev-vm
experiment_name: customer-churn
description: Train a classification model on a sample customer dataset.

Bu örnekte, Azure Machine Learning çalışma alanınızdan customer-churn-data veri kümesinin 1. sürümünü alır, testdev-vm işlem örneğinin dosya sistemine indirir ve veri kümesiyle main.py betiğini giriş bağımsız değişkeni olarak çalıştırır.

komutunu kullanarak işi gönderdikten sonra çalıştırmayı az ml job create --file job.yml Azure Machine Learning Studio'da görüntüleyebilirsiniz. Ayrıntılar sekmesinde, giriş veri kümeleri denemeyi çalıştırmak için kullanılan verileri gösterir.

Farklı girişlere sahip birden çok modeli eğitmeniz gerektiğinde, veri ve model parametreleri için giriş bağımsız değişkenlerini kullanırken çalışmanızı kolayca izleyebilirsiniz. CLI (v2) ile model eğitmeye ilişkin belgelerde girişler ve çıkışlar hakkında daha fazla bilgi edinin.