Azure Machine Learning nasıl çalışır: Mimari ve kavramlar (v1)

ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v1Python SDK azureml v1

Bu makale, Azure Machine Learning CLI & SDK'sının ilk sürümü (v1) için geçerlidir. İkinci sürüm (v2) için bkz . Azure Machine Learning nasıl çalışır (v2).

Azure Machine Learning mimarisi ve kavramları hakkında bilgi edinin. Bu makale, bileşenleri ve makine öğrenmesi modellerini oluşturma, dağıtma ve bakım sürecinde yardımcı olmak için birlikte nasıl çalıştıklarını üst düzey bir şekilde anlamanızı sağlar.

Çalışma alanı

Makine öğrenmesi çalışma alanı, Azure Machine Learning için en üst düzey kaynaktır.

Diagram: Azure Machine Learning architecture of a workspace and its components

Çalışma alanı aşağıdakileri yapmak için merkezi bir yerdir:

Çalışma alanı, çalışma alanı tarafından kullanılan diğer Azure kaynaklarını içerir:

  • Azure Container Registry (ACR): Eğitim sırasında ve model dağıtırken kullandığınız docker kapsayıcılarını kaydeder. Maliyetleri en aza indirmek için ACR yalnızca dağıtım görüntüleri oluşturulduğunda oluşturulur.
  • Azure Depolama hesabı: Çalışma alanı için varsayılan veri deposu olarak kullanılır. Azure Machine Learning işlem örneklerinizle birlikte kullanılan Jupyter not defterleri de burada depolanır.
  • Azure Uygulaması Analizler: Modellerinizle ilgili izleme bilgilerini depolar.
  • Azure Key Vault: İşlem hedefleri tarafından kullanılan gizli dizileri ve çalışma alanının ihtiyaç duyduğu diğer hassas bilgileri depolar.

Çalışma alanını başkalarıyla paylaşabilirsiniz.

Hesaplar

İşlem hedefi, eğitim betiğinizi çalıştırmak veya hizmet dağıtımınızı barındırmak için kullandığınız herhangi bir makine veya makine kümesidir. İşlem hedefi olarak yerel makinenizi veya uzak işlem kaynağınızı kullanabilirsiniz. İşlem hedefleri ile yerel makinenizde eğitime başlayabilir ve ardından eğitim betiğinizi değiştirmeden ölçeği buluta genişletebilirsiniz.

Azure Machine Learning, makine öğrenmesi görevleri için yapılandırılmış iki tam olarak yönetilen bulut tabanlı sanal makine (VM) sağlar:

  • İşlem örneği: İşlem örneği, makine öğrenmesi için yüklenmiş birden çok araç ve ortam içeren bir VM'dir. İşlem örneğinin birincil kullanımı, geliştirme iş istasyonunuz içindir. Kurulum gerekmeyen örnek not defterlerini çalıştırmaya başlayabilirsiniz. İşlem örneği, eğitim ve çıkarım işleri için işlem hedefi olarak da kullanılabilir.

  • İşlem kümeleri: İşlem kümeleri, çok düğümlü ölçeklendirme özelliklerine sahip bir VM kümesidir. İşlem kümeleri, büyük işler ve üretim için işlem hedefleri için daha uygundur. Bir iş gönderildiğinde kümenin ölçeği otomatik olarak artırılır. Eğitim işlem hedefi olarak veya geliştirme/test dağıtımı için kullanın.

İşlem hedeflerini eğitme hakkında daha fazla bilgi için bkz . İşlem hedeflerini eğitme. Dağıtım işlem hedefleri hakkında daha fazla bilgi için bkz . Dağıtım hedefleri.

Veri kümeleri ve veri depoları

Azure Machine Learning Veri Kümeleri verilerinize erişmeyi ve bunlarla çalışmayı kolaylaştırır. Veri kümesi oluşturarak veri kaynağı konumuna ve meta verilerinin bir kopyasına başvuru oluşturursunuz. Veriler mevcut konumunda kaldığından, ek depolama maliyetine neden olmazsınız ve veri kaynaklarınızın bütünlüğünü riske atmazsınız.

Daha fazla bilgi için bkz . Azure Machine Learning Veri Kümeleri oluşturma ve kaydetme. Veri Kümelerini kullanma hakkında daha fazla örnek için örnek not defterlerine bakın.

