Så här fungerar Azure Machine Learning: Arkitektur och begrepp (v1)

GÄLLER FÖR:Azure CLI ml-tillägget v1Python SDK azureml v1

Den här artikeln gäller för den första versionen (v1) av Azure Machine Learning CLI & SDK. Version två (v2) finns i Så här fungerar Azure Machine Learning (v2).

Lär dig mer om arkitekturen och begreppen för Azure Machine Learning. Den här artikeln ger dig en övergripande förståelse av komponenterna och hur de fungerar tillsammans för att hjälpa dig att skapa, distribuera och underhålla maskininlärningsmodeller.

Arbetsyta

En Machine Learning-arbetsyta är en toppnivåresurs för Azure Machine Learning.

Diagram: Azure Machine Learning architecture of a workspace and its components

Arbetsytan är den centraliserade platsen för att:

En arbetsyta innehåller andra Azure-resurser som används av arbetsytan:

  • Azure Container Registry (ACR): Registrerar docker-containrar som du använder under träning och när du distribuerar en modell. För att minimera kostnaderna skapas ACR endast när distributionsbilder skapas.
  • Azure Storage-konto: Används som standarddatalager för arbetsytan. Jupyter-notebook-filer som används med dina Azure Machine Learning-beräkningsinstanser lagras även här.
  • Azure Application Insights: Lagrar övervakningsinformation om dina modeller.
  • Azure Key Vault: Lagrar hemligheter som används av beräkningsmål och annan känslig information som behövs av arbetsytan.

Du kan dela en arbetsyta med andra.

Beräknar

Ett beräkningsmål är en dator eller uppsättning datorer som du använder för att köra träningsskriptet eller vara värd för tjänstdistributionen. Du kan använda din lokala dator eller en fjärrberäkningsresurs som beräkningsmål. Med beräkningsmål kan du börja träna på din lokala dator och sedan skala ut till molnet utan att ändra träningsskriptet.

Azure Machine Learning introducerar två fullständigt hanterade molnbaserade virtuella datorer (VM) som är konfigurerade för maskininlärningsuppgifter:

  • Beräkningsinstans: En beräkningsinstans är en virtuell dator som innehåller flera verktyg och miljöer som är installerade för maskininlärning. Den primära användningen av en beräkningsinstans är för din utvecklingsarbetsstation. Du kan börja köra exempelanteckningsböcker utan att någon installation krävs. En beräkningsinstans kan också användas som beräkningsmål för tränings- och slutsatsdragningsjobb.

  • Beräkningskluster: Beräkningskluster är ett kluster med virtuella datorer med skalningsfunktioner med flera noder. Beräkningskluster passar bättre för beräkningsmål för stora jobb och produktion. Klustret skalas upp automatiskt när ett jobb skickas. Använd som träningsberäkningsmål eller för dev/test-distribution.

Mer information om träningsberäkningsmål finns i Träningsberäkningsmål. Mer information om distributionsberäkningsmål finns i Distributionsmål.

Datauppsättningar och datalager

Azure Machine Learning-datauppsättningar gör det enklare att komma åt och arbeta med dina data. Genom att skapa en datauppsättning skapar du en referens till datakällans plats tillsammans med en kopia av dess metadata. Eftersom data finns kvar på den befintliga platsen medför du ingen extra lagringskostnad och riskerar inte integriteten för dina datakällor.

Mer information finns i Skapa och registrera Azure Machine Learning-datauppsättningar. Fler exempel med datauppsättningar finns i exempelanteckningsböckerna.

Datauppsättningar använder datalager för att på ett säkert sätt ansluta till dina Azure Storage-tjänster. Datalager lagrar anslutningsinformation utan att riskera dina autentiseringsuppgifter och integriteten för den ursprungliga datakällan. De lagrar anslutningsinformation, till exempel ditt prenumerations-ID och tokenauktorisering i ditt Key Vault som är associerat med arbetsytan, så att du på ett säkert sätt kan komma åt lagringen utan att behöva hårdkoda dem i skriptet.

Miljöer

Arbetsytemiljöer>

En miljö är inkapslingen av miljön där träning eller bedömning av din maskininlärningsmodell sker. Miljön anger Python-paket, miljövariabler och programvaruinställningar kring dina tränings- och bedömningsskript.

Kodexempel finns i avsnittet "Hantera miljöer" i Så här använder du miljöer.

Experiment

Arbetsyteexperiment>

Ett experiment är en gruppering av många körningar från ett angivet skript. Den tillhör alltid en arbetsyta. När du skickar en körning anger du ett experimentnamn. Information för körningen lagras under experimentet. Om namnet inte finns när du skickar ett experiment skapas automatiskt ett nytt experiment.

Ett exempel på hur du använder ett experiment finns i Självstudie: Träna din första modell.

Körningar

Körning av arbetsyteexperiment>>

En körning är en enda körning av ett träningsskript. Ett experiment innehåller vanligtvis flera körningar.

Azure Machine Learning registrerar alla körningar och lagrar följande information i experimentet:

  • Metadata om körningen (tidsstämpel, varaktighet och så vidare)
  • Mått som loggas av skriptet
  • Utdatafiler som samlas in automatiskt av experimentet eller som uttryckligen laddas upp av dig
  • En ögonblicksbild av katalogen som innehåller dina skript, före körningen

Du skapar en körning när du skickar ett skript för att träna en modell. En körning kan ha noll eller fler underordnade körningar. Till exempel kan körningen på den översta nivån ha två underordnade körningar, som var och en kan ha en egen underordnad körning.

Köra konfigurationer

Kör körningskonfiguration för arbetsyteexperiment>>>

En körningskonfiguration definierar hur ett skript ska köras i ett angivet beräkningsmål. Du använder konfigurationen för att ange skriptet, beräkningsmålet och Azure Machine Learning-miljön som ska köras, eventuella distribuerade jobbspecifika konfigurationer och några ytterligare egenskaper. Mer information om den fullständiga uppsättningen konfigurerbara alternativ för körningar finns i ScriptRunConfig.

En körningskonfiguration kan sparas i en fil i katalogen som innehåller ditt träningsskript. Eller så kan den konstrueras som ett minnesinternt objekt och användas för att skicka en körning.

Exempel på körningskonfigurationer finns i Konfigurera en träningskörning.

Ögonblicksbilder

Körningsögonblicksbild för arbetsyteexperiment>>>

När du skickar en körning komprimerar Azure Machine Learning katalogen som innehåller skriptet som en zip-fil och skickar den till beräkningsmålet. Zip-filen extraheras sedan och skriptet körs där. Azure Machine Learning lagrar även zip-filen som en ögonblicksbild som en del av körningsposten. Alla som har åtkomst till arbetsytan kan bläddra i en körningspost och ladda ned ögonblicksbilden.

Loggning

Azure Machine Learning loggar automatiskt standardkörningsmått åt dig. Du kan dock också använda Python SDK för att logga godtyckliga mått.

Det finns flera sätt att visa loggarna: övervaka körningsstatus i realtid eller visa resultat efter slutförande. Mer information finns i Övervaka och visa ML-körningsloggar.

Kommentar

Om du vill förhindra att onödiga filer tas med i ögonblicksbilden skapar du en ignorerande fil (.gitignore eller .amlignore) i katalogen. Lägg till de filer och kataloger som ska undantas i den här filen. Mer information om syntaxen som ska användas i den här filen finns i syntax och mönster för .gitignore. Filen .amlignore använder samma syntax. Om båda filerna finns .amlignore används filen och .gitignore filen används inte.

Git-spårning och integrering

När du startar en träningskörning där källkatalogen är en lokal Git-lagringsplats lagras information om lagringsplatsen i körningshistoriken. Detta fungerar med körningar som skickas med hjälp av en skriptkörningskonfiguration eller ML-pipeline. Det fungerar också för körningar som skickas från SDK eller Machine Learning CLI.

Mer information finns i Git-integrering för Azure Machine Learning.

Arbetsflöde för träning

