Aracılığıyla paylaş


Python için Azure Machine Learning SDK'sı nedir?

Veri bilimciler ve yapay zeka geliştiricileri, Azure Machine Learning hizmetiyle makine öğrenmesi iş akışları oluşturmak ve çalıştırmak için Python için Azure Machine Learning SDK'sını kullanır. Jupyter Notebooks, Visual Studio Code veya sık kullandığınız Python IDE dahil olmak üzere herhangi bir Python ortamında hizmetle etkileşim kurabilirsiniz.

SDK'nın başlıca alanları şunlardır:

  • Makine öğrenmesi denemelerinde kullanılan veri kümelerinizi keşfetme, hazırlama ve bunların yaşam döngüsünü yönetme.
  • Makine öğrenmesi denemelerinizi izlemek, günlüğe kaydetmek ve düzenlemek için bulut kaynaklarını yönetme.
  • Modelleri yerel olarak veya GPU hızlandırmalı model eğitimi gibi bulut kaynaklarını kullanarak eğitme.
  • Yapılandırma parametrelerini ve eğitim verilerini kabul eden otomatik makine öğrenmesini kullanın. Tahminleri çalıştırmaya yönelik en iyi modeli bulmak için algoritmaları ve hiper parametre ayarlarını otomatik olarak yineler.
  • Eğitilen modellerinizi herhangi bir uygulamada kullanılabilecek RESTful hizmetlerine dönüştürmek için web hizmetlerini dağıtma.

Kullanmaya nasıl başlayacağınızı gösteren adım adım yönergeler için öğreticiyi deneyin.

Aşağıdaki bölümlerde SDK'daki en önemli sınıflardan bazılarına genel bakış bilgileri ve bu sınıfları kullanmak için yaygın tasarım desenleri sağlanır. SDK'yı almak için yükleme kılavuzuna bakın.

Kararlı ve deneysel karşılaştırması

Python için Azure Machine Learning SDK'sı aynı SDK'da hem kararlı hem de deneysel özellikler sağlar.

Özellik/yetenek durumu Description
Kararlı özellikler Üretime hazır

Bu özellikler çoğu kullanım örneği ve üretim ortamı için önerilir. Bunlar daha az sıklıkta ve deneysel özelliklerle güncelleştirilir.
Deneysel özellikler Gelişimsel

Bu özellikler, üretim kullanımı için hazır veya tam olarak test edilmeyebilir güncelleştirmeler & yeni geliştirilen özelliklerdir. Özellikler genellikle işlevsel olsa da bazı hataya neden olan değişiklikler içerebilir. Deneysel özellikler SDK'nın hataya neden olan hatalarını çözmek için kullanılır ve yalnızca test süresi boyunca güncelleştirmeleri alır. Deneysel özellikler, önizleme aşamasında olan özellikler olarak da adlandırılır.

Adından da belirtildiği gibi deneysel (önizleme) özellikler deneme amaçlıdır ve hatasız veya kararlı olarak kabul edilmez. Bu nedenle, yalnızca özelliklerin ve güncelleştirmelerin erken sürümlerini denemek isteyen ve hataların ve aksaklıkların raporlanmasında yer almayı planlayan ileri düzey kullanıcılara deneysel özellikleri öneririz.

Deneysel özellikler, SDK başvurusundaki bir not bölümüyle etiketlenir ve Azure Machine Learning belgelerinde(önizleme) gibi metinlerle gösterilir.

Çalışma alanı

Ad Alanı: azureml.core.workspace.Workspace

Workspace sınıfı bulutta makine öğrenmesi modellerini denemek, eğitmek ve dağıtmak için kullanabileceğiniz temel kaynaklardan biridir. Azure aboneliğinizi ve kaynak grubunuzu kolayca kullanılan bir nesneye bağlar.

Mevcut örnekleri (Depolama, Key Vault, App-Insights ve Azure Container Registry-ACR) yeniden kullanmak ve özel uç nokta yapılandırması ve işlem hedefi gibi ek ayarları değiştirmek için Çalışma Alanı oluşturma yönteminin tüm parametrelerini görüntüleyin.

Aşağıdaki kodu kullanarak sınıfı dışarı aktarın ve yeni bir çalışma alanı oluşturun. Önceden mevcut olan ve çalışma alanı için kullanmak istediğiniz bir Azure kaynak grubunuz varsa create_resource_group değerini False olarak ayarlayın. Bazı işlevlerde Azure kimlik doğrulaması kimlik bilgileri istenebilir.

from azureml.core import Workspace
ws = Workspace.create(name='myworkspace',
                      subscription_id='<azure-subscription-id>',
                      resource_group='myresourcegroup',
                      create_resource_group=True,
                      location='eastus2'
                     )

Çalışma alanını önce bir yapılandırma JSON dosyasına yazarak birden çok ortamda aynı çalışma alanını kullanın. Bu abonelik, kaynak ve çalışma alanı adı verilerinizi kaydeder.

ws.write_config(path="./file-path", file_name="ws_config.json")

Yapılandırma dosyasını okuyarak çalışma alanınızı yükleyin.

from azureml.core import Workspace
ws_other_environment = Workspace.from_config(path="./file-path/ws_config.json")

Alternatif olarak, yapılandırma dosyalarını kullanmadan mevcut çalışma alanını yüklemek için statik get() yöntemini kullanın.

from azureml.core import Workspace
ws = Workspace.get(name="myworkspace", subscription_id='<azure-subscription-id>', resource_group='myresourcegroup')

Aşağıdaki kod örneklerinde ws değişkeni bir Workspace nesnesini temsil eder.

Deneme

Ad Alanı: azureml.core.experiment.Experiment

Experiment sınıfı, deneme koleksiyonunu (tek tek model çalıştırmaları) temsil eden bir diğer temel bulut kaynağıdır. Aşağıdaki kod Workspace öğesinin içinden adıyla Experiment nesnesini getirir veya ad yoksa yeni bir Experiment nesnesi oluşturur.

from azureml.core.experiment import Experiment
experiment = Experiment(workspace=ws, name='test-experiment')

Aşağıdaki kodu çalıştırarak Workspace içinde yer alan tüm Experiment nesnelerinin listesini alın.

list_experiments = Experiment.list(ws)

Experiment içinden Run nesnelerinin (denemeler) listesini almak için get_runs işlevini kullanın. Aşağıdaki kod çalıştırmaları alır ve her çalıştırma kimliğini yazdırır.

list_runs = experiment.get_runs()
for run in list_runs:
    print(run.id)

Denemeyi yürütmenin iki yolu vardır. Jupyter notebook'ta etkileşimli deneme yapıyorsanız start_logging işlevini kullanın. Standart bir Python ortamından deneme gönderiyorsanız submit işlevini kullanın. Her iki işlev de Run nesnesi döndürür. Aşağıdaki kod örneklerinde experiment değişkeni bir Experiment nesnesini temsil eder.

Çalıştır

Ad Alanı: azureml.core.run.Run

Çalıştırma, bir denemenin tek bir yürütmesini temsil eder. Run denemenin zaman uyumsuz yürütmesini izlemek, denemenin çıkışını depolamak, sonuçları analiz etmek ve oluşturulan yapıtlara erişmek için kullandığınız nesnedir. Ölçümleri ve yapıtları Çalıştırma Geçmişi'nde günlüğe kaydetmek için Run nesnesini deneme kodunuzun içinde kullanırsınız. İşlevsellik şunları içerir:

  • Ölçümleri ve verileri depolama ve alma.
  • Geçmiş çalıştırmaları kolayca arayabilmek için etiketleri ve alt hiyerarşiyi kullanma.
  • Depolanmış model dosyalarını dağıtım için kaydetme.
  • Çalıştırmanın özelliklerini depolama, değiştirme ve alma.

Experiment nesnesini bir çalıştırma yapılandırması nesnesiyle göndererek Run nesnesi oluşturun. Çalıştırmalarınıza özel kategoriler ve etiketler eklemek için tags parametresini kullanın. Bunları daha sonra Experiment nesnesinden kolayca bulabilir ve alabilirsiniz.

