Självstudie: Designer – distribuera en maskininlärningsmodell

Använd designern för att distribuera en maskininlärningsmodell för att förutsäga priset på bilar. Självstudien är del två i en serie med två delar.

Anteckning

Designer stöder två typer av komponenter, klassiska fördefinierade komponenter (v1) och anpassade komponenter (v2). Dessa två typer av komponenter är INTE kompatibla.

Klassiska fördefinierade komponenter tillhandahåller fördefinierade komponenter främst för databearbetning och traditionella maskininlärningsuppgifter som regression och klassificering. Den här typen av komponent stöds fortfarande, men inga nya komponenter läggs till.

Med anpassade komponenter kan du omsluta din egen kod som en komponent. Den stöder delning av komponenter mellan arbetsytor och sömlös redigering i Gränssnitten Studio, CLI v2 och SDK v2.

För nya projekt rekommenderar vi starkt att du använder en anpassad komponent, som är kompatibel med AzureML V2 och fortsätter att ta emot nya uppdateringar.

Den här artikeln gäller för klassiska fördefinierade komponenter som inte är kompatibla med CLI v2 och SDK v2.

I del ett av självstudiekursen tränade du en linjär regressionsmodell på bilpriser. I del två distribuerar du modellen för att ge andra en chans att använda den. I den här kursen får du:

  • Skapa en pipeline för slutsatsdragning i realtid.
  • Skapa ett slutsatsdragningskluster.
  • Distribuera realtidsslutpunkten.
  • Testa realtidsslutpunkten.

Förutsättningar

Slutför del ett av självstudien för att lära dig hur du tränar och poängsätt en maskininlärningsmodell i designern.

Viktigt

Om du inte ser grafiska element som nämns i det här dokumentet, till exempel knappar i studio eller designer, kanske du inte har rätt behörighetsnivå för arbetsytan. Kontakta azure-prenumerationsadministratören för att kontrollera att du har beviljats rätt åtkomstnivå. Mer information finns i Hantera användare och roller.

Skapa en pipeline för slutsatsdragning i realtid

Om du vill distribuera din pipeline måste du först konvertera träningspipelinen till en pipeline för slutsatsdragning i realtid. Den här processen tar bort träningskomponenter och lägger till webbtjänstindata och -utdata för att hantera begäranden.

Anteckning

Skapa slutsatsdragningspipeline stöder endast träningspipelines som endast innehåller de inbyggda designerkomponenterna och måste ha en komponent som Train Model som matar ut den tränade modellen.

Skapa en pipeline för slutsatsdragning i realtid

  1. På sidan med information om pipelinejobb, ovanför pipelinearbetsytan, väljer du Skapa slutsatsdragningspipeline>för realtidsinferens.

    Skärmbild av skapa slutsatsdragningspipeline på informationssidan för pipelinejobb.

    Din nya pipeline ser nu ut så här:

    Skärmbild som visar den förväntade konfigurationen av pipelinen när den har förberetts för distribution.

    När du väljer Skapa slutsatsdragningspipeline händer flera saker:

    • Den tränade modellen lagras som en datauppsättningskomponent i komponentpaletten. Du hittar den under Mina datauppsättningar.
    • Träningskomponenter som Train Model och Split Data tas bort.
    • Den sparade tränade modellen läggs till i pipelinen igen.
    • Komponenter för webbtjänstindata och webbtjänstutdata läggs till. Dessa komponenter visar var användardata anger pipelinen och var data returneras.

    Anteckning

    Som standard förväntar sig webbtjänstindata samma dataschema som komponentens utdata som ansluter till samma underordnade port som den. I det här exemplet ansluter webbtjänstindata och bilprisdata (Raw) till samma underordnade komponent, och därför förväntar sig webbtjänstindata att samma dataschema som kolumnen Automobile price data (Raw) och målvariabeln price ingår i schemat. Men vanligtvis när du bedömer data känner du inte till målvariabelvärdena. I så fall kan du ta bort målvariabelkolumnen i slutsatsdragningspipelinen med hjälp av komponenten Välj kolumner i datauppsättning . Kontrollera att utdata från kolumnen Välj kolumner i datauppsättningen som tar bort målvariabeln är anslutna till samma port som utdata från webbtjänstindatakomponenten .

  2. Välj Skicka och använd samma beräkningsmål och experiment som du använde i del ett.

    Om det här är det första jobbet kan det ta upp till 20 minuter för pipelinen att slutföra körningen. Standardinställningarna för beräkning har en minsta nodstorlek på 0, vilket innebär att designern måste allokera resurser när den är inaktiv. Upprepade pipelinejobb tar mindre tid eftersom beräkningsresurserna redan har allokerats. Dessutom använder designern cachelagrade resultat för varje komponent för att ytterligare förbättra effektiviteten.

  3. Gå till information om pipelinejobbet för realtidsinferens genom att välja länken Jobbinformation i det vänstra fönstret.

  4. Välj Distribuera på jobbinformationssidan.

    Skärmbild som visar distribution på sidan med jobbinformation.