När du kör ett experiment för att träna en modell sker följande steg. Dessa illustreras i arbetsflödesdiagrammet för träning nedan:

  • Azure Machine Learning anropas med ögonblicksbilds-ID:t för den kodögonblicksbild som sparades i föregående avsnitt.

  • Azure Machine Learning skapar ett körnings-ID (valfritt) och en Machine Learning-tjänsttoken, som senare används av beräkningsmål som Machine Learning Compute/VIRTUELLA datorer för att kommunicera med Machine Learning-tjänsten.

  • Du kan välja antingen ett hanterat beräkningsmål (till exempel Machine Learning Compute) eller ett ohanterat beräkningsmål (till exempel virtuella datorer) för att köra träningsjobb. Här är dataflödena för båda scenarierna:

    • Virtuella datorer/HDInsight, som nås med SSH-autentiseringsuppgifter i ett nyckelvalv i Microsoft-prenumerationen. Azure Machine Learning kör hanteringskod på beräkningsmålet som:
    1. Förbereder miljön. (Docker är ett alternativ för virtuella datorer och lokala datorer. Se följande steg för Machine Learning Compute för att förstå hur det fungerar att köra experiment på Docker-containrar.)
    2. Laddar ned koden.
    3. Konfigurerar miljövariabler och konfigurationer.
    4. Kör användarskript (den kodögonblicksbild som nämns i föregående avsnitt).
    • Machine Learning Compute, som nås via en arbetsytehanterad identitet. Eftersom Machine Learning Compute är ett hanterat beräkningsmål (dvs. hanteras det av Microsoft) körs det under din Microsoft-prenumeration.
    1. Fjärrbygget av Docker startas om det behövs.
    2. Hanteringskoden skrivs till användarens Azure Files-resurs.
    3. Containern startas med ett inledande kommando. Det vill: hanteringskod enligt beskrivningen i föregående steg.
  • När körningen är klar kan du köra frågor mot körningar och mått. I flödesdiagrammet nedan inträffar det här steget när träningsberäkningsmålet skriver tillbaka körningsmåtten till Azure Machine Learning från lagring i Azure Cosmos DB-databasen. Klienter kan anropa Azure Machine Learning. Machine Learning hämtar i sin tur mått från Azure Cosmos DB-databasen och returnerar dem tillbaka till klienten.

Training workflow

Modeller

Som enklast är en modell en kod som tar indata och genererar utdata. Att skapa en maskininlärningsmodell innebär att välja en algoritm, tillhandahålla data och justera hyperparametrar. Träning är en iterativ process som skapar en tränad modell som kapslar in det som modellen lärde sig under träningsprocessen.

Du kan ta med en modell som har tränats utanför Azure Machine Learning. Eller så kan du träna en modell genom att skicka en körning av ett experiment till ett beräkningsmål i Azure Machine Learning. När du har en modell registrerar du modellen på arbetsytan.

Azure Machine Learning är ramverksoberoende. När du skapar en modell kan du använda valfritt populärt maskininlärningsramverk, till exempel Scikit-learn, XGBoost, PyTorch, TensorFlow och Chainer.

Ett exempel på hur du tränar en modell med Scikit-learn finns i Självstudie: Träna en bildklassificeringsmodell med Azure Machine Learning.

Modellregister

Arbetsytemodeller>

Med modellregistret kan du hålla reda på alla modeller på din Azure Machine Learning-arbetsyta.

Modeller identifieras med namn och version. Varje gång du registrerar en modell med samma namn som en befintlig, förutsätter registret att det är en ny version. Versionen ökas och den nya modellen registreras under samma namn.

När du registrerar modellen kan du ange ytterligare metadatataggar och sedan använda taggarna när du söker efter modeller.

Dricks

En registrerad modell är en logisk container för en eller flera filer som utgör din modell. Om du till exempel har en modell som lagras i flera filer kan du registrera dem som en enda modell på din Azure Machine Learning-arbetsyta. Efter registreringen kan du sedan ladda ned eller distribuera den registrerade modellen och ta emot alla filer som har registrerats.

Du kan inte ta bort en registrerad modell som används av en aktiv distribution.

Ett exempel på hur du registrerar en modell finns i Träna en bildklassificeringsmodell med Azure Machine Learning.

Distribution

Du distribuerar en registrerad modell som en tjänstslutpunkt. Du behöver följande komponenter:

  • Miljö. Den här miljön kapslar in de beroenden som krävs för att köra din modell för slutsatsdragning.
  • Poängkod. Det här skriptet accepterar begäranden, poängsätter begäranden med hjälp av modellen och returnerar resultatet.
  • Inferenskonfiguration. Inferenskonfigurationen anger miljön, inmatningsskriptet och andra komponenter som behövs för att köra modellen som en tjänst.

Mer information om dessa komponenter finns i Distribuera modeller med Azure Machine Learning.

Slutpunkter

Slutpunkter för arbetsyta>

En slutpunkt är en instansiering av din modell till en webbtjänst som kan hanteras i molnet.

Webbtjänstslutpunkt

