Kayıt defterleriyle çalışma alanları arasında veri paylaşma (önizleme)

Azure Machine Learning kayıt defteri, kuruluşunuzdaki çalışma alanları arasında işbirliği yapmanızı sağlar. Kayıt defterlerini kullanarak modelleri, bileşenleri, ortamları ve verileri paylaşabilirsiniz. Kayıt defterleriyle veri paylaşımı şu anda bir önizleme özelliğidir. Bu makalede şunları öğreneceksiniz:

  • Kayıt defterinde bir veri varlığı oluşturun.
  • Var olan bir veri varlığını çalışma alanından kayıt defterine paylaşma
  • Kayıt defterinden veri varlığını bir çalışma alanında model eğitim işine giriş olarak kullanın.

Önemli

Bu özellik şu anda genel önizlemededir. Bu önizleme sürümü hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için bu sürümü önermeyiz. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir.

Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Azure Machine Learning kayıt defteri kullanılarak veri paylaşımıyla ele alınan temel senaryo

Verilerin merkezi bir konumda birden çok ekip, proje veya çalışma alanında paylaşılmasını isteyebilirsiniz. Bu tür veriler hassas erişim denetimlerine sahip değildir ve kuruluşta yaygın olarak kullanılabilir.

Örneklere şunlar dahildir:

  • Ekip, denemelerde önceden işlenmiş ve kullanıma hazır bir genel veri kümesini paylaşmak istiyor.
  • Kuruluşunuz dış satıcıdan bir proje için belirli bir veri kümesi aldı ve bunu bir proje üzerinde çalışan tüm ekiplerin kullanımına açmak istiyor.
  • Ekip, veri varlıklarını farklı bölgelerdeki çalışma alanlarında paylaşmak istiyor.

Bu senaryolarda, kayıt defterinde bir veri varlığı oluşturabilir veya var olan bir veri varlığını çalışma alanından kayıt defterine paylaşabilirsiniz. Bu veri varlığı daha sonra birden çok çalışma alanında kullanılabilir.

Azure Machine Learning kayıt defteri kullanılarak veri paylaşımıyla ele alınmayan senaryolar

  • Ayrıntılı erişim denetimi gerektiren hassas verileri paylaşma. Kayıt defterine kuruluştaki diğer birçok kullanıcı tarafından erişilirken, kayıt defterinde kullanıcıların/çalışma alanlarının küçük bir alt kümesiyle paylaşmak üzere bir veri varlığı oluşturamazsınız.

  • Mevcut depolama alanında bulunan ve kopyalanmaması gereken veya kopyalanamayacak kadar büyük ya da çok pahalı olan verileri paylaşma. Bir kayıt defterinde veri varlıkları oluşturulduğunda, çoğaltılabilmesi için kayıt defteri depolama alanına bir veri kopyası gönderilir.

Azure Machine Learning kayıt defteri tarafından desteklenen veri varlığı türleri

İpucu

Senaryonuz için , uri_folderveya mltable kullanmak uri_fileisteyip istemediğinize karar verirken aşağıdaki kurallı senaryolara göz atın.

Üç veri varlığı türü oluşturabilirsiniz:

Tür V2 API Kurallı senaryo
Dosya: Tek bir dosyaya başvurma uri_file Tek bir dosyayı okuma/yazma- dosyanın herhangi bir biçimi olabilir.
Klasör: Tek bir klasöre başvurma uri_folder Parquet/CSV dosyalarının bir dizinini Pandas/Spark'a okumanız/yazmanız gerekir. Dizinde bulunan resimler, metin, ses ve video dosyalarıyla derin öğrenme.
Tablo: Veri tablosuna başvurma mltable Sık sık yapılan değişikliklere tabi olan karmaşık bir şemanız var veya büyük tablosal verilerin bir alt kümesine ihtiyacınız var.

Azure Machine Learning kayıt defteri tarafından desteklenen yollar

Bir veri varlığı oluşturduğunuzda, veri konumuna işaret eden bir yol parametresi belirtmeniz gerekir. Şu anda desteklenen tek yollar yerel bilgisayarınızdaki konumlardır.