Veri kümeleri, Azure depolama hizmetlerinize güvenli bir şekilde bağlanmak için veri depolarını kullanır. Veri depoları, kimlik doğrulama kimlik bilgilerinizi ve özgün veri kaynağınızın bütünlüğünü riske atmadan bağlantı bilgilerini depolar. Abonelik kimliğiniz ve belirteç yetkilendirmesi gibi bağlantı bilgilerini çalışma alanıyla ilişkili Key Vault'unuzda depolar, böylece betiğinizde sabit kod yazmanıza gerek kalmadan depolama alanınıza güvenli bir şekilde erişebilirsiniz.

Ortamlar

Çalışma Alanı>Ortamları

Ortam, makine öğrenmesi modelinizin eğitiminin veya puanlamasının gerçekleştiği ortamın kapsüllenmesidir. Ortam, eğitim ve puanlama betiklerinizin etrafındaki Python paketlerini, ortam değişkenlerini ve yazılım ayarlarını belirtir.

Kod örnekleri için Ortamları kullanma bölümünün "Ortamları yönetme" bölümüne bakın.

Denemeler

Çalışma Alanı>Denemeleri

Deneme, belirtilen bir betikten birçok çalıştırmanın gruplandırılmasıdır. Her zaman bir çalışma alanına aittir. Çalıştırma gönderdiğinizde bir deneme adı sağlarsınız. Çalıştırma bilgileri bu denemenin altında depolanır. Deneme gönderdiğinizde ad yoksa, otomatik olarak yeni bir deneme oluşturulur.

Deneme kullanma örneği için bkz . Öğretici: İlk modelinizi eğitme.

Çalıştırmalar

Çalışma Alanı>Denemeleri Çalıştırma>

Çalıştırma, eğitim betiğinin tek bir yürütülmesidir. Bir deneme genellikle birden çok çalıştırma içerir.

Azure Machine Learning tüm çalıştırmaları kaydeder ve denemede aşağıdaki bilgileri depolar:

  • Çalıştırma hakkındaki meta veriler (zaman damgası, süre vb.)
  • Betiğiniz tarafından günlüğe kaydedilen ölçümler
  • Deneme tarafından otomatik olarak alınan veya sizin tarafınızdan açıkça karşıya yüklenen çıkış dosyaları
  • Çalıştırmadan önce betiklerinizi içeren dizinin anlık görüntüsü

Modeli eğitmek için betik gönderirken çalıştırma oluşturursunuz. Bir çalıştırmada sıfır veya daha fazla alt çalıştırma olabilir. Örneğin, üst düzey çalıştırmanın iki alt çalıştırması olabilir ve bunların her biri kendi alt çalıştırmasına sahip olabilir.

Yapılandırmaları çalıştırma

Çalışma Alanı>Denemeleri>Çalıştırma yapılandırması>

Çalıştırma yapılandırması, betiğin belirtilen işlem hedefinde nasıl çalıştırılması gerektiğini tanımlar. Betiği, üzerinde çalıştırılacak işlem hedefini ve Azure Machine Learning ortamını, dağıtılmış işe özgü yapılandırmaları ve bazı ek özellikleri belirtmek için yapılandırmayı kullanırsınız. Çalıştırmalar için yapılandırılabilir seçeneklerin tamamı hakkında daha fazla bilgi için bkz . ScriptRunConfig.

Çalıştırma yapılandırması, eğitim betiğinizi içeren dizinin içindeki bir dosyada kalıcı hale getirilebilir. Ya da bellek içi nesne olarak oluşturulabilir ve çalıştırma göndermek için kullanılabilir.

Örneğin çalıştırma yapılandırmaları, bkz . Eğitim çalıştırmasını yapılandırma.

Anlık Görüntüler

Çalışma Alanı>Denemeleri>Anlık Görüntü Çalıştırma>

Bir çalıştırma gönderdiğinizde Azure Machine Learning, komut dosyasını içeren dizini zip dosyası olarak sıkıştırır ve işlem hedefine gönderir. Zip dosyası daha sonra ayıklanır ve betik orada çalıştırılır. Azure Machine Learning, zip dosyasını çalıştırma kaydının bir parçası olarak anlık görüntü olarak da depolar. Çalışma alanına erişimi olan herkes bir çalıştırma kaydına göz atabilir ve anlık görüntüyü indirebilir.

Günlük Kaydı

Azure Machine Learning standart çalıştırma ölçümlerini sizin için otomatik olarak günlüğe kaydeder. Ancak, rastgele ölçümleri günlüğe kaydetmek için Python SDK'sını da kullanabilirsiniz.

