Sdílení dat mezi pracovními prostory pomocí registrů (Preview)

Registr služby Azure Machine Learning umožňuje spolupracovat napříč pracovními prostory ve vaší organizaci. Pomocí registrů můžete sdílet modely, komponenty, prostředí a data. Sdílení dat s registry je aktuálně funkcí Preview. V tomto článku získáte informace o těchto tématech:

  • Vytvořte datový asset v registru.
  • Sdílení existujícího datového assetu z pracovního prostoru do registru
  • Datový asset z registru použijte jako vstup do úlohy trénování modelu v pracovním prostoru.

Důležité

Tato funkce je v současné době ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti.

Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Klíčový scénář vyřešený sdílením dat pomocí registru služby Azure Machine Learning

Data můžete chtít sdílet v různých týmech, projektech nebo pracovních prostorech v centrálním umístění. Taková data nemají citlivé řízení přístupu a dají se v organizaci používat široce.

Příkladem může být:

  • Tým chce sdílet veřejnou datovou sadu, která je předem zpracována a připravená k použití v experimentech.
  • Vaše organizace získala konkrétní datovou sadu pro projekt od externího dodavatele a chce ji zpřístupnit všem týmům pracujícím na projektu.
  • Tým chce sdílet datové prostředky mezi pracovními prostory v různých oblastech.

V těchto scénářích můžete vytvořit datový asset v registru nebo sdílet existující datový prostředek z pracovního prostoru do registru. Tento datový prostředek je pak možné použít napříč několika pracovními prostory.

Scénáře, které se neřeší sdílením dat pomocí registru Služby Azure Machine Learning

  • Sdílení citlivých dat, která vyžadují jemně odstupňované řízení přístupu Datový prostředek v registru nemůžete vytvořit, abyste ho mohli sdílet s malou podmnožinou uživatelů nebo pracovních prostorů, zatímco registr je přístupný mnoha dalšími uživateli v organizaci.

  • Sdílení dat, která jsou k dispozici v existujícím úložišti, která nesmí být zkopírována nebo je příliš velká nebo příliš náročná na kopírování. Při každém vytvoření datových prostředků v registru se do úložiště registru ingestuje kopie dat, aby bylo možné je replikovat.

Typy datových assetů podporované registrem služby Azure Machine Learning

Tip

Při rozhodování, jestli chcete použít uri_file, uri_foldernebo mltable pro váš scénář, si projděte následující kanonické scénáře.

Můžete vytvořit tři datové typy assetů:

Typ V2 API Kanonický scénář
Soubor: Odkaz na jeden soubor uri_file Čtení a zápis jednoho souboru – soubor může mít libovolný formát.
Složka: Odkaz na jednu složku uri_folder Do Pandas/Sparku musíte číst a zapisovat adresář souborů parquet/CSV. Hluboké učení s obrázky, textem, zvukem, videosoubory umístěnými v adresáři.
Tabulka: Odkazování na tabulku dat mltable Máte složité schéma, které podléhá častým změnám, nebo potřebujete podmnožinu velkých tabulkových dat.

Cesty podporované registrem služby Azure Machine Learning

Při vytváření datového assetu je nutné zadat parametr cesty , který odkazuje na umístění dat. V současné době jsou jedinými podporovanými cestami umístění na místním počítači.

Tip

"Místní" znamená místní úložiště pro počítač, který používáte. Pokud například používáte přenosný počítač, místní disk. Pokud výpočetní instance služby Azure Machine Learning, je "místní" jednotka výpočetní instance.

Požadavky