İpucu

"Yerel", kullandığınız bilgisayarın yerel depolama alanı anlamına gelir. Örneğin, dizüstü bilgisayar kullanıyorsanız yerel sürücü. Azure Machine Learning işlem örneğiyse, işlem örneğinin "yerel" sürücüsüdür.

Önkoşullar

Bu makaledeki adımları takip etmeden önce aşağıdaki önkoşullara sahip olduğunuzdan emin olun:

  • Azure Machine Learning kayıt defterleri ve Azure Machine Learning'deki Veri kavramları hakkında bilgi.

  • Verileri paylaşmak için bir Azure Machine Learning kayıt defteri. Kayıt defteri oluşturmak için bkz. Kayıt defteri oluşturmayı öğrenme.

  • Azure Machine Learning çalışma alanı. Yoksa, oluşturmak için Hızlı Başlangıç: Çalışma alanı kaynakları oluşturma makalesindeki adımları kullanın.

    Önemli

    Çalışma alanınızı oluşturduğunuz Azure bölgesi (konum), Azure Machine Learning kayıt defteri için desteklenen bölgeler listesinde olmalıdır.

  • Modelleri, bileşenleri ve ortamları paylaşma makalesinden oluşturulan ortam ve bileşen.

  • Azure CLI ve ml uzantısı veya Azure Machine Learning Python SDK v2:

    Azure CLI ve uzantıyı yüklemek için bkz. CLI'yi yükleme, ayarlama ve kullanma (v2).

    Önemli

    • Bu makaledeki CLI örneklerinde Bash (veya uyumlu) kabuğu kullandığınız varsayılır. Örneğin, linux sisteminden veya Linux için Windows Alt Sistemi.

    • Örneklerde ayrıca aboneliğiniz, çalışma alanınız, kaynak grubunuz veya konumunuz için parametreleri belirtmeniz gerekmeyecek şekilde Azure CLI için varsayılanları yapılandırdığınız varsayılır. Varsayılan ayarları ayarlamak için aşağıdaki komutları kullanın. Aşağıdaki parametreleri yapılandırmanızın değerleriyle değiştirin:

      • <subscription> öğesini Azure abonelik kimliğinizle değiştirin.
      • değerini Azure Machine Learning çalışma alanı adınızla değiştirin <workspace> .
      • değerini, çalışma alanınızı içeren Azure kaynak grubuyla değiştirin <resource-group> .
      • değerini, çalışma alanınızı içeren Azure bölgesiyle değiştirin <location> .
      az account set --subscription <subscription>
      az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
      

      komutunu kullanarak az configure -l geçerli varsayılanlarınızın ne olduğunu görebilirsiniz.

Örnekleri kopyalama deposu

Bu makaledeki kod örnekleri örnek deposundaki örneği temel alırnyc_taxi_data_regression. Bu dosyaları geliştirme ortamınızda kullanmak için aşağıdaki komutları kullanarak depoyu kopyalayın ve dizinleri örnek olarak değiştirin:

git clone https://github.com/Azure/azureml-examples
cd azureml-examples

CLI örneği için, örnek deposunun yerel kopyasında dizinleri cli/jobs/pipelines-with-components/nyc_taxi_data_regression olarak değiştirin.

cd cli/jobs/pipelines-with-components/nyc_taxi_data_regression

SDK bağlantısı oluşturma

İpucu

Bu adım yalnızca Python SDK'sı kullanılırken gereklidir.

Hem Azure Machine Learning çalışma alanına hem de kayıt defterine bir istemci bağlantısı oluşturun. Aşağıdaki örnekte yer tutucu değerlerini yapılandırmanıza uygun değerlerle değiştirin <...> . Örneğin, Azure abonelik kimliğiniz, çalışma alanı adınız, kayıt defteri adınız vb.:

ml_client_workspace = MLClient( credential=credential,
    subscription_id = "<workspace-subscription>",
    resource_group_name = "<workspace-resource-group",
    workspace_name = "<workspace-name>")
