Dela via


Automatiserad maskininlärning (AutoML)?

GÄLLER FÖR:Python SDK azureml v1

Automatiserad maskininlärning, även kallad automatiserad ML eller AutoML, är processen att automatisera de tidskrävande, iterativa uppgifterna för utveckling av maskininlärningsmodeller. Det gör det möjligt för dataforskare, analytiker och utvecklare att skapa ML-modeller med hög skala, effektivitet och produktivitet samtidigt som modellkvaliteten bibehålls. Automatiserad ML i Azure Mašinsko učenje baseras på ett genombrott från vår Microsoft Research-division.

Traditionell utveckling av maskininlärningsmodeller är resurskrävande, vilket kräver betydande domänkunskap och tid för att producera och jämföra dussintals modeller. Med automatiserad maskininlärning påskyndar du den tid det tar att få produktionsklara ML-modeller med stor lätthet och effektivitet.

Sätt att använda AutoML i Azure Mašinsko učenje

Azure Mašinsko učenje erbjuder följande två funktioner för att arbeta med automatiserad ML. Se följande avsnitt för att förstå funktionstillgänglighet i varje upplevelse (v1).

Experimentinställningar

Med följande inställningar kan du konfigurera ditt automatiserade ML-experiment.

The Python SDK Studio-webbupplevelsen
Dela upp data i tränings-/valideringsuppsättningar
Stöder ML-uppgifter: klassificering, regression och prognostisering
Stöder uppgifter för visuellt innehåll: bildklassificering, objektidentifiering och instanssegmentering
Optimerar baserat på primärt mått
Stöder Azure Mašinsko učenje beräkning som beräkningsmål
Konfigurera prognoshorisont, målfördröjningar och rullande fönster
Ange avslutsvillkor
Ange samtidiga iterationer
Ta bort kolumner
Blockera algoritmer
Korsvalidering
Stöder utbildning i Azure Databricks-kluster
Visa skapade funktionsnamn
Sammanfattning av funktionalisering
Funktionalisering för helgdagar
Loggfilsveroalitetsnivåer

Modellinställningar

De här inställningarna kan tillämpas på den bästa modellen som ett resultat av ditt automatiserade ML-experiment.

The Python SDK Studio-webbupplevelsen
Bästa modellregistrering, distribution, förklaring
Aktivera ensemble- och stackensemblemodeller för röstning
Visa bästa modell baserat på icke-primärt mått
Aktivera/inaktivera ONNX-modellkompatibilitet
Testa modellen √ (förhandsversion)

Inställningar för jobbkontroll

Med de här inställningarna kan du granska och kontrollera dina experimentjobb och dess underordnade jobb.

The Python SDK Studio-webbupplevelsen
Jobbsammanfattningstabell
Avbryt jobb och underordnade jobb
Hämta skyddsräcken
Pausa och återuppta jobb

När du ska använda AutoML: klassificering, regression, prognostisering, visuellt innehåll och NLP

Använd automatiserad ML när du vill att Azure Mašinsko učenje ska träna och finjustera en modell åt dig med hjälp av det målmått som du anger. Automatiserad ML demokratiserar utvecklingsprocessen för maskininlärningsmodellen och ger användarna möjlighet att, oavsett deras expertis inom datavetenskap, identifiera en maskininlärningspipeline från slutpunkt till slutpunkt för eventuella problem.

ML-proffs och utvecklare i olika branscher kan använda automatiserad ML för att:

  • Implementera ML-lösningar utan omfattande programmeringskunskaper
  • Spara tid och resurser
  • Använda metodtips för datavetenskap
  • Tillhandahålla smidig problemlösning

Klassificering

Klassificering är en vanlig maskininlärningsuppgift. Klassificering är en typ av övervakad inlärning där modeller tränas med träningsdata, och lär sig att tillämpa dessa lärdomar på nya data. I Azure Machine Learning finns särskilda funktioner för dessa uppgifter, till exempel textfunktioner för djupt neuralt nätverk. Läs mer om alternativ för funktionalisering (v1).

Huvudmålet med klassificeringsmodeller är att förutsäga vilka kategorier som nya data kommer att tillhöra baserat på inlärning från dess träningsdata. Klassificering används till exempel för identifiering av bedrägerier, handskriftsigenkänning och objektidentifiering. Läs mer och se ett exempel på Skapa en klassificeringsmodell med automatiserad ML (v1).

