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

PLATÍ PRO:Python SDK azureml v1

Přečtěte si o nastaveních featurizace dat ve službě Azure Machine Učení a o tom, jak tyto funkce přizpůsobit pro experimenty automatizovaného strojového učení.

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ší (inženýrované) funkce, které poskytují informace, které lépe rozlišují vzory v datech. Tento proces se označuje jako inženýring funkcí, kdy použití znalostí domény dat se využívá k vytváření funkcí, které zase pomáhají algoritmům strojového učení lépe se učit.

Ve službě Azure Machine Učení se techniky škálování a normalizace dat použijí k usnadnění přípravy funkcí. Tyto techniky a tato technika se souhrnně označují jako featurizace v automatizovaných experimentech 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 nemají 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 Standardizace funkcí odebráním střední hodnoty a škálování na odchylku jednotek
MinMaxScalar Transformuje funkce škálováním jednotlivých funkcí na minimum a maximum sloupce.
MaxAbsScaler Škálování jednotlivých funkcí podle maximální absolutní hodnoty
RobustScalar Škáluje funkce podle jejich kvantového rozsahu.
DPS Redukce lineární dimenze pomocí rozkladu dat s jednotným číslem pro projektování do nižšího dimenzionálního prostoru
Zkrácený SVDWrapper 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 pracovat s scipy.řídké matice efektivně.
Řídkýnormalizátor Každý vzorek (tedy každý řádek datové matice) s alespoň jednou nenulovou složkou se přeškálí nezávisle na ostatních vzorcích, aby se jeho 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:

  • Experimenty sady SDK: Pokud jsou parametry "featurization": 'auto' nebo validation=auto jsou zadány ve vašem objektu AutoMLConfig .
  • Pro studiové experimenty: 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
Předán Nebyly zjištěny žádné problémy s daty a vy nemusíte provádět žádnou akci.
Udělal 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:

Mantinely Stav Podmínka pro trigger
Chybějící imputace hodnot funkcí Předán


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 Předán


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 Předán



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í Předán



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 postupného okna jsou vypnuté.
Detekce četnosti Předán



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é službou AutoML, využíváme 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 využívá 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é službou AutoML, využíváme 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 využívá 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 se vstupní data rozdělila na trénovací datovou sadu a datovou sadu pro ověření blokování.
Detekce ID časové řady Předán



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 Předán



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 Předán



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','DateTime','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.
Klesl 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 načetli nejlepší běh a fitovaný model pomocí stejných volání z výše uvedeného, můžete volat predict_proba() přímo z fitovaného modelu a v závislosti na typu modelu zadat vhodnou ukázku X_test v příslušném formátu.

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 formát nesprávný, 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 experimenty zpracování přirozeného jazyka (NLP), které používají také BERT s automatizovaným strojovém učení.

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ů Například transformátor StringCast najdete 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žít STANDARD_NC24r nebo STANDARD_NC24rs_V3.

AutoML distribuuje trénování BERT mezi více uzlů, 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
}

Další kroky