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

Registr služby Azure Machine Learning umožňuje spolupracovat napříč pracovními prostory v rámci vaší organizace. Pomocí registrů můžete sdílet modely, komponenty, prostředí a data. Sdílení dat s registry je v současné době ve verzi 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 se poskytuje 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ář, který řeší sdílení dat pomocí registru služby Azure Machine Learning

Možná budete chtít mít data sdílená mezi několika týmy, projekty nebo pracovní prostory v centrálním umístění. Taková data nemají citlivé řízení přístupu a dají se v organizaci široce používat.

Příklady:

  • Tým chce sdílet veřejnou datovou sadu, která je předzpracovaná 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 napříč 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ý asset z pracovního prostoru do registru. Tento datový prostředek se pak dá použít ve více pracovních prostorech.

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žaduje jemně odstupňované řízení přístupu. V registru nemůžete vytvořit datový asset, který chcete sdílet s malou podmnožinou uživatelů nebo pracovních prostorů, zatímco je registr přístupný mnoha dalším uživatelům v organizaci.

  • Sdílení dat, která jsou k dispozici v existujícím úložišti, která se nesmí kopírovat, jsou příliš velká nebo příliš nákladná na zkopí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 ji bylo možné replikovat.

Typy datových prostředků podporované registrem služby Azure Machine Learning

Tip

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

Můžete vytvořit tři typy datových prostředků:

Typ Rozhraní API verze 2 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žky: Odkaz na jednu složku uri_folder Do Pandas/Sparku musíte načíst nebo zapsat adresář souborů parquet/CSV. Hluboké učení s obrázky, textem, zvukem a videosoubory umístěnými v adresáři
Tabulka: Odkaz 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 musíte zadat parametr cesty , který odkazuje na umístění dat. V současné době jsou jedinými podporovanými cestami umístění v 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 se jedná o výpočetní instanci Služby Azure Machine Learning, jedná se o "místní" jednotku 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 registrů a datových konceptů služby Azure Machine Learning ve službě Azure Machine Learning

  • Registr služby Azure Machine Learning pro 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 je podle pokynů v článku Rychlý start: Vytvoření prostředků pracovního prostoru .

    Důležité

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

  • Prostředí a komponenta vytvořená v č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.

    • Příklady také předpokládají, ž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. Následující parametry nahraďte 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 zjistíte, jaké jsou az configure -l vaše aktuální výchozí hodnoty.

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

Příklady kódu v tomto článku jsou založené na ukázce nyc_taxi_data_regression v úložišti examples. Pokud chcete tyto soubory použít ve vývojovém prostředí, pomocí následujících příkazů naklonujte úložiště 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 v místním klonu úložiště příkladů.

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

Vytvoření připojení k sadě 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 k 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 dále 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 s příkazem --workspace-name vytvoří data v pracovním prostoru, zatímco spuštění příkazu s --registry-name vytvoří data v registru.

Zdroj dat se nachází v úložišti příkladů , které jste naklonovali dříve. V místním 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 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í už v registru existují, můžete buď upravit version pole v data-registry.yml nástroji, nebo zadat jinou verzi v 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í proměnnou $version ve vašem prostředí, nahraďte $version hodnotu náhodným číslem.

name Uložte a version dat 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 --name odpovídajícím způsobem parametry a --version .

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 Sdílení modelů, komponent a prostředí . Prostředí a komponenta se používají v trénovací úloze v další části.

Tip

Místo prostředí a komponenty z registru můžete použít prostředí a komponenty 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 v pracovním prostoru místní. 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 poběží v pracovním prostoru s využitím trénovacích dat, která nejsou v konkrétním pracovním prostoru. Data jsou v registru, který je možné použít s libovolným 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 se nacházíte v adresáři cli/jobs/pipelines-with-components/nyc_taxi_data_regression . component Upravte oddíl v oddílu train_jobsingle-job-pipeline.yml souboru tak, aby odkazovat na trénovací komponentu, a path v oddílu training_data odkazovat na datový asset vytvořený v předchozích částech. Následující příklad ukazuje, jak single-job-pipeline.yml vypadá po úpravách. <registry_name> Nahraďte názvem 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: 

Upozornění

  • 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 podporované registrem, ve kterém jste data vytvořili.
  • Ověřte, že pracovní prostor obsahuje 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 a --resource-group , az ml job create aby fungovaly.

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ý asset z pracovního prostoru do registru.

Nejprve vytvořte datový asset v pracovním prostoru. Ujistěte se, že jste v adresáři cli/assets/data . Položka 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 adresáři cli/assets/data/sample-data . Obsahem souboru je local-folder.yml následující YAML:

$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ý asset vytvořený v pracovním prostoru je možné sdílet s registrem. Z registru ho můžete použít ve více pracovních prostorech. Všimněte si, že ve funkci sdílení předáváme --share_with_name parametr a --share_with_version . Tyto parametry jsou volitelné, a pokud je nepředáte, budou se data sdílet 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, se kterým se budou data sdílet.

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