Definizione delle funzionalità dei dati in Machine Learning automatizzato

SI APPLICA A:Python SDK azureml v1

Informazioni sulle impostazioni di definizione delle funzionalità dei dati in Azure Machine Learning e su come personalizzare tali funzionalità per esperimenti di Machine Learning automatizzati.

Progettazione e funzionalità delle funzionalità

I dati di training sono costituiti da righe e colonne. Ogni riga è un'osservazione o un record e le colonne di ogni riga sono le caratteristiche che descrivono ogni record. In genere, le funzionalità che meglio caratterizzano i modelli nei dati vengono selezionate per creare modelli predittivi.

Anche se molti dei campi dati non elaborati possono essere usati direttamente per eseguire il training di un modello, spesso è necessario creare funzionalità aggiuntive (progettata) che forniscono informazioni che differenziano meglio i modelli nei dati. Questo processo è chiamato progettazione di funzionalità, in cui l'uso della conoscenza del dominio dei dati viene sfruttato per creare funzionalità che, a loro volta, consentono agli algoritmi di Machine Learning di apprendere meglio.

In Azure Machine Learning, le tecniche di ridimensionamento dei dati e normalizzazione vengono applicate per semplificare la progettazione delle funzionalità. Collettivamente, queste tecniche e questa progettazione di funzionalità sono denominate funzionalità negli esperimenti automatizzati di Machine Learning.

Prerequisiti

Questo articolo presuppone che si sappia già come configurare un esperimento di Machine Learning automatizzato.

Importante

I comandi Python in questo articolo richiedono la versione più recente azureml-train-automl del pacchetto.

Per informazioni sulla configurazione, vedere gli articoli seguenti:

Configurare la definizione delle funzionalità

In ogni esperimento di Machine Learning automatizzato, le tecniche di ridimensionamento automatico e normalizzazione vengono applicate ai dati per impostazione predefinita. Queste tecniche sono tipi di funzionalità che aiutano determinati algoritmi sensibili alle funzionalità su scale diverse. È possibile abilitare più funzionalità, ad esempio l'imputazione di valori mancanti, la codifica e le trasformazioni.

Nota

I passaggi per la definizione automatizzata delle funzionalità di Machine Learning ,ad esempio la normalizzazione delle funzionalità, la gestione dei dati mancanti o la conversione di testo in numeri, diventano parte del modello sottostante. Quando si usa il modello per le stime, gli stessi passaggi di definizione delle caratteristiche applicati durante il training vengono applicati automaticamente ai dati di input.

Per gli esperimenti configurati con Python SDK, è possibile abilitare o disabilitare l'impostazione di definizione delle funzionalità e specificare ulteriormente i passaggi di definizione delle funzionalità da usare per l'esperimento. Se si usa il studio di Azure Machine Learning, vedere la procedura per abilitare la definizione delle funzionalità.

La tabella seguente illustra le impostazioni accettate per featurization nella classe AutoMLConfig:

Configurazione delle funzionalità Descrizione
"featurization": 'auto' Specifica che, come parte della pre-elaborazione, i controlli dati e ipassaggi di definizione delle caratteristiche devono essere eseguiti automaticamente. Questa è l'impostazione predefinita.
"featurization": 'off' Specifica che i passaggi di definizione delle caratteristiche non devono essere eseguiti automaticamente.
"featurization": 'FeaturizationConfig' Specifica che devono essere usati i passaggi di definizione delle caratteristiche personalizzati. Informazioni su come personalizzare la definizione delle funzionalità.

Automatic featurization (Definizione automatica funzionalità)

La tabella seguente riepiloga le tecniche applicate automaticamente ai dati. Queste tecniche vengono applicate per gli esperimenti configurati usando l'SDK o l'interfaccia utente di Studio. Per disabilitare questo comportamento, impostare "featurization": 'off' nell'oggetto AutoMLConfig .

Nota

Se si prevede di esportare i modelli creati automaticamente in un modello ONNX, nel formato ONNX sono supportate solo le opzioni di definizione delle caratteristiche indicate con un asterisco ("*"). Altre informazioni sulla conversione di modelli in ONNX.

Passaggi di definizione delle funzionalità Descrizione
Eliminare le caratteristiche di cardinalità elevata o nessuna varianza* Eliminare queste funzionalità dai set di training e di convalida. Si applica alle funzionalità con tutti i valori mancanti, con lo stesso valore in tutte le righe o con cardinalità elevata (ad esempio hash, ID o GUID).
Imputa valori mancanti* Per le funzionalità numeriche, imputare con la media dei valori nella colonna.

Per le funzionalità categorica, imputare con il valore più frequente.
Generare altre funzionalità* Per le caratteristiche di tipo DateTime: anno, mese, giorno, giorno della settimana, giorno dell'anno, trimestre, settimana dell'anno, ora, minuti, secondi.

Per le attività di previsione, vengono create queste funzionalità DateTime aggiuntive: ISO year, Half - half-year, Calendar month as string, Week, Day of week as string, Day of quarter, Day of year, AM/PM (0 if hour is before noon (12 pm), 1 in caso contrario, AM/PM as string, Hour of day (12-hr basis)

Per le funzionalità di testo: frequenza dei termini basata su unigrammi, bigram e trigrammi. Altre informazioni su come questa operazione viene eseguita con BERT.
Trasformare e codificare* Trasformare le funzionalità numeriche con pochi valori univoci in funzionalità categoriche.

La codifica one-hot viene usata per le funzionalità categoriche a bassa cardinalità. La codifica hash one-hot viene usata per le funzionalità categoriche a cardinalità elevata.
Incorporamenti di parole Un visualizzatore di funzionalità di testo converte i vettori di token di testo in vettori di frase usando un modello con training preliminare. Il vettore di incorporamento di ogni parola in un documento viene aggregato con il resto per produrre un vettore di funzionalità del documento.
Distanza cluster Esegue il training di un modello di clustering k-means su tutte le colonne numeriche. Produce k nuove funzionalità (una nuova funzionalità numerica per cluster) che contengono la distanza di ogni campione al centroide di ogni cluster.

In ogni esperimento di Machine Learning automatizzato, i dati vengono ridimensionati o normalizzati automaticamente per consentire il corretto funzionamento degli algoritmi. Durante il training del modello, una delle tecniche di ridimensionamento o normalizzazione seguenti viene applicata a ogni modello.

Elaborazione del ridimensionamento & Descrizione
StandardScaleWrapper Consente di standardizzare le funzionalità rimuovendo la media e il ridimensionando alla varianza unitaria
MinMaxScalar Consente di trasformare le funzionalità ridimensionando ogni funzionalità in base al valore minimo e massimo della colonna
MaxAbsScaler Consente di ridimensionare ogni funzionalità in base al valore massimo assoluto
RobustScalar Ridimensiona le caratteristiche in base all'intervallo quantile
PCA Consente di ridurre la dimensionalità lineare mediante scomposizione di valori singolari dei dati per proiettarla in uno spazio di dimensioni inferiori
TruncatedSVDWrapper Consente di eseguire la riduzione della dimensionalità lineare per mezzo della scomposizione del valore singolare troncato (SVD). Contrariamente a PCA, questo estimatore non centra i dati prima di calcolare la scomposizione del valore singolare, può quindi funzionare con le matrici scipy.sparse in modo efficiente
SparseNormalizer Ogni esempio, ovvero ogni riga della matrice di dati, con almeno un componente diverso da zero, viene ridimensionato indipendentemente dagli altri esempi, in modo che la relativa norma (l1 o l2) sia uguale a uno

Protezione dati

Le protezioni dei dati consentono di identificare potenziali problemi con i dati, ad esempio valori mancanti o sbilanciamento della classe. Consentono inoltre di intraprendere azioni correttive per migliorare i risultati.

Vengono applicate le protezioni dei dati:

  • Per gli esperimenti SDK: quando i "featurization": 'auto' parametri o validation=auto vengono specificati nell'oggetto AutoMLConfig .
  • Per gli esperimenti di Studio: quando la funzionalità automatica è abilitata.

È possibile esaminare le protezioni dei dati per l'esperimento:

  • Impostando show_output=True quando si invia un esperimento usando l'SDK.

  • Nello studio, nella scheda Protezione dati dell'esecuzione automatica di MACHINE Learning.

Stati di protezione dei dati

I protezioni dati visualizzano uno dei tre stati seguenti:

State Descrizione
Riuscito Non sono stati rilevati problemi di dati e non è richiesta alcuna azione da parte dell'utente.
Completato Le modifiche sono state applicate ai dati. È consigliabile esaminare le azioni correttive eseguite da AutoML per assicurarsi che le modifiche siano allineate ai risultati previsti.
Avvisato È stato rilevato un problema di dati, ma non è stato possibile risolverlo. È consigliabile rivedere e risolvere il problema.

Protezioni dei dati supportate

La tabella seguente descrive le protezioni dei dati attualmente supportate e gli stati associati che potrebbero essere visualizzati quando si invia l'esperimento:

Protezione Stato Condizione per il trigger
Imputazione di valori di funzionalità mancanti Passed


Fine
Nei dati di training non sono stati rilevati valori di funzionalità mancanti. Altre informazioni sull'imputazione di valori mancanti.

I valori delle funzionalità mancanti sono stati rilevati nei dati di training e sono stati imputati.
Rilevamento delle funzionalità di cardinalità elevata Passed


Fine
Gli input sono stati analizzati e non sono state rilevate funzionalità di cardinalità elevata.

Le funzionalità a cardinalità elevata sono state rilevate negli input e sono state gestite.
Gestione della suddivisione della convalida Fine La configurazione di convalida è stata impostata su 'auto' e i dati di training contengono meno di 20.000 righe.
Ogni iterazione del modello sottoposto a training è stata convalidata usando la convalida incrociata. Altre informazioni sui dati di convalida.

La configurazione di convalida è stata impostata su 'auto'e i dati di training contengono più di 20.000 righe.
I dati di input sono stati suddivisi in un set di dati di training e un set di dati di convalida per la convalida del modello.
Rilevamento bilanciamento classi Passed



Avvisato


Fine
Gli input sono stati analizzati e tutte le classi sono bilanciate nei dati di training. Un set di dati viene considerato bilanciato se ogni classe ha una buona rappresentazione nel set di dati, misurata in base al numero e al rapporto dei campioni.

Sono state rilevate classi non bilanciate negli input. Per correggere la distorsione del modello, risolvere il problema di bilanciamento. Altre informazioni sui dati sbilanciati.

Sono state rilevate classi sbilanciate negli input e la logica di sweep ha determinato l'applicazione del bilanciamento.
Rilevamento dei problemi di memoria Passed



Fine

I valori selezionati (orizzonte, ritardo, finestra mobile) sono stati analizzati e non sono stati rilevati potenziali problemi di memoria insufficiente. Altre informazioni sulle configurazioni di previsione delle serie temporali.


I valori selezionati (orizzonte, ritardo, finestra in sequenza) sono stati analizzati e potrebbero causare la perdita di memoria dell'esperimento. Le configurazioni di ritardo o finestra in sequenza sono state disattivate.
Rilevamento della frequenza Passed



Fine

La serie temporale è stata analizzata e tutti i punti dati sono allineati alla frequenza rilevata.

La serie temporale è stata analizzata e sono stati rilevati punti dati che non sono allineati alla frequenza rilevata. Questi punti dati sono stati rimossi dal set di dati.
Convalida incrociata Fine Per valutare in modo accurato i modelli sottoposti a training da AutoML, viene usato un set di dati su cui non è stato eseguito il training del modello. Di conseguenza, se l'utente non fornisce un set di dati di convalida esplicito, viene usata una parte del set di dati di training per ottenere questo risultato. Per i set di dati più piccoli (meno di 20.000 campioni), viene usata la convalida incrociata. In caso contrario, un singolo set di blocco viene suddiviso dai dati di training da usare come set di dati di convalida. Di conseguenza, per i dati di input si sfrutta la convalida incrociata con 10 riduzioni, se il numero di campioni di training è inferiore a 1000 e 3 riduzioni in tutti gli altri casi.
Suddivisione dei dati di training-test Fine Per valutare in modo accurato i modelli sottoposti a training da AutoML, viene usato un set di dati su cui non è stato eseguito il training del modello. Di conseguenza, se l'utente non fornisce un set di dati di convalida esplicito, viene usata una parte del set di dati di training per ottenere questo risultato. Per i set di dati più piccoli (meno di 20.000 campioni), viene usata la convalida incrociata. In caso contrario, un singolo set di blocco viene suddiviso dai dati di training da usare come set di dati di convalida. Di conseguenza, i dati di input sono stati suddivisi in un set di dati di training e in un set di dati di convalida di controllo.
Rilevamento dell'ID serie temporale Passed



Fisso

Il set di dati è stato analizzato e non è stato rilevato alcun indice temporale duplicato.

Nel set di dati sono stati trovati più serie temporali e gli identificatori delle serie temporali sono stati creati automaticamente per il set di dati.
Aggregazione di serie temporali Passed



Fisso

La frequenza del set di dati è allineata alla frequenza specificata dall'utente. Nessuna aggregazione eseguita.

I dati sono stati aggregati per rispettare la frequenza fornita dall'utente.
Gestione di serie brevi Passed



Fisso

Machine Learning automatizzato ha rilevato punti dati sufficienti per ogni serie nei dati di input per continuare con il training.

Machine Learning automatizzato ha rilevato che alcune serie non contengono punti dati sufficienti per eseguire il training di un modello. Per continuare con l'allenamento, queste brevi serie sono state eliminate o riempite.

Personalizzare le funzionalità

È possibile personalizzare le impostazioni di definizione delle funzionalità per assicurarsi che i dati e le funzionalità usati per eseguire il training del modello di Machine Learning comportino stime pertinenti.

Per personalizzare le caratteristiche, specificare "featurization": FeaturizationConfig nell'oggetto AutoMLConfig . Se si usa il studio di Azure Machine Learning per l'esperimento, vedere l'articolo procedure. Per personalizzare le funzionalità per i tipi di attività di previsione, fare riferimento alla procedura di previsione.

Le personalizzazioni supportate includono:

Personalizzazione Definizione
Aggiornamento dello scopo della colonna Eseguire l'override del tipo di funzionalità rilevata automaticamente per la colonna specificata.
Aggiornamento dei parametri del trasformatore Aggiornare i parametri per il trasformatore specificato. Attualmente supporta Imputer (media, più frequente e mediano) e HashOneHotEncoder.
Eliminazione delle colonne Specifica le colonne da eliminare dalla definizione delle funzionalità.
Blocco dei trasformatori Specifica i trasformatori a blocchi da usare nel processo di funzionalità.

Nota

La funzionalità colonne di rilascio è deprecata a partire dalla versione 1.19 di SDK. Eliminare colonne dal set di dati come parte della pulizia dei dati, prima di usarla nell'esperimento di Machine Learning automatizzato.

Creare l'oggetto FeaturizationConfig usando chiamate API:

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 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})

Trasparenza della funzionalità

Ogni modello AutoML ha automaticamente applicato la funzionalità. La funzionalità include la progettazione automatica delle funzionalità (quando "featurization": 'auto') e la normalizzazione e il ridimensionamento, che influiscono quindi sull'algoritmo selezionato e sui relativi valori iperparametri. AutoML supporta diversi metodi per assicurarsi di avere visibilità su ciò che è stato applicato al modello.

Si consideri questo esempio di previsione:

  • Esistono quattro funzionalità di input: A (Numeric), B (Numeric), C (Numeric), D (DateTime).
  • La funzionalità numerica C viene eliminata perché è una colonna ID con tutti i valori univoci.
  • Le funzionalità numeriche A e B hanno valori mancanti e quindi vengono imputati per mezzo.
  • La funzionalità DateTime D è caratterizzata da 11 diverse funzionalità ingegnerizzate.

Per ottenere queste informazioni, usare l'output dell'esecuzione automatica dell'esperimento fitted_model ml.

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

Definizione delle funzionalità automatizzata

Restituisce get_engineered_feature_names() un elenco di nomi di funzionalità ingegneriati.

Nota

Usare 'timeseriestransformer' per task='forecasting' oppure usare 'datatransformer' per l'attività 'regression' o 'classification'.

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

