Gegevensmetrisatie in geautomatiseerde machine learning

VAN TOEPASSING OP: Python SDK azureml v1

Meer informatie over de instellingen voor gegevensmetralisatie in Azure Machine Learning en het aanpassen van deze functies voor geautomatiseerde machine learning-experimenten.

Functie-engineering en -featurization

Trainingsgegevens bestaan uit rijen en kolommen. Elke rij is een observatie of record en de kolommen van elke rij zijn de functies die elke record beschrijven. Normaal gesproken worden de functies die de patronen in de gegevens het beste karakteriseren, geselecteerd om voorspellende modellen te maken.

Hoewel veel van de onbewerkte gegevensvelden rechtstreeks kunnen worden gebruikt om een model te trainen, is het vaak nodig om extra (ontworpen) functies te maken die informatie bieden die beter onderscheid maakt tussen patronen in de gegevens. Dit proces wordt functie-engineering genoemd, waarbij het gebruik van domeinkennis van de gegevens wordt gebruikt om functies te maken die op hun beurt machine learning-algoritmen helpen om beter te leren.

In Azure Machine Learning worden technieken voor het schalen en normaliseren van gegevens toegepast om functie-engineering eenvoudiger te maken. Deze technieken en deze functie-engineering worden gezamenlijk featurization genoemd in geautomatiseerde ML-experimenten.

Vereisten

In dit artikel wordt ervan uitgegaan dat u al weet hoe u een geautomatiseerd ML-experiment configureert.

Belangrijk

Voor de Python-opdrachten in dit artikel is de meest recente azureml-train-automl pakketversie vereist.

Zie de volgende artikelen voor meer informatie over configuratie:

Featurization configureren

In elk geautomatiseerd machine learning-experiment worden automatisch schalen en normalisatietechnieken standaard toegepast op uw gegevens. Deze technieken zijn soorten featurization die bepaalde algoritmen helpen die gevoelig zijn voor functies op verschillende schalen. U kunt meer featurization inschakelen, zoals imputatie van ontbrekende waarden, codering en transformaties.

Notitie

Stappen voor geautomatiseerde machine learning-featurisatie (zoals functienormalisatie, het verwerken van ontbrekende gegevens of het converteren van tekst naar numeriek) worden onderdeel van het onderliggende model. Wanneer u het model gebruikt voor voorspellingen, worden dezelfde featurisatiestappen die tijdens de training worden toegepast, automatisch toegepast op uw invoergegevens.

Voor experimenten die u met de Python SDK configureert, kunt u de instelling voor featurisatie in- of uitschakelen en de stappen voor het uitvoeren van functies voor uw experiment verder opgeven. Als u de Azure Machine Learning-studio gebruikt, raadpleegt u de stappen voor het inschakelen van featurization.

In de volgende tabel ziet u de geaccepteerde instellingen voor featurization in de klasse AutoMLConfig:

Configuratie van featurization Beschrijving
"featurization": 'auto' Hiermee geeft u op dat, als onderdeel van voorverwerking, gegevensbeveiligings - en featurisatiestappen automatisch moeten worden uitgevoerd. Dit is de standaardinstelling.
"featurization": 'off' Hiermee geeft u op dat featurization-stappen niet automatisch moeten worden uitgevoerd.
"featurization": 'FeaturizationConfig' Hiermee geeft u op dat aangepaste featurization-stappen moeten worden gebruikt. Meer informatie over het aanpassen van featurization.

Automatische featurization

De volgende tabel bevat een overzicht van technieken die automatisch worden toegepast op uw gegevens. Deze technieken worden toegepast op experimenten die zijn geconfigureerd met behulp van de SDK of de gebruikersinterface van studio. Als u dit gedrag wilt uitschakelen, stelt u "featurization": 'off' dit in uw AutoMLConfig object in.

Notitie

Als u van plan bent om uw door AutoML gemaakte modellen te exporteren naar een ONNX-model, worden alleen de functies die worden aangegeven met een sterretje ('*') ondersteund in de ONNX-indeling. Meer informatie over het converteren van modellen naar ONNX.

