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_folder
nebo 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 upravtecompute
pole podjobs.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>