Skapa ett slutsatsdragningskluster

I dialogrutan som visas kan du välja från alla befintliga Azure Kubernetes Service-kluster (AKS) att distribuera din modell till. Om du inte har något AKS-kluster använder du följande steg för att skapa ett.

  1. Välj Beräkning i dialogrutan som visas för att gå till sidan Beräkning .

  2. I navigeringsfliksområdet väljer du Slutsatsdragningskluster>+ Nytt.

    Skärmbild som visar hur du kommer till det nya fönstret för slutsatsdragningskluster.

  3. I fönstret slutsatsdragningskluster konfigurerar du en ny Kubernetes-tjänst.

  4. Ange aks-compute som beräkningsnamn.

  5. Välj en region i närheten som är tillgänglig för regionen.

  6. Välj Skapa.

    Anteckning

    Det tar cirka 15 minuter att skapa en ny AKS-tjänst. Du kan kontrollera etableringstillståndet på sidan Slutsatsdragningskluster .

Distribuera realtidsslutpunkten

När AKS-tjänsten har slutfört etableringen återgår du till pipelinen för slutsatsdragning i realtid för att slutföra distributionen.

  1. Välj Distribuera ovanför arbetsytan.

  2. Välj Distribuera ny realtidsslutpunkt.

  3. Välj det AKS-kluster som du skapade.

    Skärmbild som visar hur du konfigurerar en ny realtidsslutpunkt.

    Du kan också ändra inställningen Avancerat för realtidsslutpunkten.

    Avancerad inställning Description
    Aktivera Application Insights-diagnostik och datainsamling Om du vill aktivera Azure Application Insights för att samla in data från de distribuerade slutpunkterna.
    Som standard: false.
    Tidsgräns för bedömning En timeout i millisekunder för att framtvinga för bedömning av anrop till webbtjänsten.
    Som standard: 60000.
    Automatisk skalning aktiverad Om du vill aktivera automatisk skalning för webbtjänsten.
    Som standard: true.
    Minsta repliker Det minsta antalet containrar som ska användas vid automatisk skalning av den här webbtjänsten.
    Som standard: 1.
    Maximalt antal repliker Det maximala antalet containrar som ska användas vid automatisk skalning av den här webbtjänsten.
    Som standard: 10.
    Målanvändning Målanvändningen (i procent av 100) som autoskalning ska försöka underhålla för den här webbtjänsten.
    Som standard: 70.
    Uppdateringsperiod Hur ofta (i sekunder) autoskalningstjänsten försöker skala den här webbtjänsten.
    Som standard: 1.
    Processorreservkapacitet Antalet CPU-kärnor som ska allokeras för den här webbtjänsten.
    Som standard: 0.1.
    Kapacitet för minnesreserv Mängden minne (i GB) som ska allokeras för den här webbtjänsten.
    Som standard: 0,5.
  4. Välj Distribuera.

    Ett meddelande från meddelandecentret visas när distributionen är klar. Det kan ta några minuter.

    Skärmbild som visar distributionsmeddelande.

Tips

Du kan också distribuera till Azure Container Instance (ACI) om du väljer Azure Container Instance for Compute-typen i inställningsrutan för realtidsslutpunkt. Azure Container Instance används för testning eller utveckling. Använd ACI för lågskalig CPU-baserade arbetsbelastningar som kräver mindre än 48 GB RAM-minne.

Testa realtidsslutpunkten

När distributionen är klar kan du visa realtidsslutpunkten genom att gå till sidan Slutpunkter .

  1. På sidan Slutpunkter väljer du den slutpunkt som du distribuerade.

    På fliken Information kan du se mer information, till exempel REST-URI, Swagger-definition, status och taggar.

    På fliken Förbruka hittar du exempel på förbrukningskod, säkerhetsnycklar och ange autentiseringsmetoder.

    På fliken Distributionsloggar hittar du detaljerade distributionsloggar för realtidsslutpunkten.

  2. Om du vill testa slutpunkten går du till fliken Test . Härifrån kan du ange testdata och välja Testa verifiera utdata för slutpunkten.

Uppdatera realtidsslutpunkten