Questo elenco include tutti i nomi delle funzionalità definite.

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

Ottiene get_featurization_summary() un riepilogo della funzionalità di tutte le funzionalità di input.

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

Output

[{'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']}]
Output Definizione
RawFeatureName Nome della funzionalità o della colonna di input del set di dati specificato.
TypeDetected Tipo di dati rilevato della funzionalità di input.
Dropped Indica se la funzionalità di input è stata eliminata o usata.
EngineeringFeatureCount Numero di funzionalità generate tramite trasformazioni della definizione delle funzionalità automatizzata.
Trasformazioni Elenco delle trasformazioni applicate alle funzionalità di input per generare le funzionalità definite.

Ridimensionamento e normalizzazione

Per comprendere la scalabilità/normalizzazione e l'algoritmo selezionato con i relativi valori iperparametri, usare fitted_model.steps.

L'output di esempio seguente viene eseguito fitted_model.steps per un'esecuzione scelta:

[('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))

Per ottenere altri dettagli, usare la funzione helper seguente:

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()   

Questa funzione helper restituisce l'output seguente per un'esecuzione specifica usando LogisticRegression with RobustScalar come algoritmo specifico.

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}

Stimare la probabilità della classe

I modelli prodotti con il Machine Learning automatizzato hanno tutti oggetti wrapper che rispecchiano la funzionalità della classe di origine open source. La maggior parte degli oggetti wrapper del modello di classificazione restituiti dal Machine Learning automatizzato implementa la funzione predict_proba() che accetta dati di esempio di tipo matrice o matrice sparsa delle funzionalità (valori X) e restituisce una matrice n-dimensionale di ogni esempio e la probabilità della rispettiva classe.

Si supponga di avere recuperato l'esecuzione migliore e il modello adattato usando le stesse chiamate precedenti, è possibile chiamare predict_proba() direttamente dal modello adattato specificando un X_test di esempio nel formato appropriato, a seconda del tipo di modello.

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

Se il modello sottostante non supporta la funzione predict_proba() o il formato non è corretto, verrà generata un'eccezione specifica della classe del modello. Per esempi relativi all'implementazione di questa funzione per i diversi tipi di modello, vedere la documentazione di riferimento di RandomForestClassifier e XGBoost.

Integrazione BERT in ML automatizzato

BERT viene usato nel livello di funzionalità di ML automatizzato. In questo livello, se una colonna contiene testo libero o altri tipi di dati, ad esempio timestamp o numeri semplici, la funzionalità viene applicata di conseguenza.

Per BERT, il modello viene ottimizzato ed è stato addestrato utilizzando le etichette fornite dall'utente. Da qui, gli incorporamenti di documenti vengono restituiti come funzionalità insieme ad altre, ad esempio funzionalità basate su timestamp o giorno della settimana.

Informazioni su come configurare esperimenti di elaborazione del linguaggio naturale (NLP) che usano anche BERT con ML automatizzato.

Passaggi per richiamare BERT

Per richiamare BERT, impostare enable_dnn: True nella automl_settings e usare un calcolo GPU (vm_size = "STANDARD_NC6" o una GPU superiore). Se viene usato un calcolo DELLA CPU, invece di BERT, AutoML abilita il featurizer DNN BiLSTM.

Machine Learning automatizzato esegue la procedura seguente per BERT.

  1. Pre-elaborazione e tokenizzazione di tutte le colonne di testo. Ad esempio, il trasformatore "StringCast" è disponibile nel riepilogo della funzionalità del modello finale. Un esempio di come produrre il riepilogo della funzionalità del modello è disponibile in questo notebook.

  2. Concatenare tutte le colonne di testo in una singola colonna di testo, quindi nel StringConcatTransformer modello finale.

    L'implementazione di BERT limita la lunghezza totale del testo di un campione di training a 128 token. Ciò significa che tutte le colonne di testo quando concatenate devono essere idealmente al massimo 128 token di lunghezza. Se sono presenti più colonne, ogni colonna deve essere pianificata in modo che questa condizione sia soddisfatta. In caso contrario, per le colonne concatenate di lunghezza >128 token il livello di tokenizer DI BERT tronca questo input a 128 token.

  3. Nell'ambito dello spazzamento delle funzionalità, AutoML confronta BERT rispetto alla linea di base (contenitore di funzionalità delle parole) su un esempio dei dati. Questo confronto determina se BERT darebbe miglioramenti all'accuratezza. Se BERT esegue meglio della baseline, AutoML usa BERT per la funzionalità di testo per i dati interi. In questo caso, verrà visualizzato nel PretrainedTextDNNTransformer modello finale.

BERT esegue in genere più tempo di altri featurizer. Per migliorare le prestazioni, è consigliabile usare "STANDARD_NC24r" o "STANDARD_NC24rs_V3" per le funzionalità RDMA.

AutoML distribuisce il training BERT in più nodi se sono disponibili (fino a un massimo di otto nodi). Questa operazione può essere eseguita nell'oggetto AutoMLConfig impostando il max_concurrent_iterations parametro su superiore a 1.

Lingue supportate per BERT in AutoML

AutoML supporta attualmente circa 100 lingue e a seconda della lingua del set di dati, AutoML sceglie il modello BERT appropriato. Per i dati tedeschi, viene usato il modello BERT tedesco. Per l'inglese, usiamo il modello BERT inglese. Per tutte le altre lingue, usiamo il modello BERT multilingue.

Nel codice seguente viene attivato il modello BERT tedesco, poiché il linguaggio del set di dati viene specificato in , il codice della lingua delle tre lettere per tedesco in base alla deuclassificazione ISO:

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
}

Passaggi successivi