Delen via


Geautomatiseerde machine learning (AutoML)?

VAN TOEPASSING OP: Python SDK azureml v1

Geautomatiseerde machine learning, ook wel geautomatiseerd ML of AutoML genoemd, is het automatiseren van de tijdrovende, iteratieve taken van het ontwikkelen van machine learning-modellen. Hiermee kunnen gegevenswetenschappers, analisten en ontwikkelaars ML-modellen bouwen met hoge schaal, efficiëntie en productiviteit en tegelijkertijd de kwaliteit van het model behouden. Geautomatiseerde ML in Azure Machine Learning is gebaseerd op een doorbraak van onze Microsoft Research-afdeling.

Traditionele machine learning-modelontwikkeling is resource-intensief, wat aanzienlijke kennis en tijd vereist om tientallen modellen te produceren en te vergelijken. Met geautomatiseerde machine learning versnelt u de tijd die nodig is om ML-modellen met een groot gemak en efficiëntie klaar te maken voor productie.

Manieren om AutoML te gebruiken in Azure Machine Learning

Azure Machine Learning biedt de volgende twee ervaringen voor het werken met geautomatiseerde ML. Zie de volgende secties om inzicht te hebben in de beschikbaarheid van functies in elke ervaring (v1).

Experimentinstellingen

Met de volgende instellingen kunt u uw geautomatiseerde ML-experiment configureren.

De Python-SDK De webervaring van Studio
Gegevens splitsen in trainings-/validatiesets
Ondersteunt ML-taken: classificatie, regressie, & prognose
Ondersteunt Computer Vision-taken: afbeeldingsclassificatie, objectdetectie en exemplaarsegmentatie
Optimaliseert op basis van primaire metrische gegevens
Ondersteunt Azure Machine Learning-rekenkracht als rekendoel
Prognose horizon, doelvertragingen en doorlopend venster configureren
Afsluitcriteria instellen
Gelijktijdige iteraties instellen
Kolommen neerzetten
Algoritmen blokkeren
Kruisvalidatie
Ondersteunt training op Azure Databricks-clusters
Aangepaste functienamen weergeven
Overzicht van featurization
Featurization voor feestdagen
Uitgebreidheidsniveaus van logboekbestanden

Modelinstellingen

Deze instellingen kunnen worden toegepast op het beste model als gevolg van uw geautomatiseerde ML-experiment.

De Python-SDK De webervaring van Studio
Beste modelregistratie, implementatie, uitleg
Stem ensemble & stack ensemble modellen inschakelen
Beste model weergeven op basis van niet-primaire metrische gegevens
Compatibiliteit van ONNX-modellen in-/uitschakelen
Het model testen ✓ (preview)

Instellingen voor taakbeheer

Met deze instellingen kunt u uw experimenttaken en de onderliggende taken controleren en beheren.

De Python-SDK De webervaring van Studio
Overzichtstabel van taak
Taken en onderliggende taken annuleren
Kaders ophalen
Taken onderbreken en hervatten

Wanneer gebruikt u AutoML: classificatie, regressie, prognose, computer vision & NLP

Pas geautomatiseerde ML toe wanneer u wilt dat Azure Machine Learning een model voor u traint en afstemt met behulp van de doelmetrieken die u opgeeft. Geautomatiseerde ML democratiseert het ontwikkelingsproces van het machine learning-model en stelt de gebruikers, ongeacht hun expertise op het gebied van gegevenswetenschap, in staat om een end-to-end machine learning-pijplijn te identificeren voor elk probleem.

ML-professionals en -ontwikkelaars in verschillende branches kunnen geautomatiseerde ML gebruiken om:

  • ML-oplossingen implementeren zonder uitgebreide programmeerkennis
  • Tijd en resources besparen
  • Best practices voor data science gebruiken
  • Flexibele probleemoplossing bieden

Classificatie

Classificatie is een veelvoorkomende machine learning-taak. Classificatie is een type leren onder supervisie waarin modellen leren trainingsgegevens te gebruiken en deze kennis toepassen op nieuwe gegevens. Azure Machine Learning biedt specifieke featurizations voor deze taken, zoals tekst-featurizers van Deep Neural Network voor classificatie. Meer informatie over de opties voor featurization (v1).

Het belangrijkste doel van classificatiemodellen is om te voorspellen in welke categorieën nieuwe gegevens vallen op basis van de trainingsgegevens. Veelvoorkomende classificatievoorbeelden zijn fraudedetectie, handschriftherkenning en objectdetectie. Meer informatie en een voorbeeld bekijken op Een classificatiemodel maken met geautomatiseerde ML (v1).

Bekijk voorbeelden van classificatie en geautomatiseerde machine learning in deze Python-notebooks: Fraudedetectie, Marketingvoorspelling en Gegevensclassificatie nieuwsgroep

Regressie

Net als bij classificatie zijn regressietaken ook een algemene leertaak onder supervisie.

Afgezien van classificatie waarbij voorspelde uitvoerwaarden categorisch zijn, voorspellen regressiemodellen numerieke uitvoerwaarden op basis van onafhankelijke voorspellers. In regressie is het doel om te helpen de relatie tot stand te brengen tussen deze onafhankelijke voorspellingsvariabelen door te schatten hoe één variabele de andere beïnvloedt. Voorbeeld: de prijs van een auto op basis van functies zoals benzineverbruik en veiligheidsclassificatie. Meer informatie en bekijk een voorbeeld van regressie met geautomatiseerde machine learning (v1).

Bekijk voorbeelden van regressie en geautomatiseerde machine learning voor voorspellingen in deze Python-notebooks: CPU-prestatievoorspelling,

Prognoses met tijdreeksen

Het maken van prognoses maakt integraal onderdeel uit van elk bedrijf, of het nu gaat om omzet-, voorraad-, verkoop- of klantvraagprognoses. U kunt geautomatiseerde ML gebruiken om technieken en methoden van aanpak met elkaar te combineren om een aanbeveling voor een hoogwaardige tijdreeksprognose te krijgen. Meer informatie vindt u in deze procedure: geautomatiseerde machine learning voor tijdreeksprognoses (v1).

Een geautomatiseerd tijdreeksexperiment wordt behandeld als een multivariate regressieprobleem. Waarden uit de afgelopen tijdreeks worden 'pivoted' om samen met andere voorspellingsfactoren extra dimensies voor de regressor te worden. Deze benadering, in tegenstelling tot klassieke tijdreeksmethoden, heeft een voordeel van het natuurlijk opnemen van meerdere contextuele variabelen en hun relatie met elkaar tijdens de training. Geautomatiseerde ML leert één, maar vaak intern vertakt model voor alle items in de gegevensset en voorspellingshorizmen. Er zijn dus meer gegevens beschikbaar voor het schatten van modelparameters en het generaliseren van ongelezen reeksen wordt mogelijk.

Geavanceerde configuratie voor prognose omvat:

  • vakantiedetectie en featurization
  • time-series en DNN-cursisten (Auto-ARIMA, Prophet, ForecastTCN)
  • veel modellen ondersteunen via groeperen
  • kruisvalidatie rolling-origin
  • configureerbare vertragingen
  • functies voor aggregatie van doorlopende vensters

Bekijk voorbeelden van regressie en geautomatiseerde machine learning voor voorspellingen in deze Python-notebooks: Verkoopprognoses, Vraagprognose en Prognose van Dagelijkse actieve gebruikers van GitHub.

Computer Vision

Met ondersteuning voor Computer Vision-taken kunt u eenvoudig modellen genereren die zijn getraind op afbeeldingsgegevens voor scenario's zoals afbeeldingsclassificatie en objectdetectie.

Met deze mogelijkheid kunt u het volgende doen:

  • Naadloos integreren met de mogelijkheid voor gegevenslabels van Azure Machine Learning
  • Gelabelde gegevens gebruiken voor het genereren van afbeeldingsmodellen
  • Optimaliseer de modelprestaties door het modelalgoritmen op te geven en de hyperparameters af te stemmen.
  • Download of implementeer het resulterende model als een webservice in Azure Machine Learning.
  • Operationaliseer op schaal, waarbij gebruik wordt gemaakt van de mogelijkheden van Azure Machine Learning MLOps en ML Pipelines (v1 ).

Het ontwerpen van AutoML-modellen voor vision-taken wordt ondersteund via de Azure Machine Learning Python SDK. De resulterende experimententaken, modellen en uitvoer kunnen worden geopend vanuit de gebruikersinterface van Azure Machine Learning-studio.

Meer informatie over het instellen van AutoML-training voor Computer Vision-modellen.

Diagram showing resulting experiment from above.

Geautomatiseerde ML voor afbeeldingen ondersteunt de volgende Computer Vision-taken:

Taak Beschrijving
Afbeeldingsclassificatie met meerdere klassen Taken waarbij een afbeelding wordt geclassificeerd met slechts één label uit een set klassen, bijvoorbeeld dat elke afbeelding wordt geclassificeerd als een afbeelding van een 'kat' of een 'hond' of een 'hond'
Afbeeldingsclassificatie met meerdere labels Taken waarbij een afbeelding een of meer labels uit een set labels kan hebben, bijvoorbeeld een afbeelding kan worden gelabeld met zowel 'kat' als 'hond'
Objectdetectie Taken voor het identificeren van objecten in een afbeelding en het vinden van elk object met een begrensingsvak, bijvoorbeeld alle honden en katten in een afbeelding zoeken en een begrensingsvak rond elk object tekenen.
Instantiesegmentatie Taken voor het identificeren van objecten in een afbeelding op pixelniveau, het tekenen van een veelhoek rond elk object in de afbeelding.

Verwerking van natuurlijke taal: NLP

Met ondersteuning voor NLP-taken (Natural Language Processing) in geautomatiseerde ML kunt u eenvoudig modellen genereren die zijn getraind op tekstgegevens voor tekstclassificatie en scenario's voor benoemde entiteitsherkenning. Het ontwerpen van geautomatiseerde DOOR ML getrainde NLP-modellen wordt ondersteund via de Azure Machine Learning Python SDK. De resulterende experimententaken, modellen en uitvoer kunnen worden geopend vanuit de gebruikersinterface van Azure Machine Learning-studio.

De NLP-functie ondersteunt:

  • End-to-end deep neural network NLP training met de nieuwste vooraf getrainde BERT-modellen
  • Naadloze integratie met Azure Machine Learning-gegevenslabels
  • Gelabelde gegevens gebruiken voor het genereren van NLP-modellen
  • Meertalige ondersteuning met 104 talen
  • Gedistribueerde training met Horovod

Meer informatie over het instellen van AutoML-training voor NLP-modellen (v1).

Hoe geautomatiseerde ML werkt

Tijdens de training maakt Azure Machine Learning een aantal pijplijnen parallel die verschillende algoritmen en parameters voor u proberen. De service doorloopt ML-algoritmen die zijn gekoppeld aan functieselecties, waarbij elke iteratie een model produceert met een trainingsscore. Hoe hoger de score, hoe beter het model wordt beschouwd als 'passend' voor uw gegevens. Deze wordt gestopt zodra deze voldoet aan de afsluitcriteria die in het experiment zijn gedefinieerd.

Met Behulp van Azure Machine Learning kunt u uw geautomatiseerde ML-trainingsexperimenten ontwerpen en uitvoeren met de volgende stappen:

  1. Identificeer het ML-probleem dat moet worden opgelost: classificatie, prognose, regressie of computer vision.

  2. Kies of u de Python SDK of de studio-webervaring wilt gebruiken: meer informatie over de pariteit tussen de Python SDK en de studio-webervaring.

  3. Geef de bron en indeling van de gelabelde trainingsgegevens op: Numpy-matrices of Pandas-dataframe

  4. Configureer het rekendoel voor modeltraining, zoals uw lokale computer, Azure Machine Learning Computes, externe VM's of Azure Databricks met SDK v1.

  5. Configureer de geautomatiseerde machine learning-parameters die bepalen hoeveel iteraties er zijn voor verschillende modellen, hyperparameterinstellingen, geavanceerde preprocessing/featurization en welke metrische gegevens moeten worden bekeken bij het bepalen van het beste model.

  6. Dien de trainingstaak in.

  7. De resultaten bekijken

In het volgende diagram ziet u dit proces.

Screenshot showing resulting experiment from above.

U kunt ook de vastgelegde taakgegevens inspecteren, die metrische gegevens bevatten die tijdens de taak zijn verzameld. De trainingstaak produceert een geserialiseerd Python-object (.pkl bestand) dat het model en de voorverwerking van gegevens bevat.

Hoewel het bouwen van modellen geautomatiseerd is, kunt u ook leren hoe belangrijk of relevante functies zijn voor de gegenereerde modellen.

Richtlijnen voor lokale versus externe beheerde ML-rekendoelen

De webinterface voor geautomatiseerde ML maakt altijd gebruik van een extern rekendoel. Maar wanneer u de Python SDK gebruikt, kiest u een lokaal rekenproces of een extern rekendoel voor geautomatiseerde ML-training.

  • Lokale berekening: Training vindt plaats op uw lokale laptop of VM-rekenproces.
  • Extern berekenen: training vindt plaats op Machine Learning-rekenclusters.

Rekendoel kiezen

Houd rekening met deze factoren bij het kiezen van uw rekendoel:

  • Kies een lokale berekening: als uw scenario betrekking heeft op eerste verkenningen of demo's met behulp van kleine gegevens en korte treinen (d.w.w.v. seconden of een paar minuten per onderliggende taak), is training op uw lokale computer mogelijk een betere keuze. Er is geen installatietijd, de infrastructuurbronnen (uw pc of VM) zijn rechtstreeks beschikbaar.
  • Kies een extern ML-rekencluster: als u traint met grotere gegevenssets, zoals bij het maken van productietrainingen die langere treinen nodig hebben, biedt externe berekening veel betere end-to-end-prestaties, omdat AutoML treinen parallel worden uitgevoerd op de knooppunten van het cluster. Op een externe berekening wordt de opstarttijd voor de interne infrastructuur ongeveer 1,5 minuten per onderliggende taak toegevoegd, plus extra minuten voor de clusterinfrastructuur als de VM's nog niet actief zijn.

Voor- en nadelen

Houd rekening met deze voor- en nadelen bij het gebruik van lokale versus externe.

Voordelen (voordelen) Nadelen (handicaps)
Lokaal rekendoel
  • Geen opstarttijd voor omgeving
  • Subset van functies
  • Kan taken niet parallelliseren
  • Erger voor grote gegevens.
  • Geen gegevensstreaming tijdens het trainen
  • Geen op DNN gebaseerde featurization
  • Alleen Python SDK
  • Externe ML-rekenclusters
  • Volledige set functies
  • Onderliggende taken parallelliseren
  • Ondersteuning voor grote gegevens
  • Op DNN gebaseerde featurization
  • Dynamische schaalbaarheid van rekencluster op aanvraag
  • Er is ook geen code-ervaring (webgebruikersinterface) beschikbaar
  • Opstarttijd voor clusterknooppunten
  • Opstarttijd voor elke onderliggende taak
  • Beschikbaarheid van functies

    Er zijn meer functies beschikbaar wanneer u de externe berekening gebruikt, zoals wordt weergegeven in de onderstaande tabel.

    Functie Extern Lokaal
    Gegevensstreaming (ondersteuning voor grote gegevens, maximaal 100 GB)
    Op DNN-BERT gebaseerde tekstmetrisatie en training
    Out-of-the-box GPU-ondersteuning (training en deductie)
    Ondersteuning voor afbeeldingsclassificatie en -labels
    Auto-ARIMA-, Prophet- en ForecastTCN-modellen voor prognose
    Meerdere taken/iteraties parallel
    Modellen maken met interpreteerbaarheid in de gebruikersinterface van AutoML Studio
    Aanpassing van functie-engineering in de gebruikersinterface van studio-webervaring
    Afstemming van Hyperparameter in Azure Machine Learning
    Werkstroomondersteuning voor Azure Machine Learning-pijplijn
    Een taak voortzetten
    Prognoses opstellen
    Experimenten maken en uitvoeren in notebooks
    De gegevens en metrische gegevens van het experiment registreren en visualiseren in de gebruikersinterface
    Ingebouwde beveiligingsegels voor gegevens

    Trainings-, validatie- en testgegevens

    Met geautomatiseerde ML geeft u de trainingsgegevens op voor het trainen van ML-modellen en kunt u opgeven welk type modelvalidatie moet worden uitgevoerd. Geautomatiseerde ML voert modelvalidatie uit als onderdeel van de training. Geautomatiseerde ML maakt gebruik van validatiegegevens om modelhypparameters af te stemmen op basis van het toegepaste algoritme om de beste combinatie te vinden die het beste past bij de trainingsgegevens. Dezelfde validatiegegevens worden echter gebruikt voor elke iteratie van afstemming, waardoor modelevaluatievooroordelen worden geïntroduceerd, omdat het model de validatiegegevens blijft verbeteren en aanpassen.

    Om te bevestigen dat dergelijke vooroordelen niet worden toegepast op het uiteindelijke aanbevolen model, ondersteunt geautomatiseerde ML het gebruik van testgegevens om het uiteindelijke model te evalueren dat geautomatiseerde ML aan het einde van uw experiment aanbeveelt. Wanneer u testgegevens opgeeft als onderdeel van de configuratie van uw AutoML-experiment, wordt dit aanbevolen model standaard getest aan het einde van uw experiment (preview).

    Belangrijk

    Het testen van uw modellen met een testgegevensset om gegenereerde modellen te evalueren, is een preview-functie. Deze mogelijkheid is een experimentele preview-functie en kan op elk gewenst moment worden gewijzigd.

    Meer informatie over het configureren van AutoML-experimenten voor het gebruik van testgegevens (preview) met de SDK (v1) of met de Azure Machine Learning-studio.

    U kunt ook elk bestaand geautomatiseerd ML-model (preview) (v1) testen, inclusief modellen van onderliggende taken, door uw eigen testgegevens op te geven of door een deel van uw trainingsgegevens apart te zetten.

    Functie-engineering

    Functie-engineering is het proces van het gebruik van domeinkennis van de gegevens om functies te maken die ML-algoritmen helpen beter te leren. In Azure Machine Learning worden schaal- en normalisatietechnieken toegepast om functie-engineering te vergemakkelijken. Gezamenlijk worden deze technieken en functie-engineering aangeduid als featurization.

    Voor geautomatiseerde machine learning-experimenten wordt featurization automatisch toegepast, maar kan deze ook worden aangepast op basis van uw gegevens. Meer informatie over welke featurization is opgenomen (v1) en hoe AutoML helpt te voorkomen dat gegevens in uw modellen te veel passen en onevenwichtig zijn.

    Notitie

    Geautomatiseerde machine learning-featurisatiestappen (functienormalisatie, verwerking van ontbrekende gegevens, het converteren van tekst naar numeriek, enzovoort) worden onderdeel van het onderliggende model. Wanneer u het model voor voorspellingen gebruikt, worden dezelfde featurization-stappen die tijdens de training worden toegepast, automatisch toegepast op uw invoergegevens.

    Featurization aanpassen

    Er zijn ook aanvullende techniektechnieken voor functies beschikbaar, zoals codering en transformaties.

    Schakel deze instelling in met:

    Ensemblemodellen

    Geautomatiseerde machine learning ondersteunt ensemblemodellen, die standaard zijn ingeschakeld. Ensemble learning verbetert machine learning-resultaten en voorspellende prestaties door meerdere modellen te combineren in plaats van één model te gebruiken. De ensemble-iteraties worden weergegeven als de laatste iteraties van uw taak. Geautomatiseerde machine learning maakt gebruik van stem- en stacking ensemblemethoden voor het combineren van modellen:

    • Stem: voorspelt op basis van het gewogen gemiddelde van voorspelde klassenkansen (voor classificatietaken) of voorspelde regressiedoelen (voor regressietaken).
    • Stapelen: stapelen combineert heterogene modellen en traint een metamodel op basis van de uitvoer van de afzonderlijke modellen. De huidige standaardmetamodellen zijn LogisticRegression voor classificatietaken en ElasticNet voor regressie-/prognosetaken.

    Het caruana ensembleselectie-algoritme met gesorteerde ensemble-initialisatie wordt gebruikt om te bepalen welke modellen binnen het ensemble moeten worden gebruikt. Op hoog niveau initialiseert dit algoritme het ensemble met maximaal vijf modellen met de beste individuele scores en controleert of deze modellen binnen 5% van de beste score liggen om een slecht eerste ensemble te voorkomen. Vervolgens wordt voor elke ensemble-iteratie een nieuw model toegevoegd aan het bestaande ensemble en wordt de resulterende score berekend. Als een nieuw model de bestaande ensemblescore heeft verbeterd, wordt het ensemble bijgewerkt met het nieuwe model.

    Zie de instructies (v1) voor het wijzigen van standaard-ensembleinstellingen in geautomatiseerde machine learning.

    AutoML & ONNX

    Met Azure Machine Learning kunt u geautomatiseerde ML gebruiken om een Python-model te bouwen en te laten converteren naar de ONNX-indeling. Zodra de modellen de ONNX-indeling hebben, kunnen ze worden uitgevoerd op verschillende platforms en apparaten. Meer informatie over het versnellen van ML-modellen met ONNX.

    Bekijk hoe u kunt converteren naar ONNX-indeling in dit Jupyter-notebookvoorbeeld. Meer informatie over welke algoritmen worden ondersteund in ONNX (v1).

    De ONNX-runtime biedt ook ondersteuning voor C#, zodat u het model dat automatisch is gebouwd in uw C#-apps kunt gebruiken zonder dat u hoeft te worden hersteld of een van de netwerklatenties die REST-eindpunten introduceren. Meer informatie over het gebruik van een AutoML ONNX-model in een .NET-toepassing met ML.NET en het deducteren van ONNX-modellen met de ONNX Runtime C#-API.

    Volgende stappen

    Er zijn meerdere resources waarmee u aan de slag kunt met AutoML.

    Zelfstudies/ procedures

    Zelfstudies zijn end-to-end inleidende voorbeelden van AutoML-scenario's.

    Artikelen met procedures bieden aanvullende informatie over welke functionaliteit geautomatiseerde ML biedt. Bijvoorbeeld:

    Voorbeelden van Jupyter-notebooks

    Bekijk gedetailleerde codevoorbeelden en gebruiksvoorbeelden in de GitHub notebookopslagplaats voor geautomatiseerde machine learning voorbeelden.

    Naslaginformagtie over de Python-SDK

    Verdiep uw expertise op het gebied van SDK-ontwerppatronen en klassespecificaties met de naslagdocumentatie van de AutoML-klasse.

    Notitie

    Geautomatiseerde machine learning-mogelijkheden zijn ook beschikbaar in andere Microsoft-oplossingen, zoals ML.NET, HDInsight, Power BI en SQL Server