tags = {"prod": "phase-1-model-tests"}
run = experiment.submit(config=your_config_object, tags=tags)

Statik list işlevini kullanarak Experiment içinden tümRun nesnelerinin listesini alın. Daha önce oluşturduğunuz etikete göre filtrelemek için tags parametresini belirtin.

from azureml.core.run import Run
filtered_list_runs = Run.list(experiment, tags=tags)

Çalıştırmanın ayrıntılı çıkışını almak için get_details işlevini kullanın.

run_details = run.get_details()

Bu işlevin çıkışı şunları içeren bir sözlüktür:

  • Çalıştırma kimliği
  • Durum
  • Başlangıç ve bitiş zamanı
  • İşlem hedefi (yerel - bulut)
  • Çalıştırmada kullanılan bağımlılıklar ve sürümler
  • Eğitime özgü veriler (model türüne göre farklılık gösterir)

Çalıştırmaları yapılandırma ve izlemeyi gösteren diğer örnekler için nasıl yapılır makalesine bakın.

Modelleme

Ad Alanı: azureml.core.model.Model

Model sınıfı makine öğrenmesi modellerinin bulut gösterimleriyle çalışmak için kullanılır. Yöntemler, modelleri yerel dağıtım ortamlarıyla buluttaki Workspace nesnesi arasında aktarmanıza yardımcı olur.

Azure bulutundaki modellerinizi çalışma alanınızda depolamak ve bunların sürümlerini oluşturmak için model kaydını kullanabilirsiniz. Kayıtlı modeller ad ve sürümle tanımlanır. Modeli var olan bir adla her kaydettiğinizde, kayıt defteri sürümü bir artırır. Azure Machine Learning yalnızca Azure Machine Learning modellerini değil Python 3 aracılığıyla yüklenebilen tüm modelleri destekler.

Aşağıdaki örnekte scikit-learn ile basit bir yerel sınıflandırma modeli oluşturma, modeli Workspace nesnesine kaydetme ve buluttan indirme işlemlerini gösterir.

Yaşlarına göre müşteri erimesini tahmin etmek için basit bir sınıflandırıcı (clf) oluşturun. Ardından aynı dizinde .pkl dosyasına modelin dökümünü alın.

from sklearn import svm
import joblib
import numpy as np

# customer ages
X_train = np.array([50, 17, 35, 23, 28, 40, 31, 29, 19, 62])
X_train = X_train.reshape(-1, 1)
# churn y/n
y_train = ["yes", "no", "no", "no", "yes", "yes", "yes", "no", "no", "yes"]

clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(X_train, y_train)

joblib.dump(value=clf, filename="churn-model.pkl")

Modeli çalışma alanınıza kaydetmek için register işlevini kullanın. Yerel model yolunu ve model adını belirtin. Aynı adın birden çok kez kaydedilmesi yeni sürüm oluşturur.

from azureml.core.model import Model

model = Model.register(workspace=ws, model_path="churn-model.pkl", model_name="churn-model-test")

Artık model çalışma alanınıza kaydedildiğine göre, modellerinizi kolayca yönetebilir, indirebilir ve düzenleyebilirsiniz. Model nesnesini (örneğin başka bir ortamdaki) Workspace nesnesinden almak için sınıf oluşturucusunu kullanın ve model adıyla isteğe bağlı parametreleri belirtin. Ardından download işlevini kullanarak bulut klasörü yapısıyla birlikte modeli indirin.

from azureml.core.model import Model
import os

model = Model(workspace=ws, name="churn-model-test")
model.download(target_dir=os.getcwd())

Modeli Workspace nesnesinden kaldırmak için delete işlevini kullanın.

model.delete()

Kayıtlı bir modeliniz olduktan sonra bu modeli web hizmeti olarak dağıtmak sorunsuz bir işlemdir. İlk olarak bir görüntü oluşturur ve kaydedersiniz. Bu adım Python ortamını ve bağımlılıklarını yapılandırır; ayrıca web hizmeti isteği ve yanıt biçimlerini tanımlamak için bir betik vardır. Görüntüyü oluşturduktan sonra işlem hedefi için CPU çekirdeklerini ve bellek parametrelerini ayarlayan bir dağıtım yapılandırması oluşturursunuz. Sonra da görüntünüzü eklersiniz.

