Python için Azure Machine Learning SDK v1 nedir?

Önemli

Bu makale, geçerli SDK olmayan Azure Machine Learning SDK v1 hakkındadır. Geçerli SDK sürümü, Azure Machine Learning Python SDK v2sürümüdür. SDK sürümleri arasındaki farklar hakkında bilgi için bkz. v2'ye yükseltme.

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

SDK'nın önemli alanları şunlardır:

  • Makine öğrenmesi denemelerinde kullanılan veri kümelerinizin yaşam döngüsünü keşfedin, hazırlayın ve yönetin.
  • Makine öğrenmesi denemelerinizi izlemek, günlüğe kaydetmek ve düzenlemek için bulut kaynaklarını yönetin.
  • Modelleri yerel olarak veya GPU hızlandırmalı model eğitimi de dahil olmak üzere bulut kaynaklarını kullanarak eğitin.
  • Yapılandırma parametrelerini ve eğitim verilerini kabul eden otomatik makine öğrenmesini kullanın. Tahminleri çalıştırmak için en iyi modeli bulmak için algoritmalar ve hiper parametre ayarları aracılığıyla otomatik olarak yinelenir.
  • Eğitilen modellerinizi herhangi bir uygulamada kullanılabilecek RESTful hizmetlerine dönüştürmek için web hizmetlerini dağıtın.

Kullanmaya başlama hakkında adım adım izlenecek yol içinöğreticisini deneyin.

Aşağıdaki bölümler, SDK'daki en önemli sınıflardan bazılarına genel bakış ve bunları kullanmaya yönelik yaygın tasarım desenleridir. SDK'yı almak içinyükleme kılavuzuna bakın.

Kararlı ve deneysel

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

Özellik/yetenek durumu Açıklama
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ştirme

Bu özellikler, yeni geliştirilen özellikler & üretim kullanımı için hazır veya tam olarak test edilemeyebilir güncelleştirmelerdir. Ö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, önizlemeolan ö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, deneysel özellikleri yalnızca özelliklerin ve güncelleştirmelerin erken sürümlerini denemek isteyen ve hataların ve hataların raporlanmasında yer almak isteyen ileri düzey kullanıcılara öneririz.

Deneysel özellikler, SDK başvurusundaki bir not bölümüyle etiketlenir ve Azure Machine Learning belgeleriboyunca (ö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 kullandığınız temel bir kaynaktır. Azure aboneliğinizi ve kaynak grubunuzu kolayca tüketilen 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.

sınıfını içeri aktarın ve aşağıdaki kodu kullanarak yeni bir çalışma alanı oluşturun. Çalışma alanı için kullanmak istediğiniz daha önce var olan bir Azure kaynak grubunuz varsa create_resource_groupFalse olarak ayarlayın. Bazı işlevler Azure kimlik doğrulaması kimlik bilgilerini isteyebilir.

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

İlk olarak bir yapılandırma JSON dosyasına yazarak aynı çalışma alanını birden çok ortamda kullanın. Bu, aboneliğinizi, kaynağınızı 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 var olan bir ç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')

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

Deney

Ad Alanı: azureml.core.experiment.Experiment

Experiment sınıfı, denemelerden oluşan bir koleksiyonu temsil eden başka bir temel bulut kaynağıdır (tek tek model çalıştırmaları). Aşağıdaki kod, Workspace içinden ada göre bir Experiment nesnesi getirir veya ad yoksa yeni bir Experiment nesnesi oluşturur.

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

Workspaceiçindeki tüm Experiment nesnelerinin listesini almak için aşağıdaki kodu çalıştırın.

list_experiments = Experiment.list(ws)

Experiment 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)

Deneme denemesi yürütmenin iki yolu vardır. Jupyter not defterinde etkileşimli denemeler ediyorsanız start_logging işlevini kullanın. Standart bir Python ortamından deneme gönderirken submit işlevini kullanın. her iki işlev de bir Run nesnesi döndürür. experiment değişkeni, aşağıdaki kod örneklerinde Experiment nesnesini temsil eder.

Koşmak

Ad Alanı: azureml.core.run.Run

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

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

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

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

Experimenttüm Run nesnelerinin listesini almak için statik list işlevini kullanı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 çıktısı şunları içeren bir sözlüktür:

  • Çalıştırma Kimliği
  • Durum
  • Başlangıç ve bitiş saati
  • İşlem hedefi (yerel ve bulut)
  • Çalıştırmada kullanılan bağımlılıklar ve sürümler
  • Eğitime özgü veriler (model türüne bağlı olarak değişir)

Çalıştırmaları yapılandırma ve izleme hakkında daha fazla örnek için bkz. nasıl yapılır.

Model

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 geliştirme ortamları ile buluttaki Workspace nesnesi arasında aktarmanıza yardımcı olur.