print(ml_client_workspace)

ml_client_registry = MLClient(credential=credential,
                        registry_name="<REGISTRY_NAME>",
                        registry_location="<REGISTRY_REGION>")
print(ml_client_registry)

Kayıt defterinde veri oluşturma

Bu adımda oluşturulan veri varlığı, bu makalenin ilerleyen bölümlerinde eğitim işi gönderilirken kullanılır.

İpucu

Çalışma alanında veya kayıt defterinde veri oluşturmak için aynı CLI komutu az ml data create kullanılabilir. komutu komutuyla --workspace-name çalıştırılırken çalışma alanında veriler oluşturulurken komutu ile --registry-name çalıştırılırken kayıt defterindeki veriler oluşturulur.

Veri kaynağı, daha önce kopyaladığınız örnek deposunda bulunur. Yerel kopyanın altında şu dizin yoluna gidin: cli/jobs/pipelines-with-components/nyc_taxi_data_regression. Bu dizinde adlı data-registry.yml bir YAML dosyası oluşturun ve dosyanın içeriği olarak aşağıdaki YAML'yi kullanın:

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: transformed-nyc-taxt-data
description: Transformed NYC Taxi data created from local folder.
version: 1
type: uri_folder
path: data_transformed/

path Değer, kayıt defteri kullanılarak paylaşılan verileri içeren alt dizini gösterirdata_transformed.

Kayıt defterinde veri oluşturmak için kullanın az ml data create. Aşağıdaki örneklerde değerini kayıt defterinizin adıyla değiştirin <registry-name> .

az ml data create --file data-registry.yml --registry-name <registry-name>

Bu ada ve sürüme sahip verilerin kayıt defterinde zaten var olduğunu belirten bir hata alırsanız, içindeki alanını data-registry.yml düzenleyebilir version veya CLI'da sürüm değerini data-registry.ymlgeçersiz kılan farklı bir sürüm belirtebilirsiniz.

# use shell epoch time as the version
version=$(date +%s)
az ml data create --file data-registry.yml --registry-name <registry-name> --set version=$version

İpucu

version=$(date +%s) Komut, ortamınızdaki değişkeni ayarlamazsa $version değerini rastgele bir sayıyla değiştirin$version.

komutunun name çıkışındaki verileri ve version değerlerini kaydedin ve varlığın az ml data create ayrıntılarını görüntülemek için komutla birlikte az ml data show kullanın.

az ml data show --name transformed-nyc-taxt-data --version 1 --registry-name <registry-name>

İpucu

Farklı bir veri adı veya sürümü kullandıysanız ve --version parametrelerini uygun şekilde değiştirin--name.

Kayıt defterindeki tüm veri varlıklarını listelemek için de kullanabilirsiniz az ml data list --registry-name <registry-name> .

Kayıt defterinde ortam ve bileşen oluşturma

Kayıt defterinde bir ortam ve bileşen oluşturmak için Modelleri, bileşenleri ve ortamları paylaşma makalesindeki adımları kullanın. Ortam ve bileşen, sonraki bölümdeki eğitim işinde kullanılır.

İpucu

Kayıt defterinden bir ortam ve bileşen kullanmak yerine çalışma alanından bir ortam ve bileşen kullanabilirsiniz.

Kayıt defterinden bileşen kullanarak bir çalışma alanında işlem hattı işi çalıştırma

Bir bileşeni ve kayıt defterindeki verileri kullanan bir işlem hattı işi çalıştırılırken işlem kaynakları çalışma alanında yereldir. Aşağıdaki örnekte iş, modeli eğitmek için Scikit Learn eğitim bileşenini ve önceki bölümlerde oluşturulan veri varlığını kullanır.

Not

Önemli olan, bu işlem hattının belirli bir çalışma alanında olmayan eğitim verilerini kullanarak bir çalışma alanında çalıştırılacak olmasıdır. Veriler, kuruluşunuzdaki herhangi bir çalışma alanıyla kullanılabilecek bir kayıt defterindedir. Bu eğitim işini, eğitim verilerini söz konusu çalışma alanında kullanılabilir hale getirme konusunda endişelenmeden erişiminiz olan herhangi bir çalışma alanında çalıştırabilirsiniz.