Se exempel på klassificering och automatiserad maskininlärning i dessa Python-notebook-filer: Bedrägeriidentifiering, marknadsföringsförutsägelse och dataklassificering för diskussionsgrupp

Regression

Precis som med klassificering är regressionsaktiviteter också en vanlig övervakad inlärningsuppgift.

Regressionsmodeller skiljer sig från klassificering där förutsagda utdatavärden är kategoriska och förutsäger numeriska utdatavärden baserat på oberoende prediktorer. I regression är målet att hjälpa till att upprätta en relation mellan dessa oberoende prediktorvariabler genom att uppskatta hur en variabel påverkar de andra. Till exempel hur bilpriser påverkas utifrån bensinförbrukning per mil, säkerhetsklassificering osv. Läs mer och se ett exempel på regression med automatiserad maskininlärning (v1)..

Se exempel på regression och automatiserad maskininlärning för förutsägelser i dessa Python-notebook-filer: Förutsägelse av processorprestanda,

Tidsserieprognoser

Att skapa prognoser är ett viktigt område för alla företag, oavsett om det gäller intäkter, lager, försäljning eller kundefterfrågan. Du kan använda automatiserad ML för att kombinera tekniker och metoder och få en rekommenderad tidsserieprognos av hög kvalitet. Läs mer med den här instruktioner: automatiserad maskininlärning för tidsserieprognoser (v1).

Ett automatiserat tidsserieexperiment behandlas som ett problem med multivariatregression. Tidigare tidsserievärden "pivoteras" för att bli ytterligare dimensioner för regressorn tillsammans med andra prediktorer. Den här metoden, till skillnad från klassiska tidsseriemetoder, har en fördel med att naturligt införliva flera kontextvariabler och deras relation till varandra under träningen. Automatiserad ML lär sig en enda, men ofta internt förgrenad modell för alla objekt i datamängden och förutsägelsehorisonterna. Mer data är därmed tillgängliga för att uppskatta modellparametrar och generalisering till osedda serier blir möjligt.

Avancerad prognoskonfiguration omfattar:

  • funktionalisering och identifiering av helgdagar
  • time-series och DNN learners (Auto-ARIMA, Prophet, ForecastTCN)
  • många modeller stöder genom gruppering
  • korsvalidering för rullande ursprung
  • konfigurerbara förskjutningar
  • aggregeringsfunktioner för rullande fönster

Se exempel på regression och automatiserad maskininlärning för förutsägelser i dessa Python-notebook-filer: Försäljningsprognoser, Efterfrågeprognoser och Prognostisering av GitHubs dagliga aktiva användare.

Visuellt innehåll

Med stöd för uppgifter för visuellt innehåll kan du enkelt generera modeller som tränats på bilddata för scenarier som bildklassificering och objektidentifiering.

Med den här funktionen kan du:

  • Integrera sömlöst med azure Mašinsko učenje-dataetiketter
  • Använda etiketterade data för att generera bildmodeller
  • Optimera modellprestanda genom att ange modellalgoritmen och justera hyperparametrar.
  • Ladda ned eller distribuera den resulterande modellen som en webbtjänst i Azure Mašinsko učenje.
  • Operationalisera i stor skala och utnyttja funktionerna i Azure Mašinsko učenje MLOps och ML Pipelines (v1).

Redigering av AutoML-modeller för visionsuppgifter stöds via Azure Mašinsko učenje Python SDK. Resulterande experimenteringsjobb, modeller och utdata kan nås från Användargränssnittet för Azure Mašinsko učenje Studio.

Lär dig hur du konfigurerar AutoML-träning för modeller för visuellt innehåll.

Diagram som visar resulterande experiment ovanifrån.

AutoML för bilder har stöd för följande uppgifter med datorseende:

Uppgift beskrivning
Bildklassificering i flera klasser Uppgifter där en bild klassificeras med endast en etikett från en uppsättning klasser – till exempel att varje bild klassificeras som antingen en bild av en "katt" eller en "hund" eller en "anka"
Bildklassificering med flera etiketter Uppgifter där en bild kan ha en eller flera etiketter från en uppsättning etiketter – till exempel att en bild kan märkas med både "katt" och "hund"
Objektidentifiering Uppgifter för att identifiera objekt i en bild och avgränsa respektive objekt med ett fält, till exempel att hitta alla hundar och katter i en bild och rita ett avgränsande fält runt var och en.
Instanssegmentering Uppgifter för att identifiera objekt i en bild på pixelnivå och rita en polygon runt respektive objekt i bilden.

Bearbetning av naturligt språk: NLP

Med stöd för nlp-uppgifter (natural language processing) i automatiserad ML kan du enkelt generera modeller som tränats på textdata för textklassificering och namngivna scenarier för entitetsigenkänning. Redigering av automatiserade ML-tränade NLP-modeller stöds via Azure Mašinsko učenje Python SDK. Resulterande experimenteringsjobb, modeller och utdata kan nås från Användargränssnittet för Azure Mašinsko učenje Studio.

NLP-funktionen stöder:

  • NlP-träning från slutpunkt till slutpunkt med de senaste förtränade BERT-modellerna
  • Sömlös integrering med Azure Mašinsko učenje-dataetiketter
  • Använda etiketterade data för att generera NLP-modeller
  • Flerspråkigt stöd med 104 språk
  • Distribuerad träning med Horovod

Lär dig hur du konfigurerar AutoML-träning för NLP-modeller (v1).

Så här fungerar automatiserad ML

Under träningen skapar Azure Mašinsko učenje ett antal pipelines parallellt som provar olika algoritmer och parametrar åt dig. Tjänsten itererar via ML-algoritmer i kombination med funktionsval, där varje iteration genererar en modell med en träningspoäng. Desto högre poäng, desto bättre anses modellen "passa" dina data. Det stoppas när det når det avslutsvillkor som definierats i experimentet.

Med Hjälp av Azure Mašinsko učenje kan du utforma och köra dina automatiserade ML-träningsexperiment med följande steg:

  1. Identifiera ML-problemet som ska lösas: klassificering, prognostisering, regression eller visuellt innehåll.

  2. Välj om du vill använda Python SDK eller studiowebbupplevelsen: Lär dig mer om pariteten mellan Python SDK och studiowebbupplevelsen.

  3. Ange källa och format för märkta träningsdata: Numpy-matriser eller Pandas-dataram

  4. Konfigurera beräkningsmålet för modellträning, till exempel din lokala dator, Azure Mašinsko učenje Computes, fjärranslutna virtuella datorer eller Azure Databricks med SDK v1.

  5. Konfigurera de automatiserade maskininlärningsparametrarna som avgör hur många iterationer som finns i olika modeller, inställningar för hyperparameter, avancerad förbearbetning/funktionalisering och vilka mått du bör titta på när du fastställer den bästa modellen.

  6. Skicka träningsjobbet.

  7. Granska resultaten

Följande diagram illustrerar den här processen.

Skärmbild som visar resulterande experiment ovanifrån.

Du kan också granska den loggade jobbinformationen, som innehåller mått som samlats in under jobbet. Träningsjobbet genererar ett Python-serialiserat objekt (.pkl fil) som innehåller modellen och förbearbetning av data.

Även om modellskapandet automatiseras kan du också lära dig hur viktiga eller relevanta funktioner är för de genererade modellerna.

Vägledning om lokala kontra fjärrhanterade ML-beräkningsmål

Webbgränssnittet för automatiserad ML använder alltid ett fjärrberäkningsmål. Men när du använder Python SDK väljer du antingen en lokal beräkning eller ett fjärrberäkningsmål för automatiserad ML-träning.

  • Lokal beräkning: Träning sker på din lokala bärbara dator eller vm-beräkning.
  • Fjärrberäkning: Träning sker på Mašinsko učenje beräkningskluster.

Välj beräkningsmål

Tänk på dessa faktorer när du väljer beräkningsmål:

  • Välj en lokal beräkning: Om ditt scenario handlar om inledande utforskningar eller demonstrationer med små data och korta tåg (dvs. sekunder eller ett par minuter per underordnat jobb) kan det vara ett bättre val att träna på den lokala datorn. Det finns ingen installationstid, infrastrukturresurserna (datorn eller den virtuella datorn) är direkt tillgängliga.
  • Välj ett ml-fjärrberäkningskluster: Om du tränar med större datauppsättningar som i produktionsträning och skapar modeller som behöver längre tåg, ger fjärrberäkning mycket bättre prestanda från slutpunkt till slutpunkt eftersom AutoML det parallelliserar tåg över klustrets noder. Vid en fjärrberäkning lägger starttiden för den interna infrastrukturen till cirka 1,5 minuter per underordnat jobb, plus ytterligare minuter för klusterinfrastrukturen om de virtuella datorerna ännu inte är igång.

