Dela data mellan arbetsytor med register (förhandsversion)
Med Azure Mašinsko učenje-registret kan du samarbeta mellan arbetsytor i din organisation. Med hjälp av register kan du dela modeller, komponenter, miljöer och data. Att dela data med register är för närvarande en förhandsversionsfunktion. I den här artikeln kan du se hur du:
- Skapa en datatillgång i registret.
- Dela en befintlig datatillgång från arbetsyta till register
- Använd datatillgången från registret som indata till ett modellträningsjobb på en arbetsyta.
Viktigt!
Den här funktionen är för närvarande i allmänt tillgänglig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade.
Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Nyckelscenario som hanteras av datadelning med hjälp av Azure Mašinsko učenje-registret
Du kanske vill ha data delade mellan flera team, projekt eller arbetsytor på en central plats. Sådana data har inte känsliga åtkomstkontroller och kan användas brett i organisationen.
Exempel:
- Ett team vill dela en offentlig datauppsättning som är förbearbetad och redo att användas i experiment.
- Din organisation har skaffat en viss datauppsättning för ett projekt från en extern leverantör och vill göra den tillgänglig för alla team som arbetar med ett projekt.
- Ett team vill dela datatillgångar mellan arbetsytor i olika regioner.
I dessa scenarier kan du skapa en datatillgång i ett register eller dela en befintlig datatillgång från en arbetsyta till ett register. Den här datatillgången kan sedan användas på flera arbetsytor.
Scenarier som INTE hanteras av datadelning med hjälp av Azure Mašinsko učenje-registret
Dela känsliga data som kräver detaljerad åtkomstkontroll. Du kan inte skapa en datatillgång i ett register som ska delas med en liten delmängd användare/arbetsytor medan registret är tillgängligt för många andra användare i organisationen.
Dela data som är tillgängliga i befintlig lagring som inte får kopieras eller är för stora eller för dyra för att kopieras. När datatillgångar skapas i ett register matas en kopia av data in i registerlagringen så att den kan replikeras.
Datatillgångstyper som stöds av Azure Mašinsko učenje-registret
Dricks
Kolla in följande kanoniska scenarier när du bestämmer dig för om du vill använda uri_file
, uri_folder
eller mltable
för ditt scenario.
Du kan skapa tre typer av datatillgång:
Typ | V2 API | Kanoniskt scenario |
---|---|---|
Fil: Referera till en enskild fil | uri_file |
Läsa/skriva en enskild fil – filen kan ha valfritt format. |
Mapp: Referera till en enskild mapp | uri_folder |
Du måste läsa/skriva en katalog med parquet-/CSV-filer till Pandas/Spark. Djupinlärning med bilder, text, ljud, videofiler som finns i en katalog. |
Tabell: Referera till en datatabell | mltable |
Du har ett komplext schema som kan ändras ofta, eller så behöver du en delmängd med stora tabelldata. |
Sökvägar som stöds av Azure Mašinsko učenje-registret
När du skapar en datatillgång måste du ange en sökvägsparameter som pekar på dataplatsen. För närvarande är de enda sökvägar som stöds till platser på den lokala datorn.
Dricks
"Lokal" innebär den lokala lagringen för den dator som du använder. Om du till exempel använder en bärbar dator, den lokala enheten. Om en Azure Mašinsko učenje beräkningsinstans, den "lokala" enheten för beräkningsinstansen.
Förutsättningar
Innan du följer stegen i den här artikeln kontrollerar du att du har följande förutsättningar:
Kunskaper om Azure Mašinsko učenje-register och databegrepp i Azure Mašinsko učenje.
Ett Azure Mašinsko učenje-register för att dela data. Information om hur du skapar ett register finns i Lär dig hur du skapar ett register.
En Azure Machine Learning-arbetsyta. Om du inte har någon använder du stegen i artikeln Snabbstart: Skapa arbetsyteresurser för att skapa en.
Viktigt!
Den Azure-region (plats) där du skapar din arbetsyta måste finnas i listan över regioner som stöds för Azure Mašinsko učenje-registret.
Miljön och komponenten som skapas från artikeln Så här delar du modeller, komponenter och miljöer.
Azure CLI och
ml
tillägget eller Azure Mašinsko učenje Python SDK v2:Information om hur du installerar Azure CLI och tillägget finns i Installera, konfigurera och använda CLI (v2).
Viktigt!
CLI-exemplen i den här artikeln förutsätter att du använder Bash-gränssnittet (eller det kompatibla). Till exempel från ett Linux-system eller Windows podsistem za Linux.
Exemplen förutsätter också att du har konfigurerat standardvärden för Azure CLI så att du inte behöver ange parametrarna för din prenumeration, arbetsyta, resursgrupp eller plats. Om du vill ange standardinställningar använder du följande kommandon. Ersätt följande parametrar med värdena för konfigurationen:
- Ersätt
<subscription>
med ditt Azure-prenumerations-ID. - Ersätt
<workspace>
med namnet på din Azure Mašinsko učenje-arbetsyta. - Ersätt
<resource-group>
med den Azure-resursgrupp som innehåller din arbetsyta. - Ersätt
<location>
med Den Azure-region som innehåller din arbetsyta.
az account set --subscription <subscription> az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
Du kan se vilka dina aktuella standardvärden är med hjälp
az configure -l
av kommandot .- Ersätt
Lagringsplats för klonexempel
Kodexemplen i den här artikeln baseras på nyc_taxi_data_regression
exemplet på exempellagringsplatsen. Om du vill använda dessa filer i utvecklingsmiljön använder du följande kommandon för att klona lagringsplatsen och ändra kataloger till exemplet:
git clone https://github.com/Azure/azureml-examples
cd azureml-examples
I CLI-exemplet ändrar du kataloger till cli/jobs/pipelines-with-components/nyc_taxi_data_regression
i din lokala klon av exempellagringsplatsen.
cd cli/jobs/pipelines-with-components/nyc_taxi_data_regression
Skapa SDK-anslutning
Dricks
Det här steget behövs bara när du använder Python SDK.
Skapa en klientanslutning till både Azure Mašinsko učenje-arbetsytan och registret. I följande exempel ersätter du <...>
platshållarvärdena med de värden som är lämpliga för konfigurationen. Till exempel ditt Azure-prenumerations-ID, arbetsytenamn, registernamn osv.:
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)
Skapa data i registret
Datatillgången som skapas i det här steget används senare i den här artikeln när du skickar ett träningsjobb.
Dricks
Samma CLI-kommando az ml data create
kan användas för att skapa data i en arbetsyta eller ett register. När du kör kommandot med --workspace-name
kommandot skapas data i en arbetsyta medan kommandot med --registry-name
skapar data i registret.
Datakällan finns i exempellagringsplatsen som du klonade tidigare. Under den lokala klonen går du till följande katalogsökväg: cli/jobs/pipelines-with-components/nyc_taxi_data_regression
. I den här katalogen skapar du en YAML-fil med namnet data-registry.yml
och använder följande YAML som innehåll i filen:
$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/
Värdet path
pekar på underkatalogen data_transformed
, som innehåller de data som delas med hjälp av registret.
Om du vill skapa data i registret använder du az ml data create
. I följande exempel ersätter du <registry-name>
med namnet på registret.
az ml data create --file data-registry.yml --registry-name <registry-name>
Om du får ett felmeddelande om att data med det här namnet och versionen redan finns i registret kan du antingen redigera version
fältet i data-registry.yml
eller ange en annan version på CLI som åsidosätter versionsvärdet i 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
Dricks
version=$(date +%s)
Om kommandot inte anger variabeln $version
i din miljö ersätter $version
du med ett slumptal.
name
Spara data och version
från utdata från az ml data create
kommandot och använd dem med az ml data show
kommandot för att visa information om tillgången.
az ml data show --name transformed-nyc-taxt-data --version 1 --registry-name <registry-name>
Dricks
Om du använde ett annat datanamn eller en annan version ersätter du parametrarna --name
och --version
därefter.
Du kan också använda az ml data list --registry-name <registry-name>
för att visa en lista över alla datatillgångar i registret.
Skapa en miljö och komponent i registret
Om du vill skapa en miljö och komponent i registret använder du stegen i artikeln Så här delar du modeller, komponenter och miljöer . Miljön och komponenten används i träningsjobbet i nästa avsnitt.
Dricks
Du kan använda en miljö och komponent från arbetsytan i stället för att använda en från registret.
Köra ett pipelinejobb på en arbetsyta med hjälp av komponenten från registret
När du kör ett pipelinejobb som använder en komponent och data från ett register är beräkningsresurserna lokala för arbetsytan. I följande exempel använder jobbet träningskomponenten Scikit Learn och datatillgången som skapades i föregående avsnitt för att träna en modell.
Kommentar
Den viktigaste aspekten är att den här pipelinen kommer att köras på en arbetsyta med träningsdata som inte finns på den specifika arbetsytan. Data finns i ett register som kan användas med valfri arbetsyta i din organisation. Du kan köra det här träningsjobbet på alla arbetsytor som du har åtkomst till utan att behöva oroa dig för att göra träningsdata tillgängliga på den arbetsytan.
Kontrollera att du är i cli/jobs/pipelines-with-components/nyc_taxi_data_regression
katalogen. component
Redigera avsnittet i under train_job
avsnittet i single-job-pipeline.yml
filen för att referera till träningskomponenten och path
under training_data
avsnittet för att referera till datatillgången som skapades i föregående avsnitt. I följande exempel visas hur det single-job-pipeline.yml
ser ut efter redigeringen. <registry_name>
Ersätt med namnet på registret:
$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:
Varning
- Innan du kör pipelinejobbet kontrollerar du att arbetsytan där du ska köra jobbet finns i en Azure-region som stöds av registret där du skapade data.
- Bekräfta att arbetsytan har ett beräkningskluster med namnet
cpu-cluster
eller redigeracompute
fältet underjobs.train_job.compute
med namnet på din beräkning.
Kör pipelinejobbet az ml job create
med kommandot .
az ml job create --file single-job-pipeline.yml
Dricks
Om du inte har konfigurerat standardarbetsytan och resursgruppen enligt beskrivningen i avsnittet förutsättningar måste du ange parametrarna --workspace-name
och --resource-group
för az ml job create
att arbeta.
Mer information om hur du kör jobb finns i följande artiklar:
Dela data från arbetsyta till register
Följande steg visar hur du delar en befintlig datatillgång från en arbetsyta till ett register.
Skapa först en datatillgång på arbetsytan. Kontrollera att du är i cli/assets/data
katalogen. Den local-folder.yml
som finns i den här katalogen används för att skapa en datatillgång på arbetsytan. De data som anges i den här filen är tillgängliga i cli/assets/data/sample-data
katalogen. Följande YAML är innehållet i local-folder.yml
filen:
$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/
Använd följande kommando för att skapa datatillgången på arbetsytan:
az ml data create -f local-folder.yml
Mer information om hur du skapar datatillgångar på en arbetsyta finns i Så här skapar du datatillgångar.
Datatillgången som skapas på arbetsytan kan delas till ett register. Från registret kan det användas på flera arbetsytor. Observera att vi skickar --share_with_name
och --share_with_version
parametern i resursfunktionen. De här parametrarna är valfria och om du inte skickar dessa data delas de med samma namn och version som på arbetsytan.
I följande exempel visas hur du använder share-kommandot för att dela en datatillgång. Ersätt <registry-name>
med namnet på registret som data ska delas till.
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>