När du distribuerar en modell som en webbtjänst kan slutpunkten distribueras på Azure Container Instances, Azure Kubernetes Service eller FPGA: er. Du skapar tjänsten från din modell, skript och associerade filer. Dessa placeras i en bascontaineravbildning som innehåller körningsmiljön för modellen. Avbildningen har en belastningsbalanserad HTTP-slutpunkt som tar emot bedömningsbegäranden som skickas till webbtjänsten.

Du kan aktivera Application Insights-telemetri eller modelltelemetri för att övervaka webbtjänsten. Telemetridata är endast tillgängliga för dig. Den lagras i dina Application Insights- och lagringskontoinstanser. Om du har aktiverat automatisk skalning skalar Azure automatiskt distributionen.

Följande diagram visar arbetsflödet för slutsatsdragning för en modell som distribueras som en webbtjänstslutpunkt:

Här följer detaljerna:

  • Användaren registrerar en modell med hjälp av en klient som Azure Machine Learning SDK.
  • Användaren skapar en bild med hjälp av en modell, en poängfil och andra modellberoenden.
  • Docker-avbildningen skapas och lagras i Azure Container Registry.
  • Webbtjänsten distribueras till beräkningsmålet (Container Instances/AKS) med avbildningen som skapades i föregående steg.
  • Information om bedömningsbegäran lagras i Application Insights, som finns i användarens prenumeration.
  • Telemetri skickas också till Microsoft Azure-prenumerationen.

Inference workflow

Ett exempel på hur du distribuerar en modell som en webbtjänst finns i Självstudie: Träna och distribuera en modell.

Realtidsslutpunkter

När du distribuerar en tränad modell i designern kan du distribuera modellen som en realtidsslutpunkt. En realtidsslutpunkt tar ofta emot en enskild begäran via REST-slutpunkten och returnerar en förutsägelse i realtid. Detta står i kontrast till batchbearbetning, som bearbetar flera värden samtidigt och sparar resultatet efter slutförande till ett datalager.

Pipelineslutpunkter

Med pipelineslutpunkter kan du anropa ml-pipelines programmatiskt via en REST-slutpunkt. Med pipelineslutpunkter kan du automatisera dina pipelinearbetsflöden.

En pipelineslutpunkt är en samling publicerade pipelines. Med den här logiska organisationen kan du hantera och anropa flera pipelines med samma slutpunkt. Varje publicerad pipeline i en pipelineslutpunkt är versionshanterad. Du kan välja en standardpipeline för slutpunkten eller ange en version i REST-anropet.

Automatisering

Azure Machine Learning CLI

Azure Machine Learning CLI v1 är ett tillägg till Azure CLI, ett plattformsoberoende kommandoradsgränssnitt för Azure-plattformen. Det här tillägget innehåller kommandon för att automatisera dina maskininlärningsaktiviteter.

ML-pipelines

Du använder maskininlärningspipelines för att skapa och hantera arbetsflöden som sammanfogar maskininlärningsfaser. En pipeline kan till exempel omfatta förberedelse av data, modellträning, modelldistribution och slutsatsdragnings-/bedömningsfaser. Varje fas kan omfatta flera steg, som var och en kan köras obevakad i olika beräkningsmål.

Pipelinesteg kan återanvändas och kan köras utan att köra föregående steg igen om utdata från dessa steg inte har ändrats. Du kan till exempel träna om en modell utan att köra om kostsamma förberedelsesteg för data om data inte har ändrats. Pipelines gör det också möjligt för dataexperter att samarbeta när de arbetar med separata områden i ett maskininlärningsarbetsflöde.

Övervakning och loggning

Azure Machine Learning tillhandahåller följande funktioner för övervakning och loggning:

Interagera med din arbetsyta

Studio

Azure Machine Learning-studio innehåller en webbvy över alla artefakter på din arbetsyta. Du kan visa resultat och information om dina datauppsättningar, experiment, pipelines, modeller och slutpunkter. Du kan också hantera beräkningsresurser och datalager i studion.

I studion får du också åtkomst till de interaktiva verktyg som ingår i Azure Machine Learning:

Programmeringsverktyg

Viktigt!

Verktyg som är markerade (förhandsversion) nedan är för närvarande i offentlig förhandsversion. Förhandsversionen tillhandahålls utan ett serviceavtal och rekommenderas 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.

Nästa steg

Information om hur du kommer igång med Azure Machine Learning finns i: