Dela via


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_foldereller 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 .

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 redigera compute fältet under jobs.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>

Nästa steg