Dizininde cli/jobs/pipelines-with-components/nyc_taxi_data_regression olduğunuzu doğrulayın. componenttrain_job Eğitim bileşenine başvurmak için dosyasının single-job-pipeline.yml bölümündeki bölümünü ve path önceki bölümlerde oluşturulan veri varlığına başvurmak için bölümü düzenleyintraining_data. Aşağıdaki örnekte, düzenlemeden sonra nasıl single-job-pipeline.yml göründüğü gösterilmektedir. <registry_name> değerini kayıt defterinizin adıyla değiştirin:

$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: nyc_taxi_data_regression_single_job
description: Single job pipeline to train regression model based on nyc taxi dataset

jobs:
  train_job:
    type: command
    component: azureml://registries/<registry-name>/component/train_linear_regression_model/versions/1
    compute: azureml:cpu-cluster
    inputs:
      training_data: 
        type: uri_folder
        path: azureml://registries/<registry-name>/data/transformed-nyc-taxt-data/versions/1
    outputs:
      model_output: 
        type: mlflow_model
      test_data: 

Uyarı

  • İşlem hattı işini çalıştırmadan önce, işi çalıştıracağınız çalışma alanının verileri oluşturduğunuz kayıt defteri tarafından desteklenen bir Azure bölgesinde olduğunu onaylayın.
  • Çalışma alanında adı cpu-cluster olan bir işlem kümesi olduğunu onaylayın veya altında işleminizin adıyla alanı jobs.train_job.compute düzenleyincompute.

komutuyla az ml job create işlem hattı işini çalıştırın.

az ml job create --file single-job-pipeline.yml 

İpucu

Önkoşullar bölümünde açıklandığı gibi varsayılan çalışma alanını ve kaynak grubunu yapılandırmadıysanız, çalışması için az ml job create ve --resource-group parametrelerini belirtmeniz --workspace-name gerekir.

İşleri çalıştırma hakkında daha fazla bilgi için aşağıdaki makalelere bakın:

Çalışma alanından kayıt defterine veri paylaşma

Aşağıdaki adımlarda, çalışma alanından kayıt defterine var olan bir veri varlığının nasıl paylaşılması gösterilmektedir.

İlk olarak, çalışma alanında bir veri varlığı oluşturun. Dizininde olduğunuzdan cli/assets/data emin olun. local-folder.yml Bu dizinde bulunan, çalışma alanında bir veri varlığı oluşturmak için kullanılır. Bu dosyada belirtilen veriler dizininde cli/assets/data/sample-data kullanılabilir. Dosyanın içeriği aşağıdaki YAML'dir local-folder.yml :

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: local-folder-example-titanic
description: Dataset created from local folder.
type: uri_folder
path: sample-data/

Çalışma alanında veri varlığını oluşturmak için aşağıdaki komutu kullanın:

az ml data create -f local-folder.yml

Çalışma alanında veri varlıkları oluşturma hakkında daha fazla bilgi için bkz. Veri varlıkları oluşturma.

Çalışma alanında oluşturulan veri varlığı bir kayıt defteriyle paylaşılabilir. Kayıt defterinden, birden çok çalışma alanında kullanılabilir. share işlevinde ve --share_with_version parametresini geçirdiğimize --share_with_name dikkat edin. Bu parametreler isteğe bağlıdır ve geçirmezseniz bu veriler çalışma alanıyla aynı ad ve sürümle paylaşılır.

Aşağıdaki örnekte, bir veri varlığını paylaşmak için paylaş komutunun kullanılması gösterilmektedir. değerini, verilerin paylaşılacağı kayıt defterinin adıyla değiştirin <registry-name> .

az ml data share --name local-folder-example-titanic --version <version-in-workspace> --share-with-name <name-in-registry> --share-with-version <version-in-registry> --registry-name <registry-name>

Sonraki adımlar