Stappen voor featurisatie Beschrijving
Hoge kardinaliteit of geen afwijkingsfuncties verwijderen* Verwijder deze functies uit trainings- en validatiesets. Is van toepassing op functies waarbij alle waarden ontbreken, met dezelfde waarde in alle rijen of met een hoge kardinaliteit (bijvoorbeeld hashes, id's of GUID's).
Ontbrekende waarden invoeren* Voor numerieke functies moet u het gemiddelde van de waarden in de kolom invoeren.

Voor categorische functies moet u de meest voorkomende waarde opgeven.
Meer functies genereren* Voor datum/tijd-functies: Year, Month, Day, Day of week, Day of year, Quarter, Week of the year, Hour, Minute, Second.

Voor prognosetaken worden deze extra datum/tijd-functies gemaakt: ISO-jaar, Half - half jaar, Kalendermaand als tekenreeks, Week, Dag van de week als tekenreeks, Dag van kwartaal, Dag van het jaar, AM/PM (0 als uur vóór middag (12:0), 1 Anders), AM/PM als tekenreeks, Uur van de dag (basis van 12 uur)

Voor tekstfuncties: termfrequentie op basis van unigrammen, bigrams en trigrammen. Meer informatie over hoe dit wordt gedaan met BERT.
Transformeren en coderen* Transformeer numerieke functies met weinig unieke waarden in categorische functies.

One-hot codering wordt gebruikt voor categorische functies met een lage kardinaliteit. One-hot-hash-codering wordt gebruikt voor categorische functies met hoge kardinaliteit.
Word-insluitingen Een text featurizer converteert vectoren van teksttokens naar zinsvectoren met behulp van een vooraf getraind model. De insluitvector van elk woord in een document wordt samengevoegd met de rest om een documentfunctievector te produceren.
Clusterafstand Hiermee traint u een k-means-clusteringmodel op alle numerieke kolommen. Produceert k nieuwe functies (één nieuwe numerieke functie per cluster) die de afstand van elke steekproef tot het zwaartepunt van elk cluster bevatten.

In elk geautomatiseerd machine learning-experiment worden uw gegevens automatisch geschaald of genormaliseerd om algoritmen goed te laten presteren. Tijdens het trainen van modellen wordt een van de volgende schaal- of normalisatietechnieken toegepast op elk model.

Schalen en verwerken Beschrijving
StandardScaleWrapper Functies standaardiseren door het gemiddelde en schalen naar eenheidsvariantie te verwijderen
MinMaxScalar Transformeert functies door elke functie te schalen op het minimum en maximum van die kolom
MaxAbsScaler Elke functie schalen op de maximale absolute waarde
RobustScalar Schaalt functies op hun kwantielbereik
PCA Lineaire dimensionaliteitsvermindering met behulp van Decompositie van de gegevens om deze te projecteren op een lagere dimensionale ruimte
AfgekaptSVDWrapper Deze transformator voert lineaire dimensionaliteitsvermindering uit door middel van afgekapte enkelvoudige waardeontleding (SVD). In tegenstelling tot PCA centreren deze estimator de gegevens niet voordat de enkelvoudige waarde wordt gedecompositie, wat betekent dat deze efficiënt kan werken met scipy.sparse matrices
SparseNormalizer Elk monster (dat wil gezegd, elke rij van de gegevensmatrix) met ten minste één niet-nulonderdeel wordt onafhankelijk van andere steekproeven opnieuw geschaald, zodat de norm (l1 of l2) gelijk is aan één

Ingebouwde beveiligingsegels voor gegevens

Met gegevensbescherming kunt u potentiële problemen met uw gegevens identificeren (bijvoorbeeld ontbrekende waarden of onevenwichtige klassen). Ze helpen u ook corrigerende acties uit te voeren voor verbeterde resultaten.

Gegevensbeveiligingen worden toegepast:

  • Voor SDK-experimenten: Wanneer de parameters "featurization": 'auto' of validation=auto zijn opgegeven in uw AutoMLConfig object.
  • Voor studio-experimenten: wanneer automatische featurization is ingeschakeld.

U kunt de gegevensbescherming voor uw experiment bekijken:

  • Door in te stellen show_output=True wanneer u een experiment verzendt met behulp van de SDK.

  • Ga in de studio naar het tabblad Gegevensbeveiliging van uw geautomatiseerde ML-uitvoering.

Statussen van gegevensbescherming

Gegevensbeveiligingen geven een van de volgende drie statussen weer:

Provincie Beschrijving
Geslaagd Er zijn geen gegevensproblemen gedetecteerd en er is geen actie voor u vereist.
Gedaan Wijzigingen zijn toegepast op uw gegevens. We raden u aan om de corrigerende acties te bekijken die AutoML heeft uitgevoerd om ervoor te zorgen dat de wijzigingen overeenkomen met de verwachte resultaten.
Gewaarschuwd Er is een gegevensprobleem gedetecteerd, maar kan niet worden opgelost. We raden u aan het probleem te herzien en op te lossen.

Ondersteunde gegevensbeveiligingen

In de volgende tabel worden de gegevensbeveiligingen beschreven die momenteel worden ondersteund en de bijbehorende statussen die u kunt zien wanneer u uw experiment indient:

Veiligheidsrail Status Voorwaarde voor trigger
Ontbrekende functiewaarden imputatie Doorgegeven


Gereed
Er zijn geen ontbrekende functiewaarden gedetecteerd in uw trainingsgegevens. Meer informatie over het imputeren van ontbrekende waarden.

Ontbrekende functiewaarden zijn gedetecteerd in uw trainingsgegevens en zijn toegerekend.
Detectie van functies voor hoge kardinaliteit Doorgegeven


Gereed
Uw invoer is geanalyseerd en er zijn geen functies voor hoge kardinaliteit gedetecteerd.

Functies voor hoge kardinaliteit zijn gedetecteerd in uw invoer en zijn verwerkt.
Verwerking van validatiesplitsing Gereed De validatieconfiguratie is ingesteld op 'auto' en de trainingsgegevens bevatten minder dan 20.000 rijen.
Elke iteratie van het getrainde model is gevalideerd met behulp van kruisvalidatie. Meer informatie over validatiegegevens.

De validatieconfiguratie is ingesteld op 'auto'en de trainingsgegevens bevatten meer dan 20.000 rijen.
De invoergegevens zijn gesplitst in een trainingsgegevensset en een validatiegegevensset voor validatie van het model.
Detectie van klassenverdeling Doorgegeven



Gewaarschuwd


Gereed
Uw invoer is geanalyseerd en alle klassen worden verdeeld in uw trainingsgegevens. Een gegevensset wordt als evenwichtig beschouwd als elke klasse een goede weergave in de gegevensset heeft, zoals gemeten op aantal en verhouding van voorbeelden.

Er zijn onbalansklassen gedetecteerd in uw invoer. Los het taakverdelingsprobleem op om modelvooroordelen op te lossen. Meer informatie over onevenwichtige gegevens.

Er zijn onevenwichtige klassen gedetecteerd in uw invoer en de opruimende logica heeft vastgesteld dat er een balans moet worden toegepast.
Detectie van geheugenproblemen Doorgegeven



Gereed

De geselecteerde waarden (horizon, vertraging, rolling window) zijn geanalyseerd en er zijn geen potentiële problemen met onvoldoende geheugen gedetecteerd. Meer informatie over configuraties voor tijdreeksprognoses.


De geselecteerde waarden (horizon, vertraging, rolling window) zijn geanalyseerd en kunnen ertoe leiden dat uw experiment onvoldoende geheugen heeft. De configuraties voor vertraging of rolling-window zijn uitgeschakeld.
Frequentiedetectie Doorgegeven



Gereed

De tijdreeks is geanalyseerd en alle gegevenspunten worden afgestemd op de gedetecteerde frequentie.

De tijdreeks is geanalyseerd en gegevenspunten die niet overeenkomen met de gedetecteerde frequentie, zijn gedetecteerd. Deze gegevenspunten zijn verwijderd uit de gegevensset.
Kruisvalidatie Gereed Om de modellen die zijn getraind door AutoML nauwkeurig te evalueren, maken we gebruik van een gegevensset waarop het model niet is getraind. Als de gebruiker dus geen expliciete validatiegegevensset opgeeft, wordt een deel van de trainingsgegevensset gebruikt om dit te bereiken. Voor kleinere gegevenssets (minder dan 20.000 voorbeelden) wordt kruisvalidatie gebruikt, anders wordt één bewaringsset gesplitst van de trainingsgegevens om te fungeren als de validatiegegevensset. Daarom maken we voor uw invoergegevens gebruik van kruisvalidatie met 10 vouwen, als het aantal trainingsvoorbeelden minder dan 1000 is en 3 vouwen in alle andere gevallen.
Gegevens splitsen trainen-testen Gereed Om de modellen die zijn getraind door AutoML nauwkeurig te evalueren, maken we gebruik van een gegevensset waarop het model niet is getraind. Als de gebruiker dus geen expliciete validatiegegevensset opgeeft, wordt een deel van de trainingsgegevensset gebruikt om dit te bereiken. Voor kleinere gegevenssets (minder dan 20.000 voorbeelden) wordt kruisvalidatie gebruikt, anders wordt één bewaringsset gesplitst van de trainingsgegevens om te fungeren als de validatiegegevensset. Uw invoergegevens zijn daarom gesplitst in een trainingsgegevensset en een validatiegegevensset voor bewaring.
Detectie van tijdreeks-id's Doorgegeven



Vast

De gegevensset is geanalyseerd en er is geen dubbele tijdindex gedetecteerd.

Er zijn meerdere tijdreeksen gevonden in de gegevensset en de tijdreeks-id's zijn automatisch gemaakt voor uw gegevensset.
Tijdreeksaggregatie Doorgegeven



Vast

De frequentie van de gegevensset wordt afgestemd op de door de gebruiker opgegeven frequentie. Er is geen aggregatie uitgevoerd.

De gegevens zijn samengevoegd om te voldoen aan de door de gebruiker opgegeven frequentie.
Verwerking van korte reeksen Doorgegeven



Vast

Geautomatiseerde ML heeft voldoende gegevenspunten gedetecteerd voor elke reeks in de invoergegevens om door te gaan met de training.

Geautomatiseerde ML heeft gedetecteerd dat sommige reeksen onvoldoende gegevenspunten bevatten om een model te trainen. Om door te gaan met trainen, zijn deze korte reeksen verwijderd of opgevuld.

Featurization aanpassen

U kunt uw featurization-instellingen aanpassen om ervoor te zorgen dat de gegevens en functies die worden gebruikt om uw ML-model te trainen, resulteren in relevante voorspellingen.

Als u featurizations wilt aanpassen, geeft u "featurization": FeaturizationConfig dit op in uw AutoMLConfig object. Als u de Azure Machine Learning-studio voor uw experiment gebruikt, raadpleegt u het artikel instructies. Als u featurization voor taaktypen voor prognoses wilt aanpassen, raadpleegt u de instructies voor prognoses.

Ondersteunde aanpassingen zijn onder andere:

Aanpassing Definitie
Update van kolomdoel Overschrijf het automatisch gedetecteerde functietype voor de opgegeven kolom.
Parameterupdate voor transformatieprogramma Werk de parameters voor de opgegeven transformator bij. Ondersteunt momenteel Imputer (gemiddelde, meest frequent en mediaan) en HashOneHotEncoder.
Kolommen neerzetten Hiermee geeft u kolommen die moeten worden neergezet van worden gemetraliseerd.
Bloktransformatoren Hiermee geeft u bloktransformaties op die moeten worden gebruikt in het featurization-proces.

Notitie

De functionaliteit voor neerzetkolommen is afgeschaft vanaf SDK-versie 1.19. Verwijder kolommen uit uw gegevensset als onderdeel van het opschonen van gegevens voordat u deze in uw geautomatiseerde ML-experiment gebruikt.

Maak het FeaturizationConfig object met behulp van API-aanroepen:

featurization_config = FeaturizationConfig()
featurization_config.blocked_transformers = ['LabelEncoder']
featurization_config.drop_columns = ['aspiration', 'stroke']
featurization_config.add_column_purpose('engine-size', 'Numeric')
featurization_config.add_column_purpose('body-style', 'CategoricalHash')
#default strategy mean, add transformer param for 3 columns
featurization_config.add_transformer_params('Imputer', ['engine-size'], {"strategy": "median"})
featurization_config.add_transformer_params('Imputer', ['city-mpg'], {"strategy": "median"})
featurization_config.add_transformer_params('Imputer', ['bore'], {"strategy": "most_frequent"})
featurization_config.add_transformer_params('HashOneHotEncoder', [], {"number_of_bits": 3})

Transparantie van featurization

Elk AutoML-model heeft automatisch featurization toegepast. Featurization omvat geautomatiseerde functie-engineering (wanneer "featurization": 'auto') en schalen en normalisatie, wat vervolgens van invloed is op het geselecteerde algoritme en de hyperparameterwaarden. AutoML ondersteunt verschillende methoden om ervoor te zorgen dat u inzicht hebt in wat er op uw model is toegepast.

Bekijk dit voorbeeld van prognose:

  • Er zijn vier invoerfuncties: A (numeriek), B (numeriek), C (numeriek), D (datum/tijd).
  • Numerieke functie C wordt verwijderd omdat het een id-kolom is met alle unieke waarden.
  • Numerieke kenmerken A en B hebben ontbrekende waarden en worden daarom door het gemiddelde toegerekend.
  • DateTime-functie D is opgenomen in 11 verschillende functies die zijn ontworpen.

Gebruik de uitvoer van uw fitted_model geautomatiseerde ML-experimentuitvoering om deze informatie op te halen.

automl_config = AutoMLConfig(…)
automl_run = experiment.submit(automl_config …)
best_run, fitted_model = automl_run.get_output()

Geautomatiseerde functie-engineering

De get_engineered_feature_names() functie retourneert een lijst met ontworpen functienamen.

Notitie

Gebruik timeseriestransformer voor task='forecasting', anders gebruikt u 'datatransformer' voor de taak 'regressie' of 'classificatie'.

fitted_model.named_steps['timeseriestransformer']. get_engineered_feature_names ()

Deze lijst bevat alle ontworpen functienamen.

['A', 'B', 'A_WASNULL', 'B_WASNULL', 'year', 'half', 'quarter', 'month', 'day', 'hour', 'am_pm', 'hour12', 'wday', 'qday', 'week']

De get_featurization_summary() functie krijgt een overzicht van alle invoerfuncties.

fitted_model.named_steps['timeseriestransformer'].get_featurization_summary()

Uitvoer

[{'RawFeatureName': 'A',
  'TypeDetected': 'Numeric',
  'Dropped': 'No',
  'EngineeredFeatureCount': 2,
  'Tranformations': ['MeanImputer', 'ImputationMarker']},
 {'RawFeatureName': 'B',
  'TypeDetected': 'Numeric',
  'Dropped': 'No',
  'EngineeredFeatureCount': 2,
  'Tranformations': ['MeanImputer', 'ImputationMarker']},
 {'RawFeatureName': 'C',
  'TypeDetected': 'Numeric',
  'Dropped': 'Yes',
  'EngineeredFeatureCount': 0,
  'Tranformations': []},
 {'RawFeatureName': 'D',
  'TypeDetected': 'DateTime',
  'Dropped': 'No',
  'EngineeredFeatureCount': 11,
  'Tranformations': ['DateTime','DateTime','DateTime','DateTime','DateTime','DateTime','DateTime','DateTime','DateTime','DateTime','DateTime']}]
Uitvoer Definitie
RawFeatureName Invoerfunctie/kolomnaam uit de opgegeven gegevensset.
TypeDetected Er is een gegevenstype van de invoerfunctie gedetecteerd.
Gedaald Geeft aan of de invoerfunctie is verwijderd of gebruikt.
EngineeringFeatureCount Aantal functies dat wordt gegenereerd via geautomatiseerde functie-engineeringtransformaties.
Transformaties Lijst met transformaties die zijn toegepast op invoerfuncties om ontworpen functies te genereren.

Schalen en normaliseren

Als u inzicht wilt hebben in het schalen/normaliseren en het geselecteerde algoritme met de bijbehorende hyperparameterwaarden, gebruikt u fitted_model.steps.

De volgende voorbeelduitvoer wordt uitgevoerd fitted_model.steps voor een gekozen uitvoering:

[('RobustScaler', 
  RobustScaler(copy=True, 
  quantile_range=[10, 90], 
  with_centering=True, 
  with_scaling=True)), 

  ('LogisticRegression', 
  LogisticRegression(C=0.18420699693267145, class_weight='balanced', 
  dual=False, 
  fit_intercept=True, 
  intercept_scaling=1, 
  max_iter=100, 
  multi_class='multinomial', 
  n_jobs=1, penalty='l2', 
  random_state=None, 
  solver='newton-cg', 
  tol=0.0001, 
  verbose=0, 
  warm_start=False))

Gebruik deze helperfunctie voor meer informatie:

from pprint import pprint

def print_model(model, prefix=""):
    for step in model.steps:
        print(prefix + step[0])
        if hasattr(step[1], 'estimators') and hasattr(step[1], 'weights'):
            pprint({'estimators': list(e[0] for e in step[1].estimators), 'weights': step[1].weights})
            print()
            for estimator in step[1].estimators:
                print_model(estimator[1], estimator[0]+ ' - ')
        elif hasattr(step[1], '_base_learners') and hasattr(step[1], '_meta_learner'):
            print("\nMeta Learner")
            pprint(step[1]._meta_learner)
            print()
            for estimator in step[1]._base_learners:
                print_model(estimator[1], estimator[0]+ ' - ')
        else:
            pprint(step[1].get_params())
            print()   

Deze helperfunctie retourneert de volgende uitvoer voor een bepaalde uitvoering met behulp van LogisticRegression with RobustScalar het specifieke algoritme.

RobustScaler
{'copy': True,
'quantile_range': [10, 90],
'with_centering': True,
'with_scaling': True}

LogisticRegression
{'C': 0.18420699693267145,
'class_weight': 'balanced',
'dual': False,
'fit_intercept': True,
'intercept_scaling': 1,
'max_iter': 100,
'multi_class': 'multinomial',
'n_jobs': 1,
'penalty': 'l2',
'random_state': None,
'solver': 'newton-cg',
'tol': 0.0001,
'verbose': 0,
'warm_start': False}

Klassekans voorspellen

Modellen die worden geproduceerd met geautomatiseerde ML hebben allemaal wrapperobjecten die functionaliteit spiegelen van hun opensource-oorsprongklasse. De meeste wrapperobjecten voor classificatiemodellen die worden geretourneerd door geautomatiseerde ML implementeren de predict_proba() functie, die een matrixachtige of sparsematrixgegevensvoorbeeld van uw functies (X-waarden) accepteert en een n-dimensionale matrix van elke steekproef en de bijbehorende klassekans retourneert.

Ervan uitgaande dat u het beste uitgevoerde en aangepaste model hebt opgehaald met behulp van dezelfde aanroepen van hierboven, kunt u rechtstreeks vanuit het aangepaste model bellen predict_proba() , waarbij een X_test voorbeeld in de juiste indeling wordt opgegeven, afhankelijk van het modeltype.

best_run, fitted_model = automl_run.get_output()
class_prob = fitted_model.predict_proba(X_test)

Als het onderliggende model de predict_proba() functie niet ondersteunt of de indeling onjuist is, wordt er een modelklassespecifieke uitzondering gegenereerd. Zie de referentiedocumenten RandomForestClassifier en XGBoost voor voorbeelden van hoe deze functie wordt geïmplementeerd voor verschillende modeltypen.

BERT-integratie in geautomatiseerde ML

BERT wordt gebruikt in de featurization-laag van geautomatiseerde ML. Als een kolom in deze laag vrije tekst of andere typen gegevens bevat, zoals tijdstempels of eenvoudige getallen, wordt featurization dienovereenkomstig toegepast.

Het model is voor BERT afgestemd en getraind met behulp van de door de gebruiker geleverde labels. Hier worden documentinsluitingen uitgevoerd als functies naast andere functies, zoals functies op basis van tijdstempels, dag van de week.

Meer informatie over het instellen van NLP-experimenten (Natural Language Processing) die ook BERT gebruiken met geautomatiseerde ML.

Stappen voor het aanroepen van BERT

Als u BERT wilt aanroepen, stelt enable_dnn: True u deze in uw automl_settings en gebruikt u een GPU-rekenproces (vm_size = "STANDARD_NC6" of een hogere GPU). Als een CPU-rekenproces wordt gebruikt, schakelt AutoML in plaats van BERT de BiLSTM DNN-featurizer in.

Geautomatiseerde ML voert de volgende stappen uit voor BERT.

  1. Voorverwerking en tokenisatie van alle tekstkolommen. De transformer 'StringCast' is bijvoorbeeld te vinden in het uiteindelijke overzicht van de featurization van het model. In dit notebook vindt u een voorbeeld van het produceren van de overzichtssamenvatting van het model.

  2. Voeg alle tekstkolommen samen in één tekstkolom, vandaar het StringConcatTransformer in het uiteindelijke model.

    Onze implementatie van BERT beperkt de totale tekstlengte van een trainingsvoorbeeld tot 128 tokens. Dat betekent dat alle tekstkolommen wanneer ze worden samengevoegd, in het ideale geval maximaal 128 tokens lang moeten zijn. Als er meerdere kolommen aanwezig zijn, moet elke kolom worden verwijderd, zodat aan deze voorwaarde wordt voldaan. Anders worden voor samengevoegde kolommen met lengte >128 tokens BERT's tokenizer-laag deze invoer afgekapt tot 128 tokens.

  3. Als onderdeel van het opruimen van functies vergelijkt AutoML BERT met de basislijn (zak woordenfuncties) op een voorbeeld van de gegevens. Deze vergelijking bepaalt of BERT nauwkeurigheidsverbeteringen zou geven. Als BERT beter presteert dan de basislijn, gebruikt AutoML vervolgens BERT voor tekstmetralisatie voor de hele gegevens. In dat geval ziet u het PretrainedTextDNNTransformer in het uiteindelijke model.

BERT draait over het algemeen langer dan andere featurizers. Voor betere prestaties raden we u aan om 'STANDARD_NC24r' of 'STANDARD_NC24rs_V3' te gebruiken voor hun RDMA-mogelijkheden.

AutoML distribueert BERT-training over meerdere knooppunten als deze beschikbaar zijn (maximaal acht knooppunten). U kunt dit doen in uw AutoMLConfig object door de max_concurrent_iterations parameter in te stellen op hoger dan 1.

Ondersteunde talen voor BERT in AutoML

AutoML ondersteunt momenteel ongeveer 100 talen en afhankelijk van de taal van de gegevensset kiest AutoML het juiste BERT-model. Voor Duitse gegevens gebruiken we het Duitse BERT-model. Voor Engels gebruiken we het Engelse BERT-model. Voor alle andere talen gebruiken we het meertalige BERT-model.

In de volgende code wordt het Duitse BERT-model geactiveerd, omdat de gegevenssettaal is opgegeven op deu, de drieletterige taalcode voor Duits volgens ISO-classificatie:

from azureml.automl.core.featurization import FeaturizationConfig

featurization_config = FeaturizationConfig(dataset_language='deu')

automl_settings = {
    "experiment_timeout_minutes": 120,
    "primary_metric": 'accuracy',
# All other settings you want to use
    "featurization": featurization_config,
    
    "enable_dnn": True, # This enables BERT DNN featurizer
    "enable_voting_ensemble": False,
    "enable_stack_ensemble": False
}

Volgende stappen