Günlüklerinizi görüntülemenin birden çok yolu vardır: çalıştırma durumunu gerçek zamanlı olarak izleme veya tamamlandıktan sonra sonuçları görüntüleme. Daha fazla bilgi için bkz . ML çalıştırma günlüklerini izleme ve görüntüleme.

Dekont

Gereksiz dosyaların anlık görüntüye eklenmesini önlemek için dizinde bir yoksayma dosyası (.gitignore veya .amlignore) oluşturun. Dışlanacak dosyaları ve dizinleri bu dosyaya ekleyin. Bu dosyanın içinde kullanılacak söz dizimi hakkında daha fazla bilgi için bkz. söz dizimi ve desenleri..gitignore Dosya .amlignore aynı söz dizimini kullanır. Her iki dosya da varsa, .amlignore dosya kullanılır ve .gitignore dosya kullanılmaz.

Git izleme ve tümleştirme

Kaynak dizinin yerel git deposu olduğu bir eğitim çalıştırması başlattığınızda, depo hakkındaki bilgiler çalıştırma geçmişinde depolanır. Bu, betik çalıştırma yapılandırması veya ML işlem hattı kullanılarak gönderilen çalıştırmalarla çalışır. Ayrıca SDK veya Machine Learning CLI'dan gönderilen çalıştırmalar için de çalışır.

Daha fazla bilgi için bkz . Azure Machine Learning için Git tümleştirmesi.

Eğitim iş akışı

