Adatok featurizálása az automatizált gépi tanulásban

ÉRVÉNYES:Python SDK azureml v1

Ismerje meg az Azure Machine Tanulás adat-featurizálási beállításait, és hogyan szabhatja testre ezeket a funkciókat automatizált gépi tanulási kísérletekhez.

Funkciófejlesztés és featurizáció

A betanítási adatok sorokból és oszlopokból állnak. Minden sor egy megfigyelés vagy rekord, és az egyes sorok oszlopai az egyes rekordokat leíró funkciók. A prediktív modellek létrehozásához általában az adatok mintáit legjobban jellemző funkciók vannak kiválasztva.

Bár a nyers adatmezők nagy része közvetlenül használható egy modell betanítása érdekében, gyakran szükség van további (megtervezett) funkciók létrehozására, amelyek olyan információkat nyújtanak, amelyek jobban megkülönböztetik az adatok mintáit. Ezt a folyamatot funkciófejlesztésnek nevezik, ahol az adatok tartományismeretének használatával olyan funkciókat hozhat létre, amelyek segítenek a gépi tanulási algoritmusoknak a jobb tanulásban.

Az Azure Machine Tanulás adatskálázási és normalizálási technikái megkönnyítik a funkciófejlesztést. Ezeket a technikákat és a funkciófejlesztést együttesen featurizációnak nevezzük az automatizált ML-kísérletekben.

Előfeltételek

Ez a cikk feltételezi, hogy már tudja, hogyan konfigurálhat automatizált gépi tanulási kísérletet.

Fontos

A cikkben szereplő Python-parancsokhoz a legújabb azureml-train-automl csomagverzió szükséges.

A konfigurációval kapcsolatos információkért tekintse meg a következő cikkeket:

A featurizáció konfigurálása

Minden automatizált gépi tanulási kísérletben alapértelmezés szerint automatikus skálázási és normalizálási technikákat alkalmazunk az adatokra. Ezek a technikák olyan featurizációs típusok, amelyek segítenek bizonyos algoritmusoknak, amelyek érzékenyek a különböző skálázási funkciókra. Több featurizációt is engedélyezhet, például hiányzó értékek számítását, kódolását és átalakítását.

Megjegyzés:

Az automatizált gépi tanulási featurizálás lépései (például a funkció normalizálása, a hiányzó adatok kezelése vagy a szöveg numerikussá alakítása) az alapul szolgáló modell részévé válnak. Ha a modellt előrejelzésekhez használja, a betanítás során alkalmazott featurizációs lépések automatikusan a bemeneti adatokra lesznek alkalmazva.

A Python SDK-val konfigurált kísérletek esetében engedélyezheti vagy letilthatja a featurizálási beállítást, és tovább határozhatja meg a kísérlethez használandó featurizációs lépéseket. Ha az Azure Machine Tanulás studiót használja, tekintse meg a featurizáció engedélyezésének lépéseit.

Az alábbi táblázat az AutoMLConfig osztály elfogadott beállításait featurizationmutatja be:

A featurizáció konfigurációja Leírás
"featurization": 'auto' Azt határozza meg, hogy az előfeldolgozás részeként az adatvédettségi és a featurizálási lépéseket automatikusan el kell végezni. Ez az alapértelmezett beállítás.
"featurization": 'off' Azt határozza meg, hogy a rendszer ne végezze el automatikusan a featurizálási lépéseket.
"featurization": 'FeaturizationConfig' Megadja, hogy a testre szabott featurizációs lépéseket kell használni. Ismerje meg, hogyan szabhatja testre a featurizációt.

Automatikus érlelési folyamat

Az alábbi táblázat az adatokra automatikusan alkalmazott technikákat foglalja össze. Ezeket a technikákat az SDK-val vagy a stúdió felhasználói felületével konfigurált kísérletekre alkalmazza a rendszer. A viselkedés letiltásához állítsa be "featurization": 'off' az AutoMLConfig objektumot.

Megjegyzés:

Ha az AutoML által létrehozott modelleket ONNX-modellbe szeretné exportálni, csak a csillaggal ("*") jelölt featurizációs beállítások támogatottak ONNX formátumban. További információ a modellek ONNX-gé alakításáról.

A featurizáció lépései Leírás
Magas számosság elvetése vagy varianciafunkciók nélkül* Ezeket a funkciókat elveti a betanítási és érvényesítési csoportokból. Azokra a funkciókra vonatkozik, amelyekben az összes érték hiányzik, és az összes sorban ugyanaz az érték, vagy nagy számosságú (például kivonatok, azonosítók vagy grafikus felhasználói felületi azonosítók).
Hiányzó értékek impute* Numerikus jellemzők esetén az oszlop értékeinek átlagával impute.

Kategorikus funkciók esetén a leggyakoribb értékkel impute.
További funkciók létrehozása* DateTime funkciók esetén: Év, Hónap, Nap, Hét napja, Év napja, Negyedév, Év Hetének, Óra, Perc, Másodperc.

Az előrejelzési feladatokhoz ezek a további DateTime-funkciók jönnek létre: ISO-év, Fél- félév, Naptári hónap sztringként, Hét, Hét napja sztringként, Negyedév napja, Év napja, DÉL/ÓRA (0, ha az óra dél előtt van (12 óra), 1 egyéb esetben), AM/PM sztringként, Nap órája (12 órás alap)

Szövegfunkciók esetén: Kifejezés gyakorisága unigramok, bigramok és trigramok alapján. További információ a BERT használatával végzett műveletről .
Átalakítás és kódolás* A kevés egyedi értékkel rendelkező numerikus funkciókat kategorikus funkciókká alakíthatja.

Az egyszeri kódolás alacsony számosságú kategorikus funkciókhoz használható. A magas számosságú kategorikus funkciókhoz egy gyakori kivonatos kódolás használható.
Word-beágyazások A szöveges featuráló előre betanított modellel mondatvektorokká alakítja a szöveges jogkivonatok vektorait. A program a dokumentum minden egyes szó beágyazási vektorát összesíti a többivel, így létrehoz egy dokumentumfunkció-vektort.
Fürt távolsága K-közép fürtmodell betanítása az összes numerikus oszlopra. K új funkciókat hoz létre (fürtenként egy új numerikus funkciót), amelyek tartalmazzák az egyes minták távolságát az egyes fürtök centroidjához.

Minden automatizált gépi tanulási kísérletben az adatok automatikusan skálázódnak vagy normalizálódnak, hogy az algoritmusok megfelelően teljesíthessenek. A modell betanítása során az alábbi skálázási vagy normalizálási technikák egyikét alkalmazza a rendszer az egyes modellekre.

Skálázás > feldolgozás Leírás
StandardScaleWrapper A funkciók szabványosítása a középérték eltávolításával és az egység varianciájának skálázásával
MinMaxScalar A funkciókat úgy alakítja át, hogy az egyes funkciókat az adott oszlop minimális és maximális mérete alapján skáláz
MaxAbsScaler Az egyes funkciók skálázása a maximális abszolút értékével
RobustScalar A funkciók skálázása a kvantilis tartományuk szerint
PEM Lineáris dimenziócsökkentés az adatok szingularis értékének felbontásával, hogy azokat alacsonyabb dimenziós térbe vetítsék
TruncatedSVDWrapper Ez a transzformátor lineáris dimenziócsökkentést végez csonkolt szingularis értékbontás (SVD) segítségével. A PCA-val ellentétben ez a becslő nem központozza az adatokat a szingularis érték felbontásának kiszámítása előtt, ami azt jelenti, hogy hatékonyan képes együttműködni a scipy.sparse mátrixokkal
SparseNormalizer Minden minta (azaz az adatmátrix minden sora) legalább egy nem nulla összetevővel együtt újraskálázva van más mintáktól függetlenül, hogy a normája (l1 vagy l2) egy

Adatvédettségi korlátok

Az adatőrzők segítenek azonosítani az adatokkal kapcsolatos lehetséges problémákat (például hiányzó értékeket vagy az osztály kiegyensúlyozatlanságát). Emellett segítenek korrekciós műveletek elvégzésében a jobb eredmények érdekében.

Az adatvédettségeket a rendszer az alábbiak szerint alkalmazza:

  • SDK-kísérletek esetén: Amikor a paraméterek meg "featurization": 'auto' vannak adva az AutoMLConfig objektumban, vagy validation=auto meg vannak adva.
  • Stúdiókísérletek esetén: Ha az automatikus érés engedélyezve van.

A kísérlet adatvédettségeit áttekintheti:

  • A kísérlet SDK-val történő elküldésének beállításával show_output=True .

  • A stúdióban, az automatizált ml-futtatás Data guardrails lapján.

Adatvédettségi állapotok

Az adatőrzők három állapot egyikét jelenítik meg:

State Leírás
Át lett adva A rendszer nem észlelt adatproblémát, és ön nem igényel semmilyen műveletet.
Megtett A rendszer módosításokat alkalmazott az adatokra. Javasoljuk, hogy tekintse át az AutoML által végrehajtott korrekciós műveleteket, hogy a módosítások igazodjanak a várt eredményekhez.
Figyelmeztették A rendszer adatproblémát észlelt, de nem sikerült elhárítani. Javasoljuk, hogy vizsgálja felül és javítsa ki a problémát.

Támogatott adatkorlátok

Az alábbi táblázat a jelenleg támogatott adatvédettségeket és a kísérlet elküldésekor esetlegesen megjelenő kapcsolódó állapotokat ismerteti:

Védőkorlát Állapot Eseményindító feltétele
Hiányzó funkcióértékek számítása Át lett adva


Kész
A betanítási adatok nem észleltek hiányzó funkcióértékeket. További információ a hiányzó érték számításáról .

A rendszer hiányzó funkcióértékeket észlelt a betanítási adatokban, és imputálta őket.
Magas számosságú funkcióészlelés Át lett adva


Kész
A rendszer elemezte a bemeneteket, és nem észlelt magas számosságú funkciókat.

A rendszer magas számosságú funkciókat észlelt a bemenetekben, és kezelte őket.
Érvényesítési felosztás kezelése Kész Az érvényesítési konfiguráció beállítása megtörtént, 'auto' és a betanítási adatok kevesebb mint 20 000 sort tartalmaztak.
A betanított modell minden iterációja keresztérvényesítéssel lett érvényesítve. További információ az érvényesítési adatokról.

Az érvényesítési konfiguráció a következőre 'auto'lett állítva, és a betanítási adatok több mint 20 000 sort tartalmaztak.
A bemeneti adatok egy betanítási adatkészletre és egy érvényesítési adatkészletre lettek felosztva a modell érvényesítéséhez.
Osztályelosztás észlelése Át lett adva



Figyelmeztették


Kész
A bemenetek elemzése megtörtént, és az összes osztály ki van egyensúlyban a betanítási adatokban. Az adatkészletek akkor tekinthetők kiegyensúlyozottnak, ha minden osztály jól ábrázolja az adathalmazt, a minták számával és arányával mérve.

A rendszer kiegyensúlyozatlan osztályokat észlelt a bemenetekben. A modell elfogultságának javításához javítsa ki az egyensúlyozási problémát. További információ a kiegyensúlyozatlan adatokról.

A rendszer kiegyensúlyozatlan osztályokat észlelt a bemenetekben, és a takarítási logika úgy döntött, hogy kiegyensúlyozást alkalmaz.
Memóriaproblémák észlelése Át lett adva



Kész

A rendszer elemezte a kiválasztott értékeket (horizont, késés, gördülő ablak), és nem észleltek memóriakimaradási problémákat. További információ az idősorok előrejelzési konfigurációiról.


A rendszer elemezte a kiválasztott értékeket (horizont, késés, gördülő ablak), és valószínűleg a kísérlet memóriavesztéséhez vezethet. A késés vagy a gördülőablak-konfiguráció ki lett kapcsolva.
Gyakoriság-észlelés Át lett adva



Kész

Az idősor elemzése megtörtént, és az összes adatpont igazodik az észlelt gyakorisághoz.

A rendszer elemezte az idősort, és olyan adatpontokat észlelt, amelyek nem összhangban vannak az észlelt gyakorisággal. Ezek az adatpontok el lettek távolítva az adathalmazból.
Keresztérvényesítés Kész Az AutoML által betanított modell(ek) pontos kiértékelése érdekében egy olyan adathalmazt használunk, amelyen a modell nincs betanítve. Ezért ha a felhasználó nem ad meg explicit érvényesítési adatkészletet, a betanítási adatkészlet egy részét használja ennek eléréséhez. Kisebb adathalmazok (kevesebb mint 20 000 minta) esetén a keresztérvényesítést a rendszer kihasználja, máskülönben egyetlen visszatartott készlet lesz felosztva a betanítási adatokból, hogy érvényesítési adatkészletként szolgáljon. Ezért a bemeneti adatok esetében a keresztérvényesítést 10 hajtással használjuk, ha a betanítási minták száma 1000-nél kevesebb, és minden más esetben 3-szoros.
Adatok felosztásának betanítása és tesztelése Kész Az AutoML által betanított modell(ek) pontos kiértékelése érdekében egy olyan adathalmazt használunk, amelyen a modell nincs betanítve. Ezért ha a felhasználó nem ad meg explicit érvényesítési adatkészletet, a betanítási adatkészlet egy részét használja ennek eléréséhez. Kisebb adathalmazok (kevesebb mint 20 000 minta) esetén a keresztérvényesítést a rendszer kihasználja, máskülönben egyetlen visszatartott készlet lesz felosztva a betanítási adatokból, hogy érvényesítési adatkészletként szolgáljon. Ezért a bemeneti adatok egy betanítási adatkészletre és egy visszatartott érvényesítési adatkészletre lettek felosztva.
Idősor-azonosító észlelése Át lett adva



Fixed

A rendszer elemezte az adathalmazt, és nem észlelt ismétlődő időindexet.

Az adatkészletben több idősor is található, és az idősorazonosítók automatikusan létre lettek hozva az adathalmazhoz.
Idősorok összesítése Át lett adva



Fixed

Az adathalmaz gyakorisága igazodik a felhasználó által megadott gyakorisághoz. Nem történt összesítés.

Az adatok összesítése a felhasználó által megadott gyakoriságnak megfelelően történt.
Rövid sorozatok kezelése Át lett adva



Fixed

Az automatizált gépi tanulás elegendő adatpontot észlelt a bemeneti adatok minden adatsorához a betanítás folytatásához.

Az automatizált gépi tanulás azt észlelte, hogy egyes adatsorok nem tartalmaznak elegendő adatpontot a modell betanításához. A betanítás folytatásához ezeket a rövid sorozatokat elvették vagy kipárnázták.

A featurizáció testreszabása

Testre szabhatja a featurizációs beállításokat, hogy az ML-modell betanításához használt adatok és szolgáltatások releváns előrejelzéseket eredményezhessenek.

A featurizációk testreszabásához adja meg "featurization": FeaturizationConfig az AutoMLConfig objektumot. Ha az Azure Machine Tanulás Studiót használja a kísérlethez, tekintse meg az útmutatót. Az előrejelzési tevékenységtípusok featurizálásának testreszabásához tekintse meg az előrejelzési útmutatót.

A támogatott testreszabások a következők:

Testreszabás Definition
Oszlop rendeltetésének frissítése A megadott oszlop automatikusan észlelt funkciótípusának felülbírálása.
Transzformátorparaméter frissítése Frissítse a megadott transzformátor paramétereit. Jelenleg támogatja az Imputert (középérték, leggyakoribb és medián) és a HashOneHotEncodert.
Oszlopok elvetése Megadja azokat az oszlopokat, amelyeket el szeretne dobni a featurizálástól.
Transzformátorok blokkolása Megadja a featurizálási folyamat során használni kívánt blokktranszformátorokat.

Megjegyzés:

A drop columns funkció elavult az SDK 1.19-es verziójától. Az adathalmaz oszlopait az adattisztítás részeként csepegtetheti, mielőtt felhasználja azt az automatizált gépi tanulási kísérletben.

Hozza létre az FeaturizationConfig objektumot API-hívások használatával:

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

A featurizáció átláthatósága

Minden AutoML-modell esetében automatikusan alkalmazunk featurizációt. A featurizálás magában foglalja az automatizált funkciófejlesztést (ha "featurization": 'auto') és a skálázást és a normalizálást, amely ezután hatással van a kiválasztott algoritmusra és annak hiperparaméter-értékeire. Az AutoML különböző módszereket támogat annak érdekében, hogy látható legyen a modellre alkalmazott módszer.

Tekintse meg ezt az előrejelzési példát:

  • Négy bemeneti funkció létezik: A (Numerikus), B (Numerikus), C (Numerikus), D (DateTime).
  • A C numerikus funkció elvetve, mert egy azonosító oszlop, amely minden egyedi értéket tartalmaz.
  • Az A és a B numerikus jellemzők hiányzó értékekkel rendelkeznek, ezért a középérték alapján imputálják.
  • A D DateTime funkció 11 különböző tervezett funkcióra van felosztva.

Az információk beszerzéséhez használja az fitted_model automatizált gépi tanulási kísérlet kimenetét.

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

Automatizált funkciófejlesztés

A get_engineered_feature_names() visszaadott szolgáltatásnevek listáját adja vissza.

Megjegyzés:

Használja a "timeseriestransformer" kifejezést a task='forecasting' kifejezéshez, máskülönben használja a "datatransformer" kifejezést a "regressziós" vagy a "besorolási" tevékenységhez.

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

Ez a lista tartalmazza az összes megtervezett funkciónevet.

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

A get_featurization_summary() rendszer lekéri az összes bemeneti funkció featurizálási összegzését.

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

Hozam

[{'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']}]
Hozam Definition
RawFeatureName Bemeneti funkció/oszlop neve a megadott adatkészletből.
TypeDetected A bemeneti funkció észlelt adattípusa.
Csökkent Azt jelzi, hogy a bemeneti funkció el lett-e dobva vagy használva.
EngineeringFeatureCount Az automatizált funkciótervezési átalakítások által létrehozott funkciók száma.
Átalakítások A bemeneti funkciókra alkalmazott átalakítások listája a mérnöki funkciók létrehozásához.

Skálázás és normalizálás

A skálázás/normalizálás és a kiválasztott algoritmus hiperparaméter-értékekkel való megértéséhez használja fitted_model.stepsa következőt: .

A következő mintakimenet egy kiválasztott futtatáshoz való futtatásból fitted_model.steps származik:

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

További részletekért használja ezt a segédfüggvényt:

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

Ez a segédfüggvény az alábbi kimenetet adja vissza egy adott futtatáshoz az adott algoritmus használatával LogisticRegression with RobustScalar .

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}

Osztály valószínűségének előrejelzése

Az automatizált gépi tanulást használó modellek mind olyan burkolóobjektumokkal rendelkeznek, amelyek a nyílt forráskódú forrásosztályuk funkcióit tükrözik. Az automatizált gépi tanulás által visszaadott besorolási modell burkolóobjektumai többsége implementálja a predict_proba() függvényt, amely a funkciók tömbszerű vagy ritka mátrixadatmintáját (X-értékeket) fogad el, és az egyes minták n dimenziós tömbjét és annak megfelelő osztály valószínűségét adja vissza.

Feltéve, hogy a legjobb futtatási és beszerelt modellt ugyanazokkal a fenti hívásokkal lekérte, közvetlenül a felszerelt modellből hívhat predict_proba() , és a modell típusától függően a megfelelő formátumban adhat meg mintát X_test .

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

Ha a mögöttes modell nem támogatja a predict_proba() függvényt, vagy a formátum helytelen, a rendszer egy modellosztály-specifikus kivételt küld. Tekintse meg a RandomForestClassifier és az XGBoost referencia-dokumentumokat, amelyekből megtudhatja, hogyan implementálható ez a függvény a különböző modelltípusokhoz.

BERT-integráció az automatizált gépi tanulásban

A BERT az automatizált ml featurizációs rétegében használatos. Ha ebben a rétegben egy oszlop szabad szöveget vagy más adattípust tartalmaz, például időbélyegeket vagy egyszerű számokat, akkor a rendszer ennek megfelelően alkalmazza a jellemzőkre bontást.

A BERT esetében a modell finomhangolása és betanítása a felhasználó által megadott címkékkel történik. Ezt követően a dokumentumbeágyazások kimenete jellemzők lesznek más, például időbélyeg-alapú jellemzőkkel vagy a hét napjával.

Megtudhatja, hogyan állíthat be olyan természetes nyelvi feldolgozási (NLP-) kísérleteket, amelyek a BERT-t is használják automatizált gépi tanulással.

A BERT meghívásának lépései

A BERT meghívásához állítsa be enable_dnn: True a automl_settings, és használjon GPU-számítást (vm_size = "STANDARD_NC6" vagy magasabb GPU-t). Ha cpu-számítást használ, akkor a BERT helyett az AutoML engedélyezi a BiLSTM DNN featurizert.

Az automatizált gépi tanulás a következő lépéseket hajtja végre a BERT esetében.

  1. Az összes szövegoszlop előfeldolgozása és tokenizálása. A "StringCast" transzformátor például megtalálható a végső modell featurizációs összegzésében. Ebben a jegyzetfüzetben található egy példa a modell featurizációs összegzésének elkészítésére.

  2. Az összes szöveges oszlopot egyetlen szöveges oszlopba fűzi össze, így a StringConcatTransformer végső modellben.

    A BERT implementációja a betanítási minta teljes szöveghosszát 128 jogkivonatra korlátozza. Ez azt jelenti, hogy az összes szöveges oszlopnak összefűzve ideális esetben legfeljebb 128 token hosszúságúnak kell lennie. Ha több oszlop van jelen, minden oszlopot metszeni kell, hogy ez a feltétel teljesüljön. Ellenkező esetben 128 token hosszúságú >összefűzött oszlopok esetén a BERT tokenizer rétege ezt a bemenetet 128 tokenre csonkolja.

  3. A funkciósöprés részeként az AutoML összehasonlítja a BERT-t az adatok mintáján szereplő alapkonfigurációval (zsáknyi szófunkcióval). Ez az összehasonlítás azt határozza meg, hogy a BERT pontossági javulást eredményez-e. Ha a BERT az alapkonfigurációnál jobban teljesít, akkor az AutoML a teljes adat szöveges featurizálásához a BERT-et használja. Ebben az esetben a PretrainedTextDNNTransformer végső modellben fog megjelenni.

A BERT általában hosszabb ideig fut, mint a többi featurizer. A jobb teljesítmény érdekében a "STANDARD_NC24r" vagy a "STANDARD_NC24rs_V3" használatát javasoljuk az RDMA-képességeikhez.

Az AutoML több csomóponton is elosztja a BERT-betanítást, ha elérhetők (legfeljebb nyolc csomópontig). Ezt úgy teheti meg az objektumban, AutoMLConfig hogy a max_concurrent_iterations paramétert 1-nél magasabbra állítja.

Támogatott nyelvek a BERT-hez az AutoML-ben

Az AutoML jelenleg körülbelül 100 nyelvet támogat, és az adathalmaz nyelvétől függően az AutoML a megfelelő BERT-modellt választja. Német adatok esetén a német BERT-modellt használjuk. Angol nyelven az angol BERT modellt használjuk. Minden más nyelv esetében a többnyelvű BERT-modellt használjuk.

A következő kódban a német BERT-modell aktiválódik, mivel az adatkészlet nyelve az ISO-besorolásnak megfelelően a német három betűnyelvi kódhoz van megadvadeu:

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
}

További lépések