Du kan uppdatera onlineslutpunkten med en ny modell som tränats i designern. På sidan med information om onlineslutpunkter letar du reda på ditt tidigare pipelinejobb för träning och härledningspipelinejobbet.

  1. Du hittar och ändrar ditt utkast för träningspipelinen direkt på designerns startsida.

    Eller så kan du öppna länken för träningspipelinens jobb och sedan klona den till ett nytt pipeline-utkast för att fortsätta redigera.

    Skärmbild som visar länken för träningsjobbet på sidan med slutpunktsinformation.

  2. När du har skickat den ändrade träningspipelinen går du till sidan med jobbinformation.

  3. När jobbet har slutförts högerklickar du på Träna modell och väljer Registrera data.

    Skärmbild som visar registrera tränad modell som datauppsättning.

    Indatanamn och välj Filtyp .

    Skärmbild av registrering som en datatillgång med ny datatillgång vald.

  4. När datauppsättningen har registrerats öppnar du ditt utkast till slutsatsdragningspipeline eller klonar det tidigare pipelinejobbet för slutsatsdragning till ett nytt utkast. I pipelineutkastet för slutsatsdragning ersätter du den tidigare tränade modellen som visas som MD-XXXX-nod som är ansluten till komponenten Poängsätta modell med den nyligen registrerade datauppsättningen.

    Skärmbild som visar hur du ändrar slutsatsdragningspipeline.

  5. Om du behöver uppdatera dataförbearbetningsdelen i din träningspipeline och vill uppdatera den till slutsatsdragningspipelinen liknar bearbetningen stegen ovan.

    Du behöver bara registrera transformeringsutdata för transformeringskomponenten som datauppsättning.

    Ersätt sedan TD-komponenten i slutsatsdragningspipelinen manuellt med den registrerade datauppsättningen.

    Skärmbild som visar hur du ersätter transformeringskomponenten.

  6. När du har modifierat din slutsatsdragningspipeline med den nyligen tränade modellen eller omvandlingen skickar du den. När jobbet har slutförts distribuerar du det till den befintliga onlineslutpunkten som distribuerades tidigare.

    Skärmbild som visar hur du ersätter en befintlig realtidsslutpunkt.

Begränsningar

  • På grund av åtkomstbegränsningen för datalager tas de bort automatiskt när de distribueras till realtidsslutpunkten om din slutsatsdragningspipeline innehåller komponenten Importera data eller Exportera data .

  • Om du har datauppsättningar i pipelinen för slutsatsdragning i realtid och vill distribuera den till realtidsslutpunkten stöder det här flödet för närvarande endast datauppsättningar som registrerats från Blob-datalager . Om du vill använda datauppsättningar från andra typer av datalager kan du använda Välj kolumn för att ansluta till din första datauppsättning med inställningar för att markera alla kolumner, registrera utdata från Välj kolumn som fildatauppsättning och sedan ersätta den första datauppsättningen i pipelinen för slutsatsdragning i realtid med den här nyligen registrerade datauppsättningen.

  • Om din slutsatsdragningsgraf innehåller komponenten "Ange data manuellt" som inte är ansluten till samma port som komponenten "Indata för webbtjänst" körs inte komponenten "Ange data manuellt" under HTTP-anropsbearbetningen. En lösning är att registrera utdata för komponenten "Ange data manuellt" som datauppsättning och sedan ersätta komponenten "Ange data manuellt" i pipelineutkastet för slutsatsdragning med den registrerade datauppsättningen.

    Skärmbild som visar hur du ändrar en slutsatsdragningspipeline som innehåller en komponent för att ange data manuellt.

Rensa resurser

Viktigt

Du kan använda de resurser som du har skapat som förutsättningar för andra Azure Machine Learning-självstudier och instruktionsartiklar.

Ta bort allt

Om du inte planerar att använda något som du har skapat tar du bort hela resursgruppen så att du inte debiteras några avgifter.

  1. I Azure Portal väljer du Resursgrupper till vänster i fönstret.

    Ta bort resursgrupp i Azure-portalen

  2. I listan väljer du den resursgrupp som du skapade.

  3. Välj Ta bort resursgrupp.

Om du tar bort resursgruppen tas även alla resurser som du skapade i designern bort.

Ta bort enskilda tillgångar

I designern där du skapade experimentet tar du bort enskilda tillgångar genom att välja dem och sedan välja knappen Ta bort .

Beräkningsmålet som du skapade här skalar automatiskt till noll noder när det inte används. Den här åtgärden vidtas för att minimera kostnaderna. Om du vill ta bort beräkningsmålet utför du följande steg:

Ta bort tillgångar

Du kan avregistrera datauppsättningar från din arbetsyta genom att välja varje datauppsättning och välja Avregistrera.

Avregistrera datauppsättning

Om du vill ta bort en datauppsättning går du till lagringskontot med hjälp av Azure Portal eller Azure Storage Explorer och tar bort dessa tillgångar manuellt.

Nästa steg

I den här självstudien har du lärt dig de viktigaste stegen i hur du skapar, distribuerar och använder en maskininlärningsmodell i designern. Mer information om hur du kan använda designern finns på följande länkar: