Azure Machine Learning ortamları nelerdir?

Azure Machine Learning ortamları, makine öğrenmesi eğitiminizin gerçekleştiği ortamın bir kapsüllemesidir. Python paketlerini ve eğitim ve puanlama betiklerinizin etrafındaki yazılım ayarlarını belirtir. Ortamlar, Machine Learning çalışma alanınızda, çeşitli işlem hedeflerinde yeniden üretilebilir, denetlenebilir ve taşınabilir makine öğrenmesi iş akışlarına olanak tanıyan 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 kullanın.
  • Modelinizi aynı ortamla dağıtın.
  • Mevcut bir modelin eğitildiği ortamı yeniden ziyaret edin.

Aşağıdaki diyagramda hem iş yapılandırmanızda (eğitim için) hem de çıkarım ve dağıtım yapılandırmanızda (web hizmeti dağıtımları için) tek Environment bir nesneyi nasıl kullanabileceğiniz gösterilmektedir.

Diagram of an environment in machine learning workflow

Ortam, işlem hedefi ve eğitim betiği birlikte iş yapılandırmasını oluşturur: eğitim işinin tam belirtimi.

Ortam türleri

Ortamlar genel olarak üç kategoriye ayrılabilir: seçilmiş, kullanıcı tarafından yönetilen ve sistem tarafından yönetilen.

Seçilen ortamlar Azure Machine Learning tarafından sağlanır ve varsayılan olarak çalışma alanınızda kullanılabilir. Olduğu gibi kullanılması amaçlanan bu paketler, çeşitli makine öğrenmesi çerçevelerini kullanmaya başlamanıza yardımcı olacak Python paketleri ve ayarları koleksiyonları içerir. Bu önceden oluşturulmuş ortamlar ayrıca daha hızlı dağıtım süresi sağlar. Seçilen ortamlar AzureML Kayıt Defteri'nde barındırılır. Tam liste için bkz . azureml kayıt defterindeki ortamlar.

Kullanıcı tarafından yönetilen ortamlarda, ortamınızı ayarlamak ve eğitim betiğinizin ihtiyaç duyduğu her paketi işlem hedefinde yüklemek sizin sorumluluğunuzdadır. Ayrıca model dağıtımı için gereken bağımlılıkları da eklediğinizden emin olun. Kullanıcı tarafından yönetilen ortam, görüntü gerçekleştirmeyi AzureML'ye devreden BYOC (Kendi Kapsayıcınızı Getirin) veya Docker Derleme Bağlamı olabilir.

Conda'nın Python ortamını sizin için yönetmesini istediğinizde sistem tarafından yönetilen ortamları kullanırsınız. Temel docker görüntüsünün üzerindeki conda belirtiminden yeni bir conda ortamı oluşturulur.

Ortamlar oluşturma ve ortamları yönetme

Azure Machine Learning Python SDK'sı, Azure Machine Learning CLI, Azure Machine Learning stüdyosu Ortamlar sayfası ve VS Code uzantısı gibi istemcilerden ortamlar oluşturabilirsiniz. Her istemci gerekirse temel görüntüyü, Dockerfile'ı ve Python katmanını özelleştirmenize olanak tanır.

Belirli kod örnekleri için Ortamları kullanma bölümünün "Ortam oluşturma" bölümüne bakın.

Ortamlar da çalışma alanınız aracılığıyla kolayca yönetilir ve bu sayede şunları yapmanızı sağlar:

  • Ortamları kaydetme.
  • Çalışma alanınızdan eğitim veya dağıtım için kullanılacak ortamları getirin.
  • Mevcut bir ortamı düzenleyerek ortamın yeni bir örneğini oluşturun.
  • Ortamlarınızda zaman içinde yapılan değişiklikleri görüntüleyip yeniden üretilebilirliği güvence altına alın.
  • Ortamlarınızdan otomatik olarak Docker görüntüleri oluşturun.

Deneme gönderdiğinizde "Anonim" ortamlar çalışma alanınıza otomatik olarak kaydedilir. Bunlar listelenmez ancak sürüme göre alınabilir.

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

Ortam oluşturma, önbelleğe alma ve yeniden kullanma

Azure Machine Learning, Docker görüntülerine ortam tanımları oluşturur. Ayrıca ortamları önbelleğe alır, böylece ortamlar sonraki eğitim işlerinde ve hizmet uç noktası dağıtımlarında yeniden kullanılabilir. Eğitim betiğini uzaktan çalıştırmak için Docker görüntüsü oluşturulması gerekir. Varsayılan olarak AzureML, çalışma alanı için ayrılmış işlem kümesi yoksa kullanılabilir çalışma alanı sunucusuz işlem kotası üzerinde görüntü derleme hedefini yönetir.

Not

AzureML Çalışma Alanı'ndaki tüm ağ kısıtlamaları, ayrılmış kullanıcı tarafından yönetilen görüntü derleme işlem kurulumu gerektirebilir. Çalışma alanı kaynaklarının güvenliğini sağlamak için lütfen adımları izleyin.

Ortam kullanarak iş gönderme

Bir ortamı kullanarak uzak işi ilk kez gönderdiğinizde veya el ile ortam örneği oluşturduğunuzda, Azure Machine Learning sağlanan belirtim için bir görüntü oluşturur. Sonuç görüntüsü, çalışma alanıyla ilişkili kapsayıcı kayıt defteri örneğinde önbelleğe alınır. Seçilmiş ortamlar AzureML Kayıt Defteri'nde zaten önbelleğe alınmış durumdadır. İş yürütmenin başlangıcında, görüntü ilgili kapsayıcı kayıt defterinden işlem hedefi tarafından alınır.

Docker görüntüleri olarak ortam oluşturma

Belirli bir ortam tanımının görüntüsü AzureML Çalışma Alanı ile ilişkili kapsayıcı kayıt defteri örneğinde zaten yoksa yeni bir görüntü oluşturulur. Sistem tarafından yönetilen ortamlar için görüntü derlemesi iki adımdan oluşur:

  1. Temel görüntü indirme ve Docker adımlarını yürütme
  2. Ortam tanımında belirtilen conda bağımlılıklarına göre conda ortamı oluşturma.

Kullanıcı tarafından yönetilen ortamlar için sağlanan docker bağlamı olduğu gibi derlenir. Bu durumda tüm Python paketlerini temel görüntünüze ekleyerek veya özel Docker adımları belirterek yüklemek sizin sorumluluğunuzdadır.

Görüntü önbelleğe alma ve yeniden kullanma

Başka bir iş için aynı ortam tanımını kullanırsanız Azure Machine Learning, Çalışma Alanınızla ilişkilendirilmiş kapsayıcı kayıt defterindeki önbelleğe alınmış görüntüyü yeniden kullanır.

Önbelleğe alınmış görüntünün ayrıntılarını görüntülemek için Azure Machine Learning stüdyosu ortamlar sayfasını denetleyin veya ortamı almak ve incelemek için kullanınMLClient.environments.

Azure Machine Learning, önbelleğe alınmış bir görüntüyü yeniden kullanıp kullanmayacağını veya yeni bir görüntü oluşturup oluşturmayacağını belirlemek için ortam tanımından bir karma değeri hesaplar ve bunu mevcut ortamların karmalarıyla karşılaştırır. Karma, bir ortam için benzersiz bir tanımlayıcı işlevi görür ve ortam tanımını temel alır:

  • Temel görüntü
  • Özel docker adımları
  • Python paketleri

Karma, ortam adından veya sürümünden etkilenmez. Ortamınızı yeniden adlandırır veya başka bir ortamla aynı ayarlara ve paketlere sahip yeni bir ortam oluşturursanız karma değeri aynı kalır. Ancak, python paketi ekleme veya kaldırma ya da paket sürümünü değiştirme gibi ortam tanımı değişiklikleri, sonuçta elde edilen karma değeri değiştirir. Bir ortamda bağımlılıkların veya kanalların sırasını değiştirmek de karmayı değiştirir ve yeni bir görüntü derlemesi gerektirir. Benzer şekilde, seçilen bir ortamda yapılan herhangi bir değişiklik, özel bir ortamın oluşturulmasına neden olur.

Not

Ortamın adını değiştirmeden seçilen bir ortama yerel değişiklik gönderemezsiniz. "AzureML-" ve "Microsoft" ön ekleri özel olarak seçilmiş ortamlar için ayrılmıştır ve ad ikisiyle de başlarsa iş gönderiminiz başarısız olur.

Ortamın hesaplanan karma değeri, Çalışma Alanı kapsayıcı kayıt defterindekilerle karşılaştırılır. Eşleşme varsa, önbelleğe alınan görüntü çekilir ve kullanılır, aksi takdirde bir görüntü derlemesi tetikler.

Aşağıdaki diyagramda üç ortam tanımı gösterilmektedir. bunlardan ikisi farklı adlara ve sürümlere ancak aynı temel görüntülere ve Python paketlerine sahiptir ve bu da aynı karma ve buna karşılık gelen önbelleğe alınmış görüntüye neden olur. Üçüncü ortamın farklı Python paketleri ve sürümleri vardır ve bu da farklı bir karma ve önbelleğe alınmış görüntüye yol açar.

Diagram of environment caching and Docker images

Çalışma alanı kapsayıcı kayıt defterinizdeki gerçek önbelleğe alınmış görüntülerin adları, sonunda görünen karmaya benzer azureml/azureml_e9607b2514b066c851012848913ba19f adlara sahiptir.

Önemli

  • Sabitlenmemiş paket bağımlılığına sahip bir ortam oluşturursanız (örneğin, ) ortam, numpyortam oluşturulduğunda kullanılabilen paket sürümünü kullanır. Eşleşen bir tanım kullanan gelecekteki tüm ortamlar özgün sürümü kullanır.

    Paketi güncelleştirmek için görüntünün yeniden derlenmesine zorlamak için bir sürüm numarası belirtin. Bunun bir örneği olarak numpy==1.18.1değiştirmek numpy olabilir. İç içe olanlar da dahil olmak üzere yeni bağımlılıklar yüklenir ve bunlar daha önce çalışan bir senaryoya son verebilir.

  • Ortam tanımınızda olduğu gibi mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04 sabitlenmemiş bir temel görüntü kullanmak, etiket her güncelleştirildiğinde görüntünün yeniden oluşturulmasına latest neden olabilir. Bu, görüntünün en son düzeltme eklerini ve sistem güncelleştirmelerini almasına yardımcı olur.

Görüntü düzeltme eki uygulama

Microsoft, bilinen güvenlik açıkları için temel görüntülere düzeltme eki uygulamaktan sorumludur. Desteklenen görüntüler için Güncelleştirmeler iki haftada bir yayınlanır ve görüntünün en son sürümünde 30 günden eski eşleşmeyen güvenlik açıkları yoktur. Düzeltme eki uygulanmış görüntüler yeni sabit bir etiketle yayınlanır ve :latest etiket, düzeltme eki uygulanan görüntünün en son sürümüne güncelleştirilir.

Yeni düzeltme eki yapılan görüntüyü kullanmak için ilişkili Azure Machine Learning varlıklarını güncelleştirmeniz gerekir. Örneğin, yönetilen bir çevrimiçi uç noktayla çalışırken, düzeltme eki uygulanmış görüntüyü kullanmak için uç noktanızı yeniden dağıtmanız gerekir.

Kendi görüntülerinizi sağlarsanız, bunları güncelleştirmek ve bunları kullanan Azure Machine Learning varlıklarını güncelleştirmek sizin sorumluluğunuzdadır.

Temel görüntüler hakkında daha fazla bilgi için aşağıdaki bağlantılara bakın:

Sonraki adımlar