Modeli eğitmek için bir deneme çalıştırdığınızda aşağıdaki adımlar gerçekleşir. Bunlar aşağıdaki eğitim iş akışı diyagramında gösterilmiştir:

  • Azure Machine Learning, önceki bölümde kaydedilen kod anlık görüntüsünün anlık görüntü kimliğiyle çağrılır.

  • Azure Machine Learning, daha sonra Machine Learning hizmetiyle iletişim kurmak için Machine Learning İşlem/VM'ler gibi işlem hedefleri tarafından kullanılan bir çalıştırma kimliği (isteğe bağlı) ve bir Machine Learning hizmet belirteci oluşturur.

  • Eğitim işlerini çalıştırmak için yönetilen işlem hedefi (Machine Learning İşlem gibi) veya yönetilmeyen işlem hedefi (VM'ler gibi) seçebilirsiniz. Her iki senaryo için de veri akışları şunlardır:

    • Microsoft aboneliğindeki bir anahtar kasasında SSH kimlik bilgileriyle erişilen VM'ler/HDInsight. Azure Machine Learning, işlem hedefinde şu yönetim kodunu çalıştırır:
    1. Ortamı hazırlar. (Docker, VM'ler ve yerel bilgisayarlar için bir seçenektir. Docker kapsayıcılarında deneme çalıştırmanın nasıl çalıştığını anlamak için Machine Learning İşlem için aşağıdaki adımlara bakın.)
    2. Kodu indirir.
    3. Ortam değişkenlerini ve yapılandırmalarını ayarlar.
    4. Kullanıcı betiklerini (önceki bölümde bahsedilen kod anlık görüntüsü) çalıştırır.
    • Çalışma alanı tarafından yönetilen kimlik aracılığıyla erişilen Machine Learning İşlem. Machine Learning İşlem yönetilen bir işlem hedefi olduğundan (microsoft tarafından yönetilir) Microsoft aboneliğiniz altında çalışır.
    1. Gerekirse uzak Docker inşaatı başlatılır.
    2. Yönetim kodu kullanıcının Azure Dosyalar paylaşımına yazılır.
    3. Kapsayıcı bir ilk komutla başlatılır. Yani, önceki adımda açıklandığı gibi yönetim kodu.
  • Çalıştırma tamamlandıktan sonra çalıştırmaları ve ölçümleri sorgulayabilirsiniz. Aşağıdaki akış diyagramında bu adım, eğitim işlem hedefi çalıştırma ölçümlerini Azure Cosmos DB veritabanındaki depolama alanından Azure Machine Learning'e geri yazdığında gerçekleşir. İstemciler Azure Machine Learning'i çağırabilir. Machine Learning de ölçümleri Azure Cosmos DB veritabanından çeker ve istemciye geri döndürür.

Training workflow

Modeller

En basiti olan model, girişi alan ve çıkış üreten bir kod parçasıdır. Makine öğrenmesi modeli oluşturmak için algoritma seçme, veri sağlama ve hiper parametreleri ayarlama işlemleri yer alır. Eğitim, modelin eğitim sürecinde öğrendiklerini kapsülleyen, eğitilmiş bir model üreten yinelemeli bir süreçtir.

Azure Machine Learning dışında eğitilmiş bir model getirebilirsiniz. Ya da Azure Machine Learning'de bir işlem hedefine deneme çalıştırması göndererek modeli eğitebilirsiniz. Modeliniz olduktan sonra modeli çalışma alanına kaydedersiniz.

Azure Machine Learning çerçeveden bağımsızdır. Model oluşturduğunuzda Scikit-learn, XGBoost, PyTorch, TensorFlow ve Chainer gibi popüler makine öğrenmesi çerçevelerini kullanabilirsiniz.

Scikit-learn kullanarak model eğitme örneği için bkz . Öğretici: Azure Machine Learning ile görüntü sınıflandırma modelini eğitme.

Model kayıt defteri

Çalışma Alanı>Modelleri

Model kayıt defteri, Azure Machine Learning çalışma alanınızdaki tüm modelleri izlemenize olanak tanır.

Modeller ad ve sürüme göre tanımlanır. Var olan bir modelle aynı ada sahip bir modeli her kaydettiğinizde, kayıt defteri bunun yeni bir sürüm olduğunu varsayar. Sürüm artırılır ve yeni model aynı adla kaydedilir.

Modeli kaydettiğinizde, ek meta veri etiketleri sağlayabilir ve ardından modelleri ararken etiketleri kullanabilirsiniz.

Bahşiş

Kayıtlı model, modelinizi oluşturan bir veya daha fazla dosya için mantıksal bir kapsayıcıdır. Örneğin, birden çok dosyada depolanan bir modeliniz varsa, bunları Azure Machine Learning çalışma alanınıza tek bir model olarak kaydedebilirsiniz. Kayıt sonrasında kayıtlı modeli indirebilir veya dağıtabilir ve kayıtlı olan tüm dosyaları alabilirsiniz.

Etkin bir dağıtım tarafından kullanılan kayıtlı modeli silemezsiniz.

Modeli kaydetme örneği için bkz . Azure Machine Learning ile görüntü sınıflandırma modelini eğitma.

Dağıtım

Kayıtlı bir modeli hizmet uç noktası olarak dağıtırsınız. Aşağıdaki bileşenlere ihtiyacınız vardır:

  • Ortam. Bu ortam, çıkarım için modelinizi çalıştırmak için gereken bağımlılıkları kapsüller.
  • Puanlama kodu. Bu betik istekleri kabul eder, modeli kullanarak istekleri puanlar ve sonuçları döndürür.
  • Çıkarım yapılandırması. Çıkarım yapılandırması, modeli hizmet olarak çalıştırmak için gereken ortamı, giriş betiğini ve diğer bileşenleri belirtir.

Bu bileşenler hakkında daha fazla bilgi için bkz . Azure Machine Learning ile model dağıtma.

Uç Noktalar

Çalışma Alanı>Uç Noktaları

Uç nokta, modelinizin bulutta barındırılabilir bir web hizmetine örneklemesidir.

Web hizmeti uç noktası

Modeli web hizmeti olarak dağıtırken uç nokta Azure Container Instances, Azure Kubernetes Service veya FPGA'lara dağıtılabilir. Hizmeti modelinizden, betiğinizden ve ilişkili dosyalardan oluşturursunuz. Bunlar, modelin yürütme ortamını içeren bir temel kapsayıcı görüntüsüne yerleştirilir. Görüntü, web hizmetine gönderilen puanlama isteklerini alan yük dengeli bir HTTP uç noktasına sahiptir.

Web hizmetinizi izlemek için Uygulama Analizler telemetrisini veya model telemetrisini etkinleştirebilirsiniz. Telemetri verilerine yalnızca siz erişebilirsiniz. Uygulama Analizler ve depolama hesabı örneklerinizde depolanır. Otomatik ölçeklendirmeyi etkinleştirdiyseniz Azure dağıtımınızı otomatik olarak ölçeklendirir.

Aşağıdaki diyagramda, web hizmeti uç noktası olarak dağıtılan bir modelin çıkarım iş akışı gösterilmektedir:

Aşağıda ayrıntılar verilmiştir:

  • Kullanıcı, Azure Machine Learning SDK'sı gibi bir istemci kullanarak bir model kaydeder.
  • Kullanıcı model, puan dosyası ve diğer model bağımlılıklarını kullanarak bir görüntü oluşturur.
  • Docker görüntüsü oluşturulur ve Azure Container Registry'de depolanır.
  • Web hizmeti, önceki adımda oluşturulan görüntü kullanılarak işlem hedefine (Kapsayıcı Örnekleri/AKS) dağıtılır.
  • Puanlama isteği ayrıntıları, kullanıcının aboneliğindeki Uygulama Analizler depolanır.
  • Telemetri ayrıca Microsoft Azure aboneliğine de gönderiliyor.

Inference workflow

Modeli web hizmeti olarak dağıtma örneği için bkz . Öğretici: Modeli eğitme ve dağıtma.

Gerçek zamanlı uç noktalar

Tasarımcıda eğitilmiş bir model dağıttığınızda modeli gerçek zamanlı uç nokta olarak dağıtabilirsiniz. Gerçek zamanlı uç nokta genellikle REST uç noktası aracılığıyla tek bir istek alır ve gerçek zamanlı olarak bir tahmin döndürür. Bu, aynı anda birden çok değeri işleyen ve tamamlandıktan sonra sonuçları bir veri deposuna kaydeden toplu işlemenin aksinedir.

İşlem hattı uç noktaları

İşlem hattı uç noktaları, ML Pipelines'ınızı bir REST uç noktası aracılığıyla programlı olarak çağırmanıza olanak sağlar. İşlem hattı uç noktaları, işlem hattı iş akışlarınızı otomatikleştirmenizi sağlar.

İşlem hattı uç noktası, yayımlanan işlem hatlarından oluşan bir koleksiyondur. Bu mantıksal kuruluş, aynı uç noktayı kullanarak birden çok işlem hattını yönetmenize ve çağırmanıza olanak tanır. Bir işlem hattı uç noktasında yayımlanan her işlem hattı sürümü oluşturulur. Uç nokta için varsayılan bir işlem hattı seçebilir veya REST çağrısında bir sürüm belirtebilirsiniz.

Otomasyon

Azure Machine Learning CLI

Azure Machine Learning CLI v1, Azure platformu için platformlar arası bir komut satırı arabirimi olan Azure CLI'nın bir uzantısıdır. Bu uzantı, makine öğrenmesi etkinliklerinizi otomatikleştirmeye yönelik komutlar sağlar.

ML İşlem Hatları

Makine öğrenmesi aşamalarını bir araya getiren iş akışları oluşturmak ve yönetmek için makine öğrenmesi işlem hatlarını kullanırsınız. Örneğin, işlem hattı veri hazırlama, model eğitimi, model dağıtımı ve çıkarım/puanlama aşamalarını içerebilir. Her aşama, her biri çeşitli işlem hedeflerinde katılımsız olarak çalışabilen birden çok adımı kapsayabilir.

İşlem hattı adımları yeniden kullanılabilir ve bu adımların çıkışı değişmediyse önceki adımlar yeniden çalıştırılmadan çalıştırılabilir. Örneğin, veriler değişmediyse maliyetli veri hazırlama adımlarını yeniden çalıştırmadan modeli yeniden eğitebilirsiniz. İşlem hatları, veri bilim insanlarının makine öğrenmesi iş akışının ayrı alanları üzerinde çalışırken işbirliği yapmasına da olanak tanır.

İzleme ve Günlüğe Kaydetme

Azure Machine Learning aşağıdaki izleme ve günlüğe kaydetme özelliklerini sağlar:

Çalışma alanınızla etkileşim kurma

Studio

Azure Machine Learning stüdyosu, çalışma alanınızdaki tüm yapıtların web görünümünü sağlar. Veri kümelerinizin, denemelerinizin, işlem hatlarınızın, modellerinizin ve uç noktalarınızın sonuçlarını ve ayrıntılarını görüntüleyebilirsiniz. Ayrıca, stüdyoda işlem kaynaklarını ve veri depolarını yönetebilirsiniz.

Stüdyo ayrıca Azure Machine Learning'in parçası olan etkileşimli araçlara da erişebileceğiniz yerdir:

Programlama araçları

Önemli

Aşağıda (önizleme) olarak işaretlenen araçlar şu anda genel önizleme aşamasındadır. Önizleme sürümü bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

  • Python için Azure Machine Learning SDK'sı ile herhangi bir Python ortamında hizmetle etkileşim kurun.
  • Kod yazmadan iş akışı adımlarını gerçekleştirmek için Azure Machine Learning tasarımcısını kullanın.
  • Otomasyon için Azure Machine Learning CLI'sini kullanın.

Sonraki adımlar

Azure Machine Learning'i kullanmaya başlamak için bkz: