Sdílet prostřednictvím


Featurace dat v automatizovaném strojovém učení

PLATÍ PRO: Python SDK azureml v1

Tento článek vysvětluje, jak přizpůsobit nastavení featurizace dat ve službě Azure Machine Learning pro experimenty automatizovaného strojového učení (AutoML).

Příprava funkcí a featurizace

Trénovací data se skládají z řádků a sloupců. Každý řádek je pozorování nebo záznam a sloupce každého řádku jsou funkcemi, které popisují jednotlivé záznamy. Funkce, které nejlépe charakterizují vzory v datech, jsou obvykle vybrány k vytváření prediktivních modelů.

I když mnoho nezpracovaných datových polí lze použít přímo k trénování modelu, je často nutné vytvořit další (vytvořené) funkce, které poskytují informace, které lépe rozlišují vzory v datech. Tento proces se označuje jako inženýring funkcí, kde se k vytváření funkcí používá použití znalostí domény k vytváření funkcí, které zase pomáhají algoritmům strojového učení lépe se učit.

Ve službě Azure Machine Learning se používají techniky škálování a normalizace dat, které usnadňují přípravu funkcí. Tyto techniky a tato příprava funkcí se souhrnně označují jako featurizace v experimentech automatizovaného strojového učení (ML).

Požadavky

Tento článek předpokládá, že už víte, jak nakonfigurovat experiment automatizovaného strojového učení.

Důležité

Příkazy Pythonu v tomto článku vyžadují nejnovější azureml-train-automl verzi balíčku.

Informace o konfiguraci najdete v následujících článcích:

Konfigurace featurizace

V každém experimentu automatizovaného strojového učení se ve výchozím nastavení na vaše data použijí techniky automatického škálování a normalizace. Tyto techniky jsou typy featurizace, které pomáhají určitým algoritmům citlivým na funkce v různých škálách. Můžete povolit větší featurizaci, například imputaci chybějících hodnot, kódování a transformace.

Poznámka:

Kroky pro automatizovanou funkci strojového učení (jako je normalizace funkcí, zpracování chybějících dat nebo převod textu na číselnou hodnotu) se stanou součástí základního modelu. Při použití modelu pro předpovědi se na vstupní data automaticky použijí stejné kroky featurizace, které se použijí během trénování.

U experimentů, které konfigurujete se sadou Python SDK, můžete povolit nebo zakázat nastavení featurizace a dále určit kroky featurizace, které se mají použít pro experiment. Pokud používáte studio Azure Machine Learning, přečtěte si postup povolení featurizace.

Následující tabulka uvádí přijatá nastavení pro featurization třídu AutoMLConfig:

Konfigurace funkce Popis
"featurization": 'auto' Určuje, že se v rámci předběžného zpracování mají kroky ochrany dat a featurizace provádět automaticky. Toto je výchozí nastavení.
"featurization": 'off' Určuje, že kroky featurizace se nedají provádět automaticky.
"featurization": 'FeaturizationConfig' Určuje, že se mají použít přizpůsobené kroky featurizace. Přečtěte si, jak přizpůsobit funkcionalizaci.

Automatická featurizace

Následující tabulka shrnuje techniky, které se automaticky použijí na vaše data. Tyto techniky se použijí pro experimenty, které jsou nakonfigurované pomocí sady SDK nebo uživatelského rozhraní studia. Chcete-li toto chování zakázat, nastavte "featurization": 'off' v objektu AutoMLConfig .

Poznámka:

Pokud plánujete exportovat modely vytvořené autoML do modelu ONNX, podporují se ve formátu ONNX pouze možnosti featurizace označené hvězdičkou (*). Přečtěte si další informace o převodu modelů na ONNX.

Kroky pro featurizaci Popis
Zahoďte vysoké kardinality nebo žádné funkce odchylek* Odstraňte tyto funkce z trénovacích a ověřovacích sad. Platí pro funkce, které chybí všechny hodnoty, se stejnou hodnotou napříč všemi řádky nebo s vysokou kardinalitou (například hodnoty hash, ID nebo identifikátory GUID).
Imputovat chybějící hodnoty* U číselných funkcí imputujte průměr hodnot ve sloupci.

U kategorických funkcí načítáte nejčastější hodnotu.
Generování dalších funkcí* Funkce DateTime: Year, Month, Day, Day of Week, Day of Year, Quarter, Week of the Year, Hour, Minute, Second.

Pro úlohy prognózování se vytvoří tyto další funkce DateTime: ISO year, Half - half-year, Calendar month as string, Week, Day of Week as string, Day of quarter, Day of year, Day of year, AM/PM (0 if hour is before poledne (12 pm), 1 otherwise), AM/PM as string, Hour of day (12-hr basis)

Funkce textu: Frekvence termínů založená na jednogramech, bigramech a trigramech. Přečtěte si další informace o tom, jak se to dělá s BERT.
Transformace a kódování* Transformujte číselné funkce, které mají několik jedinečných hodnot, do kategorických funkcí.

Kódování typu 1 horká se používá pro kategorické funkce s nízkou kardinalitou. Kódování typu 1-hot-hash se používá pro kategorické funkce s vysokou kardinalitou.
Vkládání slov Textový featurizátor převádí vektory textových tokenů na vektory vět pomocí předem natrénovaného modelu. Vložený vektor každého slova do dokumentu se agreguje se zbytkem a vytvoří vektor funkce dokumentu.
Vzdálenost clusteru Trénuje model clusteringu k-means na všech číselných sloupcích. Vytvoří nové funkce k (jedna nová číselná funkce na cluster), které obsahují vzdálenost každého vzorku od centroidu každého clusteru.

V každém experimentu automatizovaného strojového učení se vaše data automaticky škálují nebo normalizují, aby pomohly dobře fungovat algoritmy. Během trénování modelu se na každý model použije jedna z následujících technik škálování nebo normalizace.

Škálování a zpracování Popis
StandardScaleWrapper Standardizujte funkce odebráním střední hodnoty a škálováním na odchylku jednotek.
MinMaxScalar Transformuje funkce škálováním jednotlivých funkcí na minimum a maximum sloupce.
MaxAbsScaler Škálujte každou funkci podle maximální absolutní hodnoty.
RobustScalar Škáluje funkce podle jejich kvantiového rozsahu.
DPS Redukce lineární dimenze pomocí rozkladu hodnoty s jednotným číslem dat pro projektování do nižšího dimenzionálního prostoru.
Zkrácené rozšířeníSVD Tento transformátor provádí redukci lineární rozměrnosti pomocí zkrácené dekompozice singulární hodnoty (SVD). Na rozdíl od PCA tento estimátor necentruje data před výpočtem rozkladu jednotné hodnoty, což znamená, že může efektivně pracovat s řídkými maticemi.
Řídkýnormalizátor Každý vzorek (tj. každý řádek datové matice) s nejméně jednou nenulovou složkou se přeškálí nezávisle na ostatních vzorcích, aby se její norma (l1 nebo l2) rovnala jedné.

Mantinely dat

Mantinely dat pomáhají identifikovat potenciální problémy s daty (například chybějící hodnoty nebo nevyváženost tříd). Pomáhají také provádět nápravné akce pro vylepšené výsledky.

Použijí se mantinely dat:

  • Pro experimenty se sadou SDK: Když "featurization": 'auto' jsou parametry nebo validation=auto jsou zadány v objektu AutoMLConfig
  • Experimenty se sadou Studio: Pokud je povolená automatická featurizace

Můžete si prohlédnout mantinely dat pro experiment:

  • show_output=True Nastavením při odesílání experimentu pomocí sady SDK.
  • V sadě Studio na kartě Mantinely dat vašeho automatizovaného spuštění strojového učení.

Stavy mantinely dat

Mantinely dat zobrazují jeden ze tří stavů:

Stát Popis
Prošel Nebyly zjištěny žádné problémy s daty a vy nemusíte provádět žádnou akci.
Hotový Změny se použily na vaše data. Doporučujeme, abyste zkontrolovali nápravné akce, které AutoML provedlo, a ujistěte se, že změny odpovídají očekávaným výsledkům.
Upozorněni Zjistil se problém s daty, ale nepodařilo se ho napravit. Doporučujeme, abyste tento problém opravili a opravili.

Podporované mantinely dat

Následující tabulka popisuje mantinely dat, které jsou aktuálně podporovány, a související stavy, které se můžou zobrazit při odeslání experimentu:

Zábradlí Stav Podmínka pro trigger
Chybějící imputace hodnot funkcí Prošel


Hotovo
V trénovacích datech nebyly zjištěny žádné chybějící hodnoty funkcí. Přečtěte si další informace o imputaci chybějících hodnot.

V trénovacích datech byly zjištěny chybějící hodnoty funkcí a byly imputovány.
Detekce funkcí s vysokou kardinalitou Prošel


Hotovo
Vaše vstupy byly analyzovány a nebyly zjištěny žádné funkce s vysokou kardinalitou.

Ve vašich vstupech byly zjištěny funkce s vysokou kardinalitou a byly zpracovány.
Zpracování rozdělení ověření Hotovo Konfigurace ověření byla nastavena na 'auto' trénovací data a obsahovala méně než 20 000 řádků.
Každá iterace natrénovaného modelu byla ověřena pomocí křížového ověření. Přečtěte si další informace o ověřovacích datech.

Konfigurace ověření byla nastavena na 'auto'a trénovací data obsahovala více než 20 000 řádků.
Vstupní data byla rozdělena do trénovací datové sady a ověřovací datové sady pro ověření modelu.
Detekce vyrovnávání tříd Prošel




Upozorněni



Hotovo
Vaše vstupy byly analyzovány a všechny třídy jsou vyváženy v trénovacích datech. Datová sada se považuje za vyváženou, pokud každá třída má v datové sadě dobrou reprezentaci, jak je měřeno počtem a poměrem vzorků.

Ve vašich vstupech byly zjištěny nevyvážené třídy. Chcete-li vyřešit předsudky modelu, opravte problém vyrovnávání. Přečtěte si další informace o nevyvážených datech.

Ve vašich vstupech byly zjištěny nevyvážené třídy a logika úklidu se rozhodla použít vyrovnávání.
Detekce problémů s pamětí Prošel



Hotovo
Vybrané hodnoty (horizont, prodleva, posuvné okno) byly analyzovány a nebyly zjištěny žádné potenciální problémy s nedostatkem paměti. Přečtěte si další informace o konfiguracích prognóz časových řad.

Vybrané hodnoty (horizont, prodleva, posuvné okno) byly analyzovány a potenciálně způsobí, že experiment nebude mít nedostatek paměti. Konfigurace prodlevy nebo posuvných oken jsou vypnuté.
Detekce četnosti Prošel


Hotovo
Časová řada byla analyzována a všechny datové body jsou v souladu se zjištěnou frekvencí.

Časová řada byla analyzována a byly zjištěny datové body, které nejsou v souladu se zjištěnou frekvencí. Tyto datové body byly z datové sady odebrány.
Křížové ověření Hotovo Abychom mohli přesně vyhodnotit modely vytrénované pomocí AutoML, použijeme datovou sadu, na které model není trénovaný. Proto pokud uživatel neposkytuje explicitní ověřovací datovou sadu, použije se k tomu část trénovací datové sady. U menších datových sad (méně než 20 000 vzorků) se použije křížové ověření, jinak je jedna sada blokování rozdělená od trénovacích dat, aby sloužila jako ověřovací datová sada. Proto pro vstupní data používáme křížové ověření s 10násobnými násobky, pokud je počet trénovacích vzorků menší než 1 000 a ve všech ostatních případech 3 záhyby.
Rozdělení dat trénování a testování Hotovo Abychom mohli přesně vyhodnotit modely vytrénované pomocí AutoML, použijeme datovou sadu, na které model není trénovaný. Proto pokud uživatel neposkytuje explicitní ověřovací datovou sadu, použije se k tomu část trénovací datové sady. U menších datových sad (méně než 20 000 vzorků) se použije křížové ověření, jinak je jedna sada blokování rozdělená od trénovacích dat, aby sloužila jako ověřovací datová sada. Vstupní data se proto rozdělí na trénovací datovou sadu a datovou sadu pro ověření blokování.
Detekce ID časové řady Prošel


Pevný
Datová sada byla analyzována a nebyl zjištěn žádný duplicitní časový index.

V datové sadě bylo nalezeno více časových řad a identifikátory časových řad se pro vaši datovou sadu automaticky vytvořily.
Agregace časových řad Prošel


Pevný
Frekvence datové sady je v souladu s frekvencí zadanou uživatelem. Nebyla provedena žádná agregace.

Data byla agregována tak, aby byla v souladu s frekvencí poskytovanou uživatelem.
Zpracování krátkých řad Prošel


Pevný
Automatizované strojové učení zjistilo dostatek datových bodů pro každou řadu vstupních dat, aby pokračovalo v trénování.

Automatizované strojové učení zjistilo, že některé řady neobsahují dostatek datových bodů pro trénování modelu. Aby bylo možné pokračovat v trénování, byly tyto krátké série vyřazeny nebo vycpané.

Přizpůsobení featurizace

Nastavení featurizace můžete přizpůsobit, abyste měli jistotu, že data a funkce používané k trénování modelu ML vedou k relevantním predikcím.

Chcete-li přizpůsobit featurizace, zadejte "featurization": FeaturizationConfig v AutoMLConfig objektu. Pokud používáte studio Azure Machine Learning pro experiment, přečtěte si článek s postupy. Pokud chcete přizpůsobit funkci pro prognózování typů úloh, projděte si postupy prognózování.

Mezi podporovaná přizpůsobení patří:

Vlastní nastavení definice
Aktualizace účelu sloupce Přepište typ funkce automatického rozpoznávání pro zadaný sloupec.
Aktualizace parametrů Transformátoru Aktualizujte parametry pro zadaný transformátor. V současné době podporuje Imputer (střední, nejčastější a medián) a HashOneHotEncoder.
Přetažení sloupců Určuje sloupce, které mají být vyřazeny z featurizace.
Blokové transformátory Určuje blokové transformátory, které se mají použít v procesu featurizace.

Poznámka:

Funkce vyřazených sloupců je vyřazená ze sady SDK verze 1.19. Vypusťte sloupce z datové sady jako součást čištění dat před tím, než je začnete využívat v experimentu automatizovaného strojového učení.

FeaturizationConfig Vytvořte objekt pomocí volání rozhraní 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})

Průhlednost featurizace

Každý model AutoML má automaticky použitou funkcionalizaci. Featurizace zahrnuje automatizované inženýrství funkcí (když "featurization": 'auto') a škálování a normalizaci, které pak ovlivní vybraný algoritmus a jeho hodnoty hyperparametrů. AutoML podporuje různé metody, abyste měli přehled o použitém modelu.

Podívejte se na tento příklad prognózování:

  • Existují čtyři vstupní funkce: A (číselné), B (číselné), C (číselné), D (DateTime).
  • Číselná funkce C se zahodí, protože se jedná o sloupec ID se všemi jedinečnými hodnotami.
  • Číselné funkce A a B obsahují chybějící hodnoty, a proto jsou imputovány střední hodnotou.
  • Funkce DateTime D je featurována do 11 různých inženýrovaných funkcí.

Pokud chcete získat tyto informace, použijte výstup spuštění experimentu automatizovaného strojového fitted_model učení.

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

Automatizované inženýrství funkcí

Vrátí get_engineered_feature_names() seznam názvů navržených funkcí.

Poznámka:

Pro task='forecasting' použijte timeseriestransformer, jinak pro úlohu regrese nebo classification použijte datatransformer.

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

Tento seznam obsahuje všechny názvy funkcí inženýrů.

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

Získá get_featurization_summary() souhrn featurizace všech vstupních funkcí.

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

Výstup

[{'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']}]
Výstup Definice
RawFeatureName Zadaný název vstupní funkce nebo sloupce z zadané datové sady
TypeDetected Byl zjištěn datový typ vstupní funkce.
Upuštěný Označuje, jestli byla vstupní funkce vyřazena nebo použita.
EngineeringFeatureCount Počet funkcí vygenerovaných prostřednictvím automatizovaných transformací funkcí
Transformace Seznam transformací použitých u vstupních funkcí pro generování inženýrovaných funkcí

Škálování a normalizace

Pokud chcete porozumět škálování/normalizaci a vybranému algoritmu s hodnotami hyperparametrů, použijte fitted_model.steps.

Následující ukázkový výstup pochází ze spuštění fitted_model.steps vybraného spuštění:

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

Další podrobnosti získáte pomocí této pomocné funkce:

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

Tato pomocná funkce vrátí následující výstup konkrétního spuštění, který používá LogisticRegression with RobustScalar jako konkrétní algoritmus.

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}

Predikce pravděpodobnosti třídy

Modely vytvořené pomocí automatizovaného strojového učení mají obálkové objekty, které zrcadlí funkce ze své opensourcové třídy původu. Většina objektů obálky klasifikačního modelu vrácených automatizovaným ML implementuje predict_proba() funkci, která přijímá výběr dat podobných polím nebo řídké matici vašich funkcí (hodnoty X) a vrací ndimenzionální pole každého vzorku a jeho odpovídající pravděpodobnost třídy.

Za předpokladu, že jste pomocí stejných volání získali nejlepší běh a fitovaný model, můžete volat predict_proba() přímo z fitovaného modelu a zadat X_test vzorek v příslušném formátu v závislosti na typu modelu.

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

Pokud podkladový model funkci nepodporuje predict_proba() nebo je nesprávný formát, vyvolá se výjimka specifická pro konkrétní model. Příklady implementace této funkce pro různé typy modelů najdete v referenční dokumentaci k RandomForestClassifier a XGBoost.

Integrace BERT v automatizovaném strojovém učení

BERT se používá ve vrstvě featurizace automatizovaného strojového učení. Pokud nějaký sloupec v této vrstvě obsahuje volný text nebo jiný typ dat, například časová razítka nebo prostá čísla, znamená to, že je extrakce příznaků správně implementovaná.

V případě BERT se model ladí a trénuje s využitím uživatelem zadaných popisků. Tady se vložené prvky dokumentů zobrazují jako vlastnosti společně s ostatními vlastnostmi například na základě časového razítka dne v týdnu.

Naučte se nastavit AutoML pro trénování modelu zpracování přirozeného jazyka pomocí Pythonu.

Postup vyvolání BERT

Pokud chcete vyvolat BERT, nastavte enable_dnn: True v automl_settings a použijte výpočetní výkon GPU (vm_size = "STANDARD_NC6" nebo vyšší GPU). Pokud se použije výpočetní výkon procesoru, autoML místo BERT povolí featurizátor BiLSTM DNN.

Automatizované strojové učení provede následující kroky pro BERT.

  1. Předběžné zpracování a tokenizace všech textových sloupců Transformátor lze například StringCast najít v souhrnu featurizace konečného modelu. Příklad vytvoření souhrnu featurizace modelu najdete v tomto poznámkovém bloku.

  2. Zřetězení všech textových sloupců do jednoho textového sloupce, a proto StringConcatTransformer v konečném modelu.

    Naše implementace BERT omezuje celkovou délku textu trénovacího vzorku na 128 tokenů. To znamená, že všechny textové sloupce při zřetězení by měly mít v ideálním případě maximálně 128 tokenů. Pokud je k dispozici více sloupců, měl by být každý sloupec vyřazen, aby byla tato podmínka splněna. Jinak u zřetězených sloupců s délkou >128 tokenů BERT zkrátí tento vstup na 128 tokenů.

  3. V rámci úklidu funkcí autoML porovnává BERT se standardními hodnotami (sáček s funkcemi slov) na vzorku dat. Toto porovnání určuje, jestli by BERT poskytl vylepšení přesnosti. Pokud BERT funguje lépe než směrný plán, AutoML pak použije BERT pro text featurizace pro celá data. V takovém případě uvidíte PretrainedTextDNNTransformer konečný model.

BERT obecně běží déle než jiné featurizátory. Pokud chcete dosáhnout lepšího výkonu, doporučujeme pro své funkce RDMA používat STANDARD_NC24r nebo STANDARD_NC24rs_V3 .

AutoML distribuuje trénování BERT napříč několika uzly, pokud jsou k dispozici (maximálně osm uzlů). To lze provést v AutoMLConfig objektu nastavením parametru max_concurrent_iterations na vyšší než 1.

Podporované jazyky pro BERT v AutoML

AutoML aktuálně podporuje přibližně 100 jazyků a v závislosti na jazyce datové sady autoML zvolí příslušný model BERT. V případě německých dat používáme německý model BERT. Pro angličtinu používáme anglický model BERT. Pro všechny ostatní jazyky používáme vícejazyčný model BERT.

V následujícím kódu se aktivuje německý model BERT, protože jazyk datové sady je určen pro deu, třímísmenný kód jazyka pro němčinu podle klasifikace 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
}