ComputeTarget, RunConfiguration ve ScriptRunConfig

Ad Alanı: azureml.core.compute.ComputeTarget
Ad Alanı: azureml.core.runconfig.RunConfiguration
Ad Alanı: azureml.core.script_run_config.ScriptRunConfig

ComputeTarget sınıfı işlem hedeflerini oluşturmak ve yönetmek için soyut bir üst sınıftır. İşlem hedefi, makine öğrenmesi modellerinizi eğitebileceğiniz çeşitli kaynakları temsil eder. İşlem hedefi bir yerel makine olabileceği gibi Azure Machine Learning İşlem, Azure HDInsight veya uzak sanal makine gibi bir bulut kaynağı da olabilir.

Model eğitiminde güçlü sanal makinelerden yararlanmak için işlem hedeflerini kullanın ve kalıcı işlem hedefleri veya çalışma zamanında çağrılan geçici hedefler ayarlayın. İşlem hedeflerini ayarlamaya ve yönetmeye yönelik kapsamlı bir kılavuz için nasıl yapılır makalesine bakın.

Aşağıdaki kodda bir AmlCompute (ComputeTarget sınıfının alt sınıfı) hedefi oluşturmaya yönelik basit bir örnek gösterilir. Bu hedef Workspace nesnenizde bir çalışma zamanı uzak işlem kaynağı oluşturur. İş gönderildiğinde kaynak otomatik olarak ölçeklendirilir. Çalıştırma bittiğinde de otomatik olarak silinir.

Basit scikit-learn erime modelini yeniden kullanın ve bunu geçerli dizinde kendi dosyası (train.py) içinde oluşturun. Dosyanın sonunda outputs adlı yeni bir dizin oluşturun. Bu adım joblib.dump() tarafından serileştirilen eğitilmiş modelinizi depolamak için bulutta (çalışma alanınız) bir dizin oluşturur.

# train.py

from sklearn import svm
import numpy as np
import joblib
import os

# customer ages
X_train = np.array([50, 17, 35, 23, 28, 40, 31, 29, 19, 62])
X_train = X_train.reshape(-1, 1)
# churn y/n
y_train = ["yes", "no", "no", "no", "yes", "yes", "yes", "no", "no", "yes"]

clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(X_train, y_train)

os.makedirs("outputs", exist_ok=True)
joblib.dump(value=clf, filename="outputs/churn-model.pkl")

Ardından RunConfiguration nesnesinin örneğini oluşturarak ve tür ile boyutu ayarlayarak işlem hedefini oluşturursunuz. Bu örnekte en küçük kaynak boyutu (1 CPU çekirdeği, 3,5 GB bellek) kullanılır. list_vms değişkeni desteklenen sanal makinelerin listesini ve onların boyutlarını içerir.

from azureml.core.runconfig import RunConfiguration
from azureml.core.compute import AmlCompute
list_vms = AmlCompute.supported_vmsizes(workspace=ws)

compute_config = RunConfiguration()
compute_config.target = "amlcompute"
compute_config.amlcompute.vm_size = "STANDARD_D1_V2"

CondaDependencies sınıfını kullanarak uzak işlem kaynağının Python ortamı için bağımlılıkları oluşturun. train.py dosyası, ortamda yüklenmesi gereken scikit-learn ve numpy kullanır. Ayrıca bağımlılıkların sürümlerini de belirtebilirsiniz. dependencies nesnesini kullanarak compute_config içinde ortamı ayarlayın.

from azureml.core.conda_dependencies import CondaDependencies

dependencies = CondaDependencies()
dependencies.add_pip_package("scikit-learn")
dependencies.add_pip_package("numpy==1.15.4")
compute_config.environment.python.conda_dependencies = dependencies

Artık denemeyi göndermeye hazırsınız. ScriptRunConfig sınıfını kullanarak işlem hedefi yapılandırmasını ekleyin ve train.py eğitim betiğinin yolunu/dosyasını belirtin. submit() işlevinin config parametresini belirterek denemeyi gönderin. Ortam başlatıldığında ve model eğitildiğinde zaman uyumsuz çalıştırma çıkışını görmek için sonuç çalıştırmasında wait_for_completion çağrısı yapın.

Uyarı

Parametrelerde ScriptRunConfig kullanılan belirli karakterlerle ilgili sınırlamalar şunlardır:

  • "Bash $komutlarını ayırmak için ayrılmış karakterler olarak kabul edildiklerinde , , ;ve \ karakterleri arka uç tarafından kaçış olarak kabul edilir.
  • Windows'da (yerel çalıştırmalar için , !^)%<, >, &ve | karakterleri kaçış olarak kaydedilir.
from azureml.core.experiment import Experiment
from azureml.core import ScriptRunConfig

script_run_config = ScriptRunConfig(source_directory=os.getcwd(), script="train.py", run_config=compute_config)
experiment = Experiment(workspace=ws, name="compute_target_test")
run = experiment.submit(config=script_run_config)
run.wait_for_completion(show_output=True)

Çalıştırma bittikten sonra eğitilen model dosyası churn-model.pkl çalışma alanınızda kullanılabilir durumda olur.

Ortam

Ad Alanı: azureml.core.environment

Azure Machine Learning ortamları, eğitim ve puanlama betiklerinizin çevresinde Python paketlerini, ortam değişkenlerini ve yazılım ayarlarını belirtir. Python'a ek olarak PySpark, Docker ve R'yi ortamlar için de yapılandırabilirsiniz. Ortamlar dahili olarak, işlem hedefinde eğitim ve puanlama işlemlerini çalıştırmak için kullanılan Docker görüntüleriyle sonuçlanabilir. Ortamlar, Çeşitli işlem hedefleri ve işlem türleri arasında yeniden üretilebilir, denetlenebilir ve taşınabilir makine öğrenmesi iş akışlarını etkinleştiren Machine Learning çalışma alanınızdaki yönetilen ve sürümlenmiş varlıklardır.

Aşağıdakiler için bir Environment nesne kullanabilirsiniz:

  • Eğitim betiğinizi geliştirin.
  • Büyük ölçekte model eğitimi için Azure Machine Learning İşlem'de aynı ortamı yeniden kullanma.
  • Modelinizi belirli bir işlem türüne bağlı kalmadan aynı ortamla dağıtın.

Aşağıdaki kod, sınıfı SDK'dan içeri aktarır Environment ve ortam nesnesinin örneğini oluşturur.

from azureml.core.environment import Environment
Environment(name="myenv")

Conda, pip veya özel tekerlek dosyalarını kullanarak bir ortama paket ekleyin. Her paket bağımlılığını ortamın CondaDependencyPythonSectionöğesine eklemek için sınıfını kullanarak belirtin.

Aşağıdaki örnek ortama ekler. 1.17.0 sürümünü numpyekler. Ayrıca paketini ortamına myenveklerpillow. Örnek sırasıyla yöntemini ve add_pip_package() yöntemini kullanıradd_conda_package().

from azureml.core.environment import Environment
from azureml.core.conda_dependencies import CondaDependencies

myenv = Environment(name="myenv")
conda_dep = CondaDependencies()

# Installs numpy version 1.17.0 conda package
conda_dep.add_conda_package("numpy==1.17.0")

# Installs pillow package
conda_dep.add_pip_package("pillow")

# Adds dependencies to PythonSection of myenv
myenv.python.conda_dependencies=conda_dep

Eğitim çalıştırması göndermek için ortamınızı, işlem hedefinizi ve eğitim Python betiğinizi bir çalıştırma yapılandırmasında birleştirmeniz gerekir. Bu yapılandırma, çalıştırmaları göndermek için kullanılan bir sarmalayıcı nesnesidir.

Eğitim çalıştırması gönderdiğinizde, yeni bir ortamın oluşturulması birkaç dakika sürebilir. Süre, gerekli bağımlılıkların boyutuna bağlıdır. Ortamlar hizmet tarafından önbelleğe alınır. Bu nedenle, ortam tanımı değişmeden kaldığı sürece, tam kurulum süresini yalnızca bir kez kullanırsınız.