Fördelar och nackdelar

Tänk på dessa för- och nackdelar när du väljer att använda lokala kontra fjärranslutna.

Fördelar (fördelar) Nackdelar (handikapp)
Lokalt beräkningsmål
  • Ingen starttid för miljön
  • Delmängd av funktioner
  • Det går inte att parallellisera jobb
  • Värre för stora data.
  • Ingen dataströmning under träning
  • Ingen DNN-baserad funktionalisering
  • Endast Python SDK
  • Fjärr-ML-beräkningskluster
  • Fullständig uppsättning funktioner
  • Parallellisera underordnade jobb
  • Stöd för stora data
  • DNN-baserad funktionalisering
  • Dynamisk skalbarhet för beräkningskluster på begäran
  • Ingen kodupplevelse (webbgränssnitt) är också tillgänglig
  • Starttid för klusternoder
  • Starttid för varje underordnat jobb
  • Funktion tillgänglig

    Fler funktioner är tillgängliga när du använder fjärrberäkningen, som du ser i tabellen nedan.

    Funktion Fjärr- Lokal
    Dataströmning (stöd för stora data, upp till 100 GB)
    DNN-BERT-baserad textbedrift och utbildning
    Out-of-the-box GPU-stöd (utbildning och slutsatsdragning)
    Stöd för bildklassificering och etikettering
    Auto-ARIMA-, Profet- och ForecastTCN-modeller för prognostisering
    Flera jobb/iterationer parallellt
    Skapa modeller med tolkningsbarhet i AutoML Studio-webbgränssnittet
    Anpassning av funktionsutveckling i användargränssnittet för studiowebbupplevelse
    Azure Mašinsko učenje hyperparameterjustering
    Arbetsflödesstöd för Azure Mašinsko učenje Pipeline
    Fortsätt ett jobb
    Prognostisering
    Skapa och köra experiment i notebook-filer
    Registrera och visualisera experimentets information och mått i användargränssnittet
    Dataskyddsmekanismer

    Tränings-, validerings- och testdata

    Med automatiserad ML tillhandahåller du träningsdata för att träna ML-modeller och du kan ange vilken typ av modellverifiering som ska utföras. Automatiserad ML utför modellverifiering som en del av träningen. Automatiserad ML använder valideringsdata för att finjustera modellhyperparametrar baserat på den tillämpade algoritmen för att hitta den bästa kombinationen som passar bäst för träningsdata. Samma valideringsdata används dock för varje iteration av justering, vilket introducerar modellutvärderingsfördomar eftersom modellen fortsätter att förbättras och anpassas till valideringsdata.

    För att bekräfta att sådan bias inte tillämpas på den slutliga rekommenderade modellen stöder automatiserad ML användning av testdata för att utvärdera den slutliga modell som automatiserad ML rekommenderar i slutet av experimentet. När du anger testdata som en del av autoML-experimentkonfigurationen testas den här rekommenderade modellen som standard i slutet av experimentet (förhandsversion).

    Viktigt!

    Att testa dina modeller med en testdatauppsättning för att utvärdera genererade modeller är en förhandsversionsfunktion. Den här funktionen är en experimentell förhandsversionsfunktion och kan ändras när som helst.

    Lär dig hur du konfigurerar AutoML-experiment för att använda testdata (förhandsversion) med SDK (v1) eller med Azure Mašinsko učenje Studio.

    Du kan också testa alla befintliga automatiserade ML-modeller (förhandsversion) (v1)), inklusive modeller från underordnade jobb, genom att tillhandahålla egna testdata eller genom att avsätta en del av dina träningsdata.

    Funktionsframställning

    Funktionsutveckling är processen att använda domänkunskaper om data för att skapa funktioner som hjälper ML-algoritmer att lära sig bättre. I Azure Mašinsko učenje används skalnings- och normaliseringstekniker för att underlätta funktionsframställning. Tillsammans kallas dessa tekniker och funktionstekniker för funktionalisering.

    För automatiserade maskininlärningsexperiment tillämpas funktionalisering automatiskt, men kan också anpassas baserat på dina data. Läs mer om vilken funktionalisering som ingår (v1) och hur AutoML hjälper till att förhindra överpassande och obalanserade data i dina modeller.

    Kommentar

    Automatiserade maskininlärningssteg (funktionsnormalisering, hantering av saknade data, konvertering av text till numeriska osv.) blir en del av den underliggande modellen. När du använder modellen för förutsägelser tillämpas samma funktionaliseringssteg som tillämpas under träningen på dina indata automatiskt.

    Anpassa funktionalisering

    Ytterligare tekniker för funktionsutveckling, till exempel kodning och transformeringar, finns också tillgängliga.

    Aktivera den här inställningen med:

    Ensemblemodeller

    Automatiserad maskininlärning stöder ensemblemodeller som är aktiverade som standard. Ensembleinlärning förbättrar maskininlärningsresultat och förutsägande prestanda genom att kombinera flera modeller i stället för att använda enkla modeller. Ensemble-iterationerna visas som de sista iterationerna av ditt jobb. Automatiserad maskininlärning använder både röstnings- och staplingsmetoder för att kombinera modeller:

    • Röstning: förutsäger baserat på det viktade genomsnittet för förutsagda klassannolikheter (för klassificeringsuppgifter) eller förutsagda regressionsmål (för regressionsaktiviteter).
    • Stapling: stapling kombinerar heterogena modeller och tränar en metamodell baserat på utdata från de enskilda modellerna. De aktuella standardmetamodellerna är LogisticRegression för klassificeringsuppgifter och ElasticNet för regression/prognostiseringsuppgifter.

    Algoritmen för val av Caruana-ensemble med sorterad ensembleinitiering används för att bestämma vilka modeller som ska användas i ensemblen. På hög nivå initierar den här algoritmen ensemblen med upp till fem modeller med bästa individuella poäng och verifierar att dessa modeller ligger inom 5 % tröskelvärde för bästa poäng för att undvika en dålig initial ensemble. För varje ensemble-iteration läggs sedan en ny modell till i den befintliga ensemblen och den resulterande poängen beräknas. Om en ny modell förbättrade den befintliga ensemblepoängen uppdateras ensemblen så att den innehåller den nya modellen.

    Se instruktioner (v1) för att ändra standardinställningarna för ensemble i automatiserad maskininlärning.

    AutoML och ONNX

    Med Azure Mašinsko učenje kan du använda automatiserad ML för att skapa en Python-modell och få den konverterad till ONNX-formatet. När modellerna är i ONNX-format kan de köras på en mängd olika plattformar och enheter. Läs mer om att accelerera ML-modeller med ONNX.

    Se hur du konverterar till ONNX-format i det här Jupyter Notebook-exemplet. Lär dig vilka algoritmer som stöds i ONNX (v1).

    ONNX-körningen har också stöd för C#, så du kan använda modellen som skapats automatiskt i dina C#-appar utan att behöva ändra eller någon av de nätverksfördröjningar som REST-slutpunkter introducerar. Läs mer om hur du använder en AutoML ONNX-modell i ett .NET-program med ML.NET och slutsatsdragning av ONNX-modeller med ONNX-körnings-C#-API:et.

    Nästa steg

    Det finns flera resurser för att komma igång med AutoML.

    Självstudier/instruktioner

    Självstudier är introduktionsexempel från slutpunkt till slutpunkt för AutoML-scenarier.

    Instruktioner innehåller ytterligare information om vilka funktioner automatiserad ML erbjuder. Exempel:

    Jupyter Notebook-exempel

    Granska detaljerade kodexempel och användningsfall på GitHub-lagringsplatsen med automatiserade maskininlärningsexempel.

    Python SDK-referens

    Fördjupa dina kunskaper om SDK-designmönster och klassspecifikationer med referensdokumentationen för AutoML-klassen.

    Kommentar

    Automatiserade maskininlärningsfunktioner är också tillgängliga i andra Microsoft-lösningar som ML.NET, HDInsight, Power BI och SQL Server