Megosztás a következőn keresztül:


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

A KÖVETKEZŐKRE VONATKOZIK: Python SDK azureml v1

Ez a cikk bemutatja, hogyan szabhatja testre az adatok featurizálási beállításait az Azure Machine Learningben az automatizált gépi tanulási (AutoML-) 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ó a modellek betanítása során, gyakran szükség van más (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 nevezzük, ahol az adatok tartományismeretének használatával olyan funkciókat hozunk létre, amelyek segítenek a gépi tanulási algoritmusoknak a jobb tanulásban.

Az Azure Machine Learningben adatskálázási és normalizálási technikákat alkalmaznak a funkciófejlesztés megkönnyítése érdekében. Ezeket a technikákat és a funkciófejlesztést együttesen featurizációnak nevezzük az automatizált gépi tanulási (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.

Feljegyzé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 Learning 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 featurization mutatja 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 adja meg, hogy a featurizálási lépéseket nem kell automatikusan elvégezni.
"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.

Feljegyzé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 jellemzők szabványosítása a középérték eltávolításával és az egységeltérésre való skálázással.
MinMaxScalar A funkciókat úgy alakítja át, hogy az egyes funkciókat az oszlop minimális és maximális értéke szerint 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 Szingular Value Decomposition használatával kisebb dimenziós térbe való kivetítéséhez.
TruncatedSVD Ez a transzformátor lineáris dimenziócsökkentést végez csonkolt szingularis értékbontás (SVD) használatával. 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 használható a scipy.sparse mátrixokkal.
SparseNormalizer Minden mintát (vagyis az adatmátrix minden sorát) a rendszer a többi mintától függetlenül újraskáláz, hogy a normája (l1 vagy l2) egy legyen.

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 engedélyezve van az automatikus érés

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:

Állapot Leírás
Át lett adva A rendszer nem észlelt adatproblémát, és ön nem igényel semmilyen műveletet.
Kész 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ók ki vannak 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éséhez olyan adatkészletet használunk, amelybe 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 keresztérvényesítést használunk, 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 adatokhoz keresztérvényesítést használunk 10 hajtással, 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éséhez olyan adatkészletet használunk, amelybe 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 keresztérvényesítést használunk, 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 lesznek felosztva.
Idősor-azonosító észlelése Át lett adva


Rögzített méretű lemez
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


Rögzített méretű lemez
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


Rögzített méretű lemez
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 képzés folytatásához ezeket a rövid sorozatokat ledobtá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 Learning 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 Definíció
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.

Feljegyzé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 az összes egyedi értéket tartalmazza.
  • 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.

Feljegyzé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',ateTime','DateTime','DateTime']}]
Hozam Definíció
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 hívásokkal gyűjtötte be, 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 modell osztályspecifikus kivétele lesz. 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íthatja be az AutoML-t természetes nyelvi feldolgozási modell betanítása a Pythonnal.

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 transzformátor például StringCast 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 jelenik meg.

A BERT általában hosszabb ideig fut, mint a többi featurizer. A jobb teljesítmény érdekében javasoljuk, hogy STANDARD_NC24r vagy STANDARD_NC24rs_V3 használja 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ópont). 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
}