Aşağıdaki örnek, sarmalayıcı nesneniz olarak kullanacağınız ScriptRunConfig yeri gösterir.

from azureml.core import ScriptRunConfig, Experiment
from azureml.core.environment import Environment

exp = Experiment(name="myexp", workspace = ws)
# Instantiate environment
myenv = Environment(name="myenv")

# Add training script to run config
runconfig = ScriptRunConfig(source_directory=".", script="train.py")

# Attach compute target to run config
runconfig.run_config.target = "local"

# Attach environment to run config
runconfig.run_config.environment = myenv

# Submit run 
run = exp.submit(runconfig)

Çalıştırmayı göndermeden önce çalıştırma yapılandırmanızda bir ortam belirtmezseniz, sizin için varsayılan bir ortam oluşturulur.

Bir web hizmetini dağıtmak için ortamları kullanmak için Model dağıtma bölümüne bakın.

Pipeline, PythonScriptStep

Ad Alanı: azureml.pipeline.core.pipeline.Pipeline
Ad Alanı: azureml.pipeline.steps.python_script_step.PythonScriptStep

Azure Machine Learning işlem hattı, eksiksiz bir makine öğrenmesi görevinin otomatik iş akışıdır. Alt görevler işlem hattı içinde bir dizi adım olarak kapsüllenir. Azure Machine Learning işlem hattı bir Python betiği çağıran tek adım kadar basit olabilir. İşlem hatları şunlara yönelik işlevselliği içerir:

  • İçeri aktarma, doğrulama ve temizleme, ham verileri kullanışlı hale getirme ve dönüştürme, normalleştirme ve hazırlamayı içeren veri hazırlığı
  • Bağımsız değişkenleri, dosya yollarını ve günlük / raporlama yapılandırmalarını parametreleştirmeyi içeren eğitim yapılandırması
  • Belirli veri kümelerini belirtmeyi, farklı donanım işlem kaynaklarını, dağıtılmış işlemeyi ve ilerleme durumu izlemeyi içerebilen verimli ve tekrarlanabilir şekilde eğitme ve doğrulama
  • Sürüm oluşturma, ölçeklendirme, sağlama ve erişim denetimini içeren dağıtım
  • Herhangi bir HTTP kitaplığından yeniden çalıştırmak için işlem hattını bir REST uç noktasında yayımlama

PythonScriptStep, işlem kaynağında Python Betiği çalıştırmaya yönelik temel, yerleşik bir adımdır. Betik adını ve betiğin bağımsız değişkenleri, işlem hedefi, girişler ve çıkışlar gibi diğer isteğe bağlı parametreleri alır. Aşağıdaki kod basit bir PythonScriptStep örneğidir. Bir train.py betiği örneği için öğreticinin alt bölümüne bakın.

from azureml.pipeline.steps import PythonScriptStep

train_step = PythonScriptStep(
    script_name="train.py",
    arguments=["--input", blob_input_data, "--output", output_data1],
    inputs=[blob_input_data],
    outputs=[output_data1],
    compute_target=compute_target,
    source_directory=project_folder
)

En az bir adım oluşturulduktan sonra adımlar birbirine bağlanabilir ve basit, otomatik bir işlem hattı olarak yayımlanabilir.

from azureml.pipeline.core import Pipeline

pipeline = Pipeline(workspace=ws, steps=[train_step])
pipeline_run = experiment.submit(pipeline)

İşlem hattı iş akışı oluşturmayı gösteren kapsamlı bir örnek için gelişmiş öğreticiyi izleyin.

İşlem hatlarını oluşturma ve kullanma deseni

Azure Machine Learning işlem hattı bir Azure Machine Learning çalışma alanıyla ilişkilendirilir ve işlem hattı adımı söz konusu çalışma alanında bulunan bir işlem hedefiyle ilişkilendirilir. Daha fazla bilgi için çalışma alanları hakkındaki bu makaleye veya işlem hedeflerinin bu açıklamasına bakın.

İşlem hattı adımları için yaygın bir desen:

  1. Çalışma alanı, işlem ve depolamayı belirtin
  2. Şunları kullanarak giriş ve çıkış verilerini yapılandırın
    1. Mevcut azure veri depolarını kullanıma sunan veri kümesi
    2. Yazılan tablo verilerini kapsülleyen PipelineDataset
    3. Bir adım tarafından yazılan ve başka bir adım tarafından kullanılması amaçlanan ara dosya veya dizin verileri için kullanılan PipelineData
  3. Bir veya birden çok işlem hattı adımı tanımlayın
  4. Çalışma alanınızı ve adımlarınızı kullanan bir işlem hattı örneği oluşturun
  5. İşlem hattını göndereceğiniz bir deneme oluşturun
  6. Deneme sonuçlarını izleyin

Bu not defteri bu desenin iyi bir örneğidir. iş

Azure Machine Learning İşlem Hatları ve özellikle de bunların diğer işlem hattı türlerinden farkı hakkında daha fazla bilgi için bu makaleye bakın.

AutoMLConfig

Ad Alanı: azureml.train.automl.automlconfig.AutoMLConfig

Otomatik makine öğrenmesi eğitiminin parametrelerini yapılandırmak için AutoMLConfig sınıfını kullanın. Otomatik makine öğrenmesi, makine öğrenmesi algoritmalarının ve hiper parametre ayarlarının birçok bileşimini kullanarak yinelemeler yapar. Ardından seçtiğiniz doğruluk ölçümü temelinde en uygun modeli bulur. Yapılandırma şunların belirtilmesine olanak tanır:

  • Görev türü (sınıflandırma, regresyon, tahmin)
  • Algoritma yineleme sayısı ve yineleme başına maksimum süre
  • İyileştirilecek doğruluk ölçümü
  • Blok listesine/izin verilenler listesine algoritmalar
  • Çapraz doğrulama sayısı
  • İşlem hedefleri
  • Eğitim verileri

Not

Otomatik makine öğrenmesini kullanmak için yüklemenizde fazladan automl kullanın.

Otomatik makine öğrenmesi denemelerini ayarlamaya yönelik ayrıntılı kılavuzlar ve örnekler için öğeticiye ve nasıl yapılır makalesine bakın.

Aşağıdaki kodda bir sınıflandırma modeli için otomatik makine öğrenmesi yapılandırma nesnesini oluşturma ve denemeyi gönderdiğiniz sırada bu nesneyi kullanma işlemleri gösterilir.

from azureml.train.automl import AutoMLConfig

automl_config = AutoMLConfig(task="classification",
                             X=your_training_features,
                             y=your_training_labels,
                             iterations=30,
                             iteration_timeout_minutes=5,
                             primary_metric="AUC_weighted",
                             n_cross_validations=5
                            )

Denemeyi göndermek için automl_config nesnesini kullanın.

from azureml.core.experiment import Experiment

experiment = Experiment(ws, "automl_test_experiment")
run = experiment.submit(config=automl_config, show_output=True)

Denemeyi gönderdikten sonra, her yineleme bittikçe eğitimin doğruluğu çıkışta gösterilir. Çalıştırma bittiğinde AutoMLRun nesnesi (Run sınıfını genişleten nesne) döndürülür. Model nesnesi döndürmek için get_output() işlevini kullanarak en uygun modeli alın.

best_model = run.get_output()
y_predict = best_model.predict(X_test)

Model dağıtma

Ad Alanı: azureml.core.model.InferenceConfig
Ad Alanı: azureml.core.webservice.webservice.Webservice

InferenceConfig sınıfı, modeli ve web hizmetini barındırmak için gereken ortamı açıklayan yapılandırma ayarlarına yöneliktir.

Webservice, modellerinize yönelik web hizmetlerini oluşturmak ve dağıtmak için soyut bir üst sınıftır. Model dağıtımına hazırlanma ve web hizmetlerini dağıtma hakkında ayrıntılı bir kılavuz için bu nasıl yapılır konusuna bakın.

Modelinizi bir web hizmeti olarak dağıtırken ortamları kullanabilirsiniz. Ortamlar, modelinizi hem eğitim işleminizde hem de çıkarım işleminizde aynı kitaplıkları kullanarak dağıtabileceğiniz, yeniden üretilebilir, bağlı bir iş akışı sağlar. Ortamlar dahili olarak Docker görüntüleri olarak uygulanır. Microsoft tarafından sağlanan görüntüleri veya kendi özel Docker görüntülerinizi kullanabilirsiniz. Daha önce dağıtımınız için sınıfını kullandıysanız ContainerImage ortamlarla benzer bir iş akışı gerçekleştirme sınıfına bakın DockerSection .

Bir web hizmetini dağıtmak için, dağıtım nesnenizde deploy()ortamı, çıkarım işlemini, puanlama betiğini ve kayıtlı modeli birleştirin.

Aşağıdaki örnekte, ortamını myenvkullanarak bir eğitim çalıştırmasını tamamladığınız ve bu modeli Azure Container Instances dağıtmak istediğiniz varsayılır.

from azureml.core.model import InferenceConfig, Model
from azureml.core.webservice import AciWebservice, Webservice

# Register the model to deploy
model = run.register_model(model_name = "mymodel", model_path = "outputs/model.pkl")

# Combine scoring script & environment in Inference configuration
inference_config = InferenceConfig(entry_script="score.py",
                                   environment=myenv)

# Set deployment configuration
deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1,
                                                       memory_gb = 1)

# Define the model, inference, & deployment configuration and web service name and location to deploy
service = Model.deploy(workspace = ws,
                       name = "my_web_service",
                       models = [model],
                       inference_config = inference_config,
                       deployment_config = deployment_config)

Bu örnek küçük ölçekli testlere ve hızlı dağıtımlara en uygun olan Azure Container Instances web hizmetini oluşturur. Modelinizi üretim ölçeğinde bir web hizmeti olarak dağıtmak için Azure Kubernetes Service'i (AKS) kullanın. Daha fazla bilgi için bkz. AksCompute sınıfı.

Veri kümesi

Ad Alanı: azureml.core.dataset.Dataset
Ad Alanı: azureml.data.file_dataset.FileDataset
Ad Alanı: azureml.data.tabular_dataset.TabularDataset

Dataset sınıfı Azure Machine Learning içinde verileri incelemek ve yönetmek için temel bir kaynaktır. Özet istatistiklerle verilerinizi inceleyebilir, sürüm oluşturma ve yeniden üretebilme özelliklerini edinmek için Veri Kümesini AML çalışma alanınıza kaydedebilirsiniz. Veri kümeleri eğitim sırasında modeller tarafından kolayca kullanılır. Ayrıntılı kullanım örnekleri için nasıl yapılır kılavuzuna bakın.

  • TabularDataset , bir dosyayı veya dosya listesini ayrıştırarak oluşturulan tablo biçimindeki verileri temsil eder.
  • FileDataset veri depolarındaki veya genel URL'lerden gelen bir veya birden çok dosyaya başvurur.

Aşağıdaki örnekte veri deposundaki tek bir yola işaret eden bir TabularDataset'in nasıl oluşturulduğu gösterilir.

from azureml.core import Dataset

dataset = Dataset.Tabular.from_delimited_files(path = [(datastore, 'train-dataset/tabular/iris.csv')])
dataset.take(3).to_pandas_dataframe()

Aşağıdaki örnekte birden çok dosya URL'sine başvuran bir FileDataset url'nin nasıl oluşturulacağı gösterilmektedir.

from azureml.core.dataset import Dataset

url_paths = [
            'http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz',
            'http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz',
            'http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz',
            'http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz'
            ]
dataset = Dataset.File.from_files(path=url_paths)

Sonraki adımlar

Python için Azure Machine Learning SDK'sını kullanmayı öğrenmek için bu sonraki adımları deneyin:

  • Python'da model oluşturma, eğitme ve dağıtma işlemlerini öğrenmek için öğreticiyi izleyin.

  • Sol taraftaki içindekiler tablosunu kullanarak bu sitedeki başvuru belgelerinde sınıfları ve modülleri arayın.