Modellerinizi Azure bulutunda, çalışma alanınızda depolamak ve sürüme eklemek için model kaydını kullanabilirsiniz. Kayıtlı modeller ad ve sürüme göre tanımlanır. Mevcut bir modelle aynı ada sahip bir modeli her kaydettiğinizde, kayıt defteri sürümü 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-learnile basit bir yerel sınıflandırma modeli oluşturma, modeli Workspacekaydetme ve modeli buluttan indirme işlemi gösterilmektedir.

Müşteri değişim sıklığına göre yaşlarına göre tahminde bulunurken clfbasit bir sınıflandırıcı oluşturun. Ardından modeli aynı dizindeki bir .pkl dosyasına döküm edin.

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ı birden çok kez kaydetmek yeni bir 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ğinden modellerinizi kolayca yönetebilir, indirebilir ve düzenleyebilirsiniz. Workspacebir model (örneğin, başka bir ortamda) nesnesi almak için sınıf oluşturucuyu kullanın ve model adını ve isteğe bağlı parametreleri belirtin. Ardından bulut klasörü yapısı da dahil olmak üzere modeli indirmek için download işlevini kullanın.

from azureml.core.model import Model
import os

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

modeli Workspacekaldırmak için delete işlevini kullanın.

model.delete()

Kayıtlı bir modeliniz olduktan sonra, bunu web hizmeti olarak dağıtmak basit bir işlemdir. İlk olarakbir görüntü oluşturup kaydetmeniz . Bu adım, Web hizmeti isteği ve yanıt biçimlerini tanımlamak için bir betikle birlikte Python ortamını ve bağımlılıklarını yapılandırmaktadır. Görüntü oluşturduktan sonra, işlem hedefi için CPU çekirdeklerini ve bellek parametrelerini ayarlayan bir dağıtım yapılandırma derlemeniz . Ardından 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şturmaya ve yönetmeye yönelik soyut üst sınıftır. İşlem hedefi, makine öğrenmesi modellerinizi eğitebileceğiniz çeşitli kaynakları temsil eder. İşlem hedefi yerel bir makine veya Azure Machine Learning İşlem, Azure HDInsight veya uzak sanal makine gibi bir bulut kaynağı olabilir.

Model eğitimi için güçlü sanal makinelerden yararlanmak ve kalıcı işlem hedefleri veya geçici çalışma zamanı tarafından çağrılan hedefler ayarlamak için işlem hedeflerini kullanın. İşlem hedeflerini ayarlama ve yönetme hakkında kapsamlı bir kılavuz için bkz. nasıl yapılır.

Aşağıdaki kodda AmlCompute (ComputeTargetalt sınıfı) hedefi ayarlamaya yönelik basit bir örnek gösterilmektedir. Bu hedef, Workspace nesnenizde bir çalışma zamanı uzak işlem kaynağı oluşturur. Bir iş gönderildiğinde kaynak otomatik olarak ölçeklendirilir. Çalıştırma tamamlandığında otomatik olarak silinir.

Basit scikit-learn değişim sıklığı modelini yeniden kullanın ve geçerli dizinde train.pykendi dosyasına oluşturun. Dosyanın sonunda outputsadlı yeni bir dizin oluşturun. Bu adım, eğitilen modelinizi seri hale joblib.dump() 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 bir RunConfiguration nesnesi örneği oluşturup türü ve boyutu ayarlayarak işlem hedefini oluşturacaksınız. 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 ve boyutlarının listesini 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 numpykullanıyor. Bağımlılıkların sürümlerini de belirtebilirsiniz. ortamı compute_configayarlamak için dependencies nesnesini kullanı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. İşlem hedefi yapılandırmasını eklemek ve train.pyeğitim betiğine yol/dosya belirtmek için ScriptRunConfig sınıfını kullanın. submit() işlevinin config parametresini belirterek denemeyi gönderin. Ortam başlatılırken ve model eğitilirken zaman uyumsuz çalıştırma çıktısını görmek için sonuçta elde edilen çalıştırmada wait_for_completion çağırın.

Uyarı

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

  • ", $, ;ve \ karakterleri, bash komutlarını ayırmak için ayrılmış karakterler olarak kabul edildiği için arka uç tarafından kaçış karakteri olarak kabul edilir.
  • (, ), %, !, ^, <, >, &ve | karakterleri, Windows'ta yerel çalıştırmalar için kaçıştır.
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 tamamlandıktan sonra eğitilen model dosyası churn-model.pkl çalışma alanınızda kullanılabilir.

Çevre

Ad Alanı: azureml.core.environment

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

bir Environment nesnesi kullanarak:

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

Aşağıdaki kod, sdk'dan Environment sınıfını içeri aktarır 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. CondaDependency sınıfını kullanarak her paket bağımlılığını ortamın PythonSectionekleyin.

Aşağıdaki örnek ortama ekler. numpy1.17.0 sürümünü ekler. Ayrıca pillow paketini myenvortamına ekler. Örnek sırasıyla add_conda_package() yöntemini ve add_pip_package() yöntemini kullanır.

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 hedefive 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şmediği sürece tam kurulum süresi yalnızca bir kez uygulanır.

Aşağıdaki örnekte, sarmalayıcı nesnesi olarak ScriptRunConfig nerede kullanacağınız gösterilmektedir.

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 Modeli dağıtma bölümüne bakın.

İşlem Hattı, 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ı, Python betiğini çağıran bir adım kadar basit olabilir. İşlem hatları şunlara yönelik işlevleri içerir:

  • İçeri aktarma, doğrulama ve temizleme, gübreleme ve dönüştürme, normalleştirme ve hazırlama dahil olmak üzere veri hazırlama
  • Bağımsız değişkenleri, dosya yollarını ve günlüğe kaydetme/raporlama yapılandırmalarını parametreleştirme de dahil olmak üzere eğitim yapılandırması
  • Belirli veri alt kümelerini, farklı donanım işlem kaynaklarını, dağıtılmış işlemeyi ve ilerleme durumunu izlemeyi belirtmeyi içerebilen verimli ve tekrarlanabilir şekilde eğitim ve doğrulama
  • Sürüm oluşturma, ölçeklendirme, sağlama ve erişim denetimi dahil olmak üzere dağıtım
  • Herhangi bir HTTP kitaplığından yeniden çalıştırmak için bir işlem hattını REST uç noktasına yayımlama

PythonScriptStep, işlem hedefinde Python Betiği çalıştırmaya yönelik temel, yerleşik bir adımdır. Bir betik adı ve betik için bağımsız değişkenler, 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. train.py betiği örneği için öğretici 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 bir otomatik 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şturmaya yönelik kapsamlı bir örnek içingelişmiş öğreticisini 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ı bu çalışma alanında bulunan bir işlem hedefiyle ilişkilendirilir. Daha fazla bilgi için, çalışma alanlarıyla ilgili bu makalesine veyaişlem hedeflerine ilişkin bu açıklamaya bakın.

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

  1. Çalışma alanı, işlem ve depolama alanı belirtme
  2. Kullanarak giriş ve çıkış verilerinizi yapılandırma
    1. Veri Kümesi mevcut azure veri depolarını kullanılabilir hale getirir
    2. Yazılan tablo verilerini kapsülleyen pipelinedataset
    3. PipelineData, 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ılır
  3. Bir veya daha fazla işlem hattı adımı tanımlama
  4. Çalışma alanınızı ve adımlarınızı kullanarak işlem hattı örneği oluşturma
  5. İşlem hattını gönderdiğiniz bir deneme oluşturma
  6. Deneme sonuçlarını izleme

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

Azure Machine Learning İşlem Hatları ve özellikle diğer işlem hattı türlerinden farklı oldukları hakkında daha fazla bilgi içinbu makalesine bakın.

AutoMLConfig

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

Otomatik makine öğrenmesi eğitimi için parametreleri 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 yineler. Ardından seçtiğiniz doğruluk ölçümüne göre en uygun modeli bulur. Yapılandırma şunları belirtmek için izin verir:

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

Not

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

Otomatik makine öğrenmesi denemelerini ayarlamaya ilişkin ayrıntılı kılavuzlar ve örnekler için öğreticisi ve nasıl yapılırbakın.

Aşağıdaki kod, sınıflandırma modeli için otomatik makine öğrenmesi yapılandırma nesnesi oluşturmayı ve deneme gönderirken kullanmayı gösterir.

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
                            )

Deneme 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 çıktı, tamamlandıktan sonra her yineleme için eğitim doğruluğunu gösterir. Çalıştırma tamamlandıktan sonra bir AutoMLRun nesnesi (Run sınıfını genişletir) döndürülür. bir 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ğıtımı

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, modelleriniz için web hizmetleri oluşturmaya ve dağıtmaya yönelik soyut ü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ırkonusuna bakın.

Modelinizi 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. Dağıtımınız için daha önce ContainerImage sınıfını kullandıysanız ortamlarla benzer bir iş akışı gerçekleştirmek için DockerSection sınıfına bakın.

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

Aşağıdaki örnekte, myenvortamını kullanarak bir eğitim çalıştırmasını tamamladığınız ve bu modeli Azure Container Instances'a 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 test ve hızlı dağıtımlar için en iyi 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ı.

Dataset

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çindeki verileri keşfetmeye ve yönetmeye yönelik temel bir kaynaktır. Özet istatistiklerle verilerinizi keşfedebilir ve sürüm oluşturma ve yeniden üretilebilirlik özelliklerini almak için Veri Kümesini AML çalışma alanınıza kaydedebilirsiniz. Veri kümeleri eğitim sırasında modeller tarafından kolayca tüketilir. Ayrıntılı kullanım örnekleri içinnasıl yapılır kılavuzuna bakın.

  • TabularDataset, bir dosya veya dosya listesi ayrıştırılarak oluşturulan tablo biçimindeki verileri temsil eder.
  • FileDataset veri depolarındaki veya genel URL'lerdeki tek veya birden çok dosyaya başvurur.

Aşağıdaki örnekte, bir veri deposunda tek bir yola işaret eden bir TabularDataset'in nasıl oluşturulacağı gösterilmektedir.

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 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 aşağıdaki sonraki adımları deneyin: