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_folder
nebo 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_job
single-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 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 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>