Než budete postupovat podle kroků v tomto článku, ujistěte se, že máte následující požadavky:

  • Znalost konceptů registrů a dat ve službě Azure Machine Learning

  • Registr služby Azure Machine Learning ke sdílení dat. Pokud chcete vytvořit registr, přečtěte si, jak vytvořit registr.

  • Pracovní prostor služby Azure Machine Learning. Pokud ho nemáte, vytvořte ho pomocí kroků v rychlém startu : Vytvoření článku o prostředcích pracovního prostoru.

    Důležité

    Oblast (umístění) Azure, kde vytváříte pracovní prostor, musí být v seznamu podporovaných oblastí pro registr služby Azure Machine Learning.

  • Prostředí a komponenta vytvořená z článku Jak sdílet modely, komponenty a prostředí.

  • Azure CLI a ml rozšíření nebo sada Azure Machine Learning Python SDK v2:

    Pokud chcete nainstalovat Azure CLI a rozšíření, přečtěte si téma Instalace, nastavení a použití rozhraní příkazového řádku (v2).

    Důležité

    • Příklady rozhraní příkazového řádku v tomto článku předpokládají, že používáte prostředí Bash (nebo kompatibilní). Například ze systému Linux nebo Subsystém Windows pro Linux.

    • V příkladech se také předpokládá, že jste pro Azure CLI nakonfigurovali výchozí hodnoty, abyste nemuseli zadávat parametry pro vaše předplatné, pracovní prostor, skupinu prostředků nebo umístění. Pokud chcete nastavit výchozí nastavení, použijte následující příkazy. Nahraďte následující parametry hodnotami pro vaši konfiguraci:

      • <subscription> nahraďte ID vašeho předplatného Azure.
      • Nahraďte <workspace> názvem pracovního prostoru služby Azure Machine Learning.
      • Nahraďte <resource-group> skupinou prostředků Azure, která obsahuje váš pracovní prostor.
      • Nahraďte <location> oblastí Azure, která obsahuje váš pracovní prostor.
      az account set --subscription <subscription>
      az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
      

      Pomocí příkazu můžete zjistit, jaké jsou az configure -l vaše aktuální výchozí hodnoty.

Úložiště klonování příkladů

Příklady kódu v tomto článku jsou založené na nyc_taxi_data_regression ukázce v úložišti příkladů. Pokud chcete tyto soubory použít ve vývojovém prostředí, naklonujte úložiště pomocí následujících příkazů a změňte adresáře na příklad:

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

V příkladu rozhraní příkazového řádku změňte adresáře na cli/jobs/pipelines-with-components/nyc_taxi_data_regression místní klon úložiště příkladů.

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

Vytvoření připojení sady SDK

Tip

Tento krok je potřeba jenom při použití sady Python SDK.

Vytvořte připojení klienta k pracovnímu prostoru Služby Azure Machine Learning i registru. V následujícím příkladu <...> nahraďte zástupné hodnoty hodnotami vhodnými pro vaši konfiguraci. Například ID předplatného Azure, název pracovního prostoru, název registru atd.:

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)

Vytvoření dat v registru

Datový asset vytvořený v tomto kroku se použije později v tomto článku při odesílání trénovací úlohy.

Tip

Stejný příkaz az ml data create rozhraní příkazového řádku můžete použít k vytvoření dat v pracovním prostoru nebo registru. Spuštění příkazu příkazem --workspace-name vytvoří data v pracovním prostoru, zatímco spuštění příkazu s --registry-name daty v registru.

Zdroj dat se nachází v úložišti příkladů, které jste naklonovali dříve. V rámci místního klonu přejděte na následující cestu k adresáři: cli/jobs/pipelines-with-components/nyc_taxi_data_regression. V tomto adresáři vytvořte soubor YAML s názvem data-registry.yml a jako obsah souboru použijte následující YAML:

$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/

Hodnota path odkazuje na data_transformed podadresář, která obsahuje data sdílená pomocí registru.

K vytvoření dat v registru použijte příkaz az ml data create. V následujících příkladech nahraďte <registry-name> názvem vašeho registru.

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

Pokud se zobrazí chyba, že data s tímto názvem a verzí již v registru existují, můžete pole data-registry.yml upravit version nebo zadat jinou verzi rozhraní příkazového řádku, která přepíše hodnotu verze v data-registry.yml.

# 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

Tip

version=$(date +%s) Pokud příkaz nenastaví $version proměnnou ve vašem prostředí, nahraďte $version náhodným číslem.

name Uložte data a version data z výstupu az ml data create příkazu a použijte je s příkazem az ml data show k zobrazení podrobností o prostředku.

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

Tip

Pokud jste použili jiný název nebo verzi dat, nahraďte parametry --name odpovídajícím --version způsobem.

Můžete také použít az ml data list --registry-name <registry-name> k výpisu všech datových prostředků v registru.

Vytvoření prostředí a komponenty v registru

Pokud chcete vytvořit prostředí a komponentu v registru, postupujte podle kroků v článku Jak sdílet modely, komponenty a prostředí . Prostředí a komponenta se používají v trénovací úloze v další části.

Tip

Místo použití prostředí a komponenty z registru můžete použít prostředí a komponentu z pracovního prostoru.

Spuštění úlohy kanálu v pracovním prostoru pomocí komponenty z registru

Při spuštění úlohy kanálu, která používá komponentu a data z registru, jsou výpočetní prostředky místní pro pracovní prostor. V následujícím příkladu úloha k trénování modelu používá trénovací komponentu Scikit Learn a datový asset vytvořený v předchozích částech.

Poznámka:

Klíčovým aspektem je, že tento kanál se bude spouštět v pracovním prostoru pomocí trénovacích dat, která nejsou v konkrétním pracovním prostoru. Data jsou v registru, který je možné použít s jakýmkoli pracovním prostorem ve vaší organizaci. Tuto trénovací úlohu můžete spustit v jakémkoli pracovním prostoru, ke kterému máte přístup, aniž byste se museli starat o zpřístupnění trénovacích dat v tomto pracovním prostoru.

Ověřte, že jste v adresáři cli/jobs/pipelines-with-components/nyc_taxi_data_regression . component Upravte oddíl v části single-job-pipeline.yml train_job souboru tak, aby odkazovat na trénovací komponentu a path v části training_data odkaz na datový asset vytvořený v předchozích částech. Následující příklad ukazuje, single-job-pipeline.yml jak vypadá po úpravách. <registry_name> Nahraďte názvem vašeho registru:

$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: 

Upozorňující

  • Před spuštěním úlohy kanálu ověřte, že pracovní prostor, ve kterém budete úlohu spouštět, je v oblasti Azure, která je podporována registrem, ve kterém jste data vytvořili.
  • Ověřte, že má pracovní prostor výpočetní cluster s názvem cpu-cluster nebo upravte compute pole pod jobs.train_job.compute názvem vašeho výpočetního prostředí.

Spusťte úlohu kanálu pomocí az ml job create příkazu.

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

Tip

Pokud jste nenakonfigurovali výchozí pracovní prostor a skupinu prostředků, jak je vysvětleno v části Požadavky, budete muset zadat --workspace-name parametry, --resource-group které az ml job create budou fungovat.

Další informace o spouštění úloh najdete v následujících článcích:

Sdílení dat z pracovního prostoru do registru

Následující kroky ukazují, jak sdílet existující datový prostředek z pracovního prostoru do registru.

Nejprve v pracovním prostoru vytvořte datový asset. Ujistěte se, že jste v adresáři cli/assets/data . Umístění local-folder.yml v tomto adresáři slouží k vytvoření datového assetu v pracovním prostoru. Data zadaná v tomto souboru jsou k dispozici v cli/assets/data/sample-data adresáři. Následující YAML je obsah local-folder.yml souboru:

$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/

K vytvoření datového assetu v pracovním prostoru použijte následující příkaz:

az ml data create -f local-folder.yml

Další informace o vytváření datových prostředků v pracovním prostoru najdete v tématu Vytváření datových prostředků.

Datový prostředek vytvořený v pracovním prostoru lze sdílet s registrem. Z registru je možné ho použít ve více pracovních prostorech. Všimněte si, že předáváme --share_with_name funkci share a --share_with_version parametr. Tyto parametry jsou volitelné a pokud tato data nepředáte, budou sdílena se stejným názvem a verzí jako v pracovním prostoru.

Následující příklad ukazuje použití příkazu sdílení ke sdílení datového assetu. Nahraďte <registry-name> názvem registru, do kterého budou data sdílena.

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>

Další kroky