Condividi tramite


Definizione delle funzionalità dei dati in Machine Learning automatizzato (AutoML)

SI APPLICA A:Azure Machine Learning SDK v1 per Python

Importante

Questo articolo fornisce informazioni sull'uso di Azure Machine Learning SDK v1. SDK v1 è deprecato a partire dal 31 marzo 2025. Il supporto per questo terminerà il 30 giugno 2026. È possibile installare e usare l'SDK v1 fino a tale data.

È consigliabile passare all'SDK v2 prima del 30 giugno 2026. Per altre informazioni su SDK v2, vedere Che cos'è l'interfaccia della riga di comando di Azure Machine Learning e Python SDK v2? e il Riferimento SDK v2.

Questo articolo illustra come personalizzare le impostazioni di definizione delle funzionalità dei dati in Azure Machine Learning per esperimenti di Machine Learning automatizzato (AutoML).

Ingegneria e definizione delle funzionalità

I dati di training sono costituiti da righe e colonne. Ciascuna riga è un'osservazione o un record, mentre le colonne di ogni riga corrispondono alle funzionalità che descrivono ciascun 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 altre funzionalità (ingegneriate) che forniscono informazioni per differenziare meglio i modelli nei dati. Questo processo è denominato ingegneria delle funzionalità, in cui l'uso della conoscenza del dominio dei dati viene usato per creare funzionalità che a loro volta contribuiscono a un migliore apprendimento degli algoritmi di apprendimento automatico.

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

Prerequisiti

Questo articolo presuppone che si sappia già come configurare un esperimento AutoML.

Importante

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

Per informazioni sulla configurazione, vedere gli articoli seguenti:

Configurare la definizione delle funzionalità

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

Nota

I passaggi per la definizione delle caratteristiche di AutoML , 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 previsioni, gli stessi passaggi di definizione delle funzionalità 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 lo 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 della definizione delle funzionalità Descrizione
"featurization": 'auto' Specifica che le protezioni dei dati e i passaggi di definizione delle funzionalità devono essere eseguiti automaticamente come parte della pre-elaborazione. Questa è l'impostazione predefinita.
"featurization": 'off' Specifica che i passaggi di definizione delle funzionalità non devono essere eseguiti automaticamente.
"featurization": 'FeaturizationConfig' Specifica che devono essere usati passaggi di definizione delle funzionalità personalizzati. Per altre informazioni, vedere Personalizzare le funzionalità.

Definizione automatica delle 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 dello studio. Per disabilitare questo comportamento, impostare "featurization": 'off' nell'oggetto AutoMLConfig.

Passaggi di definizione delle funzionalità Descrizione
Eliminazione delle funzionalità con alta cardinalità o senza varianza* Eliminare queste funzionalità dai set di training e 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).
Imputare valori mancanti* Per le funzionalità numeriche, l'imputazione avviene con la media dei valori nella colonna.

Per le funzionalità categoriche, l'imputazione avviene con il valore più frequente.
Generazione di altre funzionalità* Per le funzionalità DateTime : anno, mese, giorno, giorno della settimana, giorno dell'anno, trimestre, settimana dell'anno, ora, minuto, secondo.

Per le attività di previsione, vengono create queste funzionalità DateTime aggiuntive: anno ISO, metà - semestre, mese di calendario come stringa, settimana, giorno della settimana come stringa, giorno del trimestre, giorno dell'anno, AM/PM (0 per am, 1 per pm), AM/PM come stringa, ora del giorno (12 ore).

Per funzionalità di testo : frequenza dei termini in base a unigrammi, bigram e trigrammi. Per altre informazioni, vedere Integrazione BERT.
Trasformazione e codifica* Trasformare le funzionalità numeriche che hanno un numero ridotto di valori univoci nelle funzionalità categoriche.

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

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. Per altre informazioni, vedere Eseguire stime con un modello ONNX AutoML.

In ogni esperimento AutoML, i dati vengono ridimensionati o normalizzati automaticamente per consentire alle prestazioni degli algoritmi. Durante il training del modello, viene applicata una delle tecniche di ridimensionamento o normalizzazione seguenti a ogni modello.

Ridimensionamento ed elaborazione Descrizione
StandardScaler Standardizza le funzionalità rimuovendo la media e ridimensionando alla varianza unitaria.
MinMaxScaler Trasforma le funzionalità ridimensionando ogni funzionalità in base al valore minimo e massimo della colonna.
MaxAbsScaler Ridimensiona ogni funzionalità in base al valore assoluto massimo.
RobustScaler Ridimensiona le funzionalità in base al rispettivo intervallo quantile.
PCA Analisi dei componenti principale. Riduzione della dimensionalità lineare mediante scomposizione di valori singolari dei dati per proiettarla in uno spazio di dimensioni inferiori.
TroncatedSVD Questo trasformatore esegue la riduzione della dimensionalità lineare mediante la scomposizione del valore singolare (SVD) troncato. Contrariamente alla PCA, questo strumento di stima non centra i dati prima di calcolare la scomposizione del valore singolare, il che significa che può funzionare con scipy.sparse matrici in modo efficiente.
Normalizzatore Ogni esempio (cioè 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.

Protezioni dei dati

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

Le protezioni dei dati vengono applicate:

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

È possibile esaminare le protezioni dati per l'esperimento:

  • Impostando show_output=True quando si invia un esperimento usando l'SDK.
  • Nello studio, nella scheda Protezioni dei dati dell'esecuzione di AutoML.

Stati di protezione dati

Le protezioni dei dati visualizzano uno dei tre stati seguenti:

Stato Descrizione
Riuscito Non sono stati rilevati problemi relativi ai dati e non è richiesta alcuna azione dell'utente.
Completato Le modifiche sono state applicate ai dati. È preferibile esaminare le azioni correttive intraprese da AutoML per verificare che le modifiche siano allineate ai risultati previsti.
Con avvisi È stato rilevato un problema di dati, ma non è stato possibile risolverlo. Si consiglia di esaminare il problema e risolverlo.

Protezioni dei dati supportate

Nella tabella seguente sono descritte le protezioni dei dati attualmente supportate e gli stati associati che potrebbero essere riscontrati durante l'invio dell'esperimento:

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


Operazione completata
Nei dati di training non sono stati rilevati valori di funzionalità mancanti. Per altre informazioni, vedere Configurare le impostazioni di definizione delle funzionalità.

Nei dati di training sono stati rilevati valori di funzionalità mancanti e sono stati imputati.
Rilevamento funzionalità ad elevata cardinalità Riuscito


Operazione completata
Gli input sono stati analizzati e non sono state rilevate funzionalità ad elevata cardinalità.

Negli input sono state rilevate e gestite funzionalità ad elevata cardinalità.
Gestione della suddivisione della convalida Operazione completata La configurazione della convalida è stata impostata su 'auto' e i dati di training contenevano meno di 20.000 righe.
Ogni iterazione del modello addestrato è stata convalidata usando la convalida incrociata. Altre informazioni sui dati di convalida.

La configurazione della convalida è stata impostata su 'auto' e i dati di training contenevano 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 Riuscito




Con avvisi



Operazione completata
Gli input sono stati analizzati e tutte le classi sono bilanciate nei dati di training. Un set di dati è considerato bilanciato se ogni classe è rappresentata in modo corretto nel set di dati, come da misurazione in base al numero e al rapporto dei campioni.

Negli input sono state rilevate classi non bilanciate. Per correggere la distorsione del modello, risolvere il problema di bilanciamento. Altre informazioni sui dati non bilanciati.

Negli input sono state rilevate classi non bilanciate e la logica di sweep ha determinato l'applicazione del bilanciamento.
Rilevamento dei problemi di memoria Riuscito



Operazione completata
I valori selezionati (orizzonte, ritardo, finestra mobile) sono stati analizzati e non è stato rilevato alcun potenziale problema di memoria insufficiente. Altre informazioni sulle configurazioni di previsione di serie temporali.

I valori selezionati (orizzonte, ritardo, finestra mobile) sono stati analizzati e causeranno potenziali problemi di memoria insufficiente per l'esperimento. Le configurazioni del ritardo o della finestra mobile disattivate.
Rilevamento della frequenza Riuscito


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

La serie temporale è stata analizzata e sono stati rilevati dei punti dati non allineati alla frequenza rilevata. Questi punti dati sono stati rimossi dal set di dati.
Convalida incrociata Operazione completata Per valutare con precisione il modello sottoposto a training da AutoML, viene usato un set di dati su cui non viene 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 set di dati più piccoli (meno di 20.000 campioni) viene usata la convalida incrociata. In caso contrario, un singolo set di dati di controllo viene diviso dai dati di training affinché funga da set di dati di convalida. Di conseguenza, per i dati di input si usa 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 dei test di training Operazione completata Per valutare con precisione il modello sottoposto a training da AutoML, viene usato un set di dati su cui non viene 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 set di dati più piccoli (meno di 20.000 campioni) viene usata la convalida incrociata. In caso contrario, un singolo set di dati di controllo viene diviso dai dati di training affinché funga da set di dati di convalida. Di conseguenza, i dati di input vengono suddivisi in un set di dati di training e un set di dati di convalida di controllo.
Rilevamento ID della serie temporale Riuscito


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

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


Corretto
La frequenza del set di dati è allineata alla frequenza specificata dall'utente. Non è stata eseguita alcuna aggregazione.

I dati sono stati aggregati affinché siano conformi alla frequenza specificata dall'utente.
Gestione di serie brevi Riuscito


Corretto
AutoML ha rilevato un numero sufficiente di punti dati per ciascuna serie nei dati di input per procedere con l'addestramento.

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

Personalizzare la definizione delle 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 la definizione delle funzionalità, specificare "featurization": FeaturizationConfig nell'oggetto AutoMLConfig. Se si usa Azure Machine Learning Studio per l'esperimento, vedere Configurare le impostazioni di definizione delle funzionalità. Per personalizzare le caratteristiche per i tipi di attività di previsione, vedere Personalizzare le caratteristiche.

Personalizzazioni supportate:

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

Nota

La funzionalità di eliminazione delle colonne è deprecata a partire dalla versione 1.19 dell'SDK. Eliminare colonne dal set di dati come parte della pulizia dei dati, prima di usarle nell'esperimento AutoML.

È possibile 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 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 definizione delle funzionalità

Ogni modello AutoML ha una definizione delle funzionalità applicata automaticamente. La definizione delle funzionalità include la progettazione automatizzata delle funzionalità (in caso di "featurization": 'auto') e scalabilità e normalizzazione, influendo quindi sull'algoritmo selezionato e sui relativi valori degli iperparametri. AutoML supporta metodi diversi per assicurarsi di avere visibilità su ciò che è stato applicato al modello.

Si consideri questo esempio di previsione:

  • Sono disponibili quattro funzionalità di input: A (numerica), B (numerica), C (numerica), D (DateTime).
  • La funzionalità numerica C viene eliminata poiché è una colonna ID con tutti i valori univoci.
  • Le funzionalità numeriche A e B presentano valori mancanti e vengono quindi imputate in base alla media.
  • La funzionalità DateTime D viene trasformata in 11 diverse funzionalità ingegnerizzate.

Per ottenere queste informazioni, utilizzare l'output fitted_model dell'esecuzione dell'esperimento AutoML.

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

Ingegneria delle funzionalità automatizzata

get_engineered_feature_names() restituisce un elenco dei nomi di funzionalità ingegnerizzate.

Nota

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

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

Questo elenco include tutti i nomi delle funzionalità ingegnerizzate.

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

get_featurization_summary() ottiene un riepilogo della definizione delle funzionalità di tutte le funzionalità di input.

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

Risultato

[{'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',ateTime','DateTime','DateTime']}]
Risultato 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à ingegnerizzate.

Ridimensionamento e normalizzazione

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

L'output di esempio seguente deriva dall'esecuzione di 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 questa funzione helper:

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 una particolare esecuzione 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}

Prevedere la probabilità della classe

I modelli prodotti con AutoML includono oggetti wrapper che rispecchiano la funzionalità della loro classe di origine open source. La maggior parte degli oggetti wrapper per modelli di classificazione restituiti da AutoML implementa la funzione predict_proba(), che accetta un campione di dati sotto forma di matrice o matrice sparsa delle caratteristiche (valori X) e restituisce una matrice n-dimensionale di ogni campione e la rispettiva probabilità di classe.

Supponendo di avere recuperato l'esecuzione migliore e adattato il modello usando le stesse chiamate, è 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, viene generata un'eccezione specifica della classe del modello. Per alcuni esempi su come viene implementata questa funzione per diversi tipi di modello, vedere la documentazione di riferimento di RandomForestClassifier e XGBoost.

Integrazione BERT in AutoML

Le rappresentazioni del codificatore bidirezionale da Transformers (BERT) vengono usate nel livello di definizione delle caratteristiche di AutoML. In questo livello, se una colonna contiene testo libero o altri tipi di dati, ad esempio timestamp o numeri semplici, la funzionalità viene applicata adeguatamente.

Nel caso di BERT, il modello è ottimizzato e 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 sulla Configurazione di AutoML per eseguire il training di un modello di elaborazione del linguaggio naturale con Python.

Passaggi per richiamare BERT

Per richiamare BERT, impostare enable_dnn: True in automl_settings e usare calcolo GPU (vm_size = "STANDARD_NC6" o GPU di livello superiore). Se viene usato un calcolo CPU, invece di BERT AutoML abilita le funzionalità DNN BiLSTM.

AutoML esegue i passaggi seguenti per BERT.

  1. Pre-elabora e tokenzza tutte le colonne di testo. Ad esempio, il trasformatore StringCast è disponibile nel riepilogo della definizione delle funzionalità del modello finale. Un esempio di come produrre il riepilogo delle caratteristiche del modello è disponibile in questo notebook jupyter.

  2. Concatena tutte le colonne di testo in una singola colonna di testo, di conseguenza 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 vengono concatenate, dovrebbero avere una lunghezza massima di 128 token. Se sono presenti più colonne, è necessario eliminare ogni colonna in modo che questa condizione venga soddisfatta. In caso contrario, per le colonne concatenate di lunghezza di >128 token, il livello tokenizer di BERT tronca questo input a 128 token.

  3. Nell'ambito dello sweep delle funzionalità, AutoML confronta BERT con la baseline (funzionalità contenitore di parole) su un campione di dati. Questo confronto determina se BERT offrirà miglioramenti dell'accuratezza. Se BERT offre prestazioni migliori rispetto alla baseline, AutoML usa BERT per la definizione delle funzionalità di testo per tutti i dati. In tal caso, viene visualizzato PretrainedTextDNNTransformer nel modello finale.

BERT viene in genere eseguito più a lungo rispetto ad altri featurizer. Per ottenere prestazioni migliori, è consigliabile usare STANDARD_NC24r o STANDARD_NC24rs_V3 per le relative funzionalità RDMA.

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

Lingue supportate per BERT

AutoML supporta attualmente circa 100 lingue. A seconda del linguaggio del set di dati, AutoML sceglie il modello BERT appropriato. Per i dati tedeschi si usa il modello BERT tedesco. Per l'inglese si usa il modello BERT inglese. Per tutte le altre lingue, si usa il modello BERT multilingue.

Nel codice seguente viene attivato il modello BERT tedesco perché la lingua del set di dati è specificata in deu, il codice linguistico di tre lettere per il tedesco in base alla classificazione 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
}