Az AutoML beállítása természetes nyelvi feldolgozási modell betanítása Pythonnal (előzetes verzió)
A KÖVETKEZŐKRE VONATKOZIK: Python SDK azureml v1
Fontos
Ez a funkció jelenleg nyilvános előzetes verzióban érhető el. Ez az előzetes verzió szolgáltatásszintű szerződés nélkül érhető el, és éles számítási feladatokhoz nem javasoljuk. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik.
További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.
Ebből a cikkből megtudhatja, hogyan taníthat be természetes nyelvi feldolgozási (NLP-) modelleket automatizált gépi tanulással az Azure Machine Learning Python SDK-ban.
Az automatizált gépi tanulás támogatja az NLP-t, amely lehetővé teszi az ml-szakemberek és adattudósok számára, hogy saját szöveges adatokat hozzanak létre, és egyéni modelleket hozzanak létre olyan feladatokhoz, mint a többosztályos szövegbesorolás, a többcímkés szövegbesorolás és a nevesített entitásfelismerés (NER).
Zökkenőmentesen integrálható az Azure Machine Learning adatcímkézési funkciójával a szöveges adatok címkézéséhez vagy a meglévő címkézett adatok behozásához. Az automatizált gépi tanulás lehetővé teszi, hogy elosztott betanítást használjon több GPU-s számítási fürtökön a modell gyorsabb betanítása érdekében. Az eredményül kapott modell méretezhető az Azure Machine Learning MLOps-képességeinek kihasználásával.
Előfeltételek
Egy Azure-előfizetés. Ha nem rendelkezik Azure-előfizetéssel, regisztráljon az Azure Machine Learning ingyenes vagy fizetős verziójának kipróbálására.
Azure Machine Learning-munkaterület GPU-betanítási számítással. A munkaterület létrehozásához lásd : Munkaterület-erőforrások létrehozása. Az Azure által biztosított GPU-példányok további részleteiért tekintse meg a GPU-optimalizált virtuálisgép-méreteket.
Figyelmeztetés
A többnyelvű modellek és a hosszabb sorozathosszúságú modellek támogatása több NLP-használati esethez szükséges, például nem angol nyelvű adatkészletekhez és hosszabb tartományú dokumentumokhoz. Ennek eredményeképpen ezek a forgatókönyvek nagyobb GPU-memóriát igényelhetnek a modell betanításának sikerességéhez, például a NC_v3 sorozathoz vagy az ND sorozathoz.
Az Azure Machine Learning Python SDK telepítve van.
Az SDK telepítéséhez
Hozzon létre egy számítási példányt, amely automatikusan telepíti az SDK-t, és előre konfigurálva van az ML-munkafolyamatokhoz. További információ: Azure Machine Learning számítási példány létrehozása és kezelése.
Telepítse saját maga a
automl
csomagot, amely tartalmazza az SDK alapértelmezett telepítését.
Fontos
A cikkben szereplő Python-parancsokhoz a legújabb
azureml-train-automl
csomagverzió szükséges.- Telepítse a legújabb
azureml-train-automl
csomagot a helyi környezetbe. - A legújabb
azureml-train-automl
csomag részleteiért tekintse meg a kibocsátási megjegyzéseket.
Ez a cikk feltételezi, hogy bizonyos ismeretekkel rendelkezik egy automatizált gépi tanulási kísérlet beállításához. Kövesse az oktatóanyagot vagy útmutatót a gépi tanulási kísérlet fő tervezési mintáinak megtekintéséhez.
Az NLP-feladat kiválasztása
Határozza meg, hogy milyen NLP-feladatot szeretne végrehajtani. Az automatizált gépi tanulás jelenleg a következő mély neurális hálózati NLP-feladatokat támogatja.
Task | AutoMLConfig szintaxis | Leírás |
---|---|---|
Többosztályos szövegbesorolás | task = 'text-classification' |
Több lehetséges osztály is létezik, és minden minta pontosan egy osztályként besorolható. A feladat az egyes minták megfelelő osztályának előrejelzése. Egy filmszkript például "Vígjáték" vagy "Romantikus" besorolású. |
Többfeliratos szövegbesorolás | task = 'text-classification-multilabel' |
Több lehetséges osztály is létezik, és minden minta tetszőleges számú osztályhoz rendelhető. A feladat az egyes minták összes osztályának előrejelzése Egy filmszkript besorolása például "Vígjáték", "Romantikus" vagy "Vígjáték és romantikus". |
Nevesített entitások felismerése (NER) | task = 'text-ner' |
A jogkivonatok több lehetséges címkét is tartalmaznak sorozatokban. A feladat az egyes sorozatok összes jogkivonatának címkéinek előrejelzése. Például tartományspecifikus entitások kinyerése strukturálatlan szövegből, például szerződésekből vagy pénzügyi dokumentumokból |
Adatok előkészítése
Az automatizált gépi tanulásban végzett NLP-kísérletekhez többosztályos és többcímkés besorolási feladatokhoz formázott Azure Machine Learning-adatkészletet .csv
hozhat létre. A NER-feladatok esetében támogatottak azok a kétoszlopos .txt
fájlok, amelyek szóközt használnak elválasztóként, és megfelelnek a CoNLL formátumnak. A következő szakaszok további részleteket nyújtanak az egyes tevékenységekhez elfogadott adatformátumról.
Többosztályos
Többosztályos besorolás esetén az adathalmaz több szöveges oszlopot és pontosan egy címkeoszlopot tartalmazhat. Az alábbi példában csak egy szövegoszlop található.
text,labels
"I love watching Chicago Bulls games.","NBA"
"Tom Brady is a great player.","NFL"
"There is a game between Yankees and Orioles tonight","MLB"
"Stephen Curry made the most number of 3-Pointers","NBA"
Többcímke
Többcímke-besorolás esetén az adathalmazoszlopok megegyeznek a többosztályosokkal, de a címkeoszlopban lévő adatokra speciális formátumkövetelmények vonatkoznak. A két elfogadott formátum és példa az alábbi táblázatban található.
Címkeoszlop formátumbeállításai | Több címke | Egy címke | Nincs címke |
---|---|---|---|
Egyszerű szöveg | "label1, label2, label3" |
"label1" |
"" |
Python-lista idézőjelekkel | "['label1','label2','label3']" |
"['label1']" |
"[]" |
Fontos
Ezekhez a formátumokhoz különböző elemzők használhatók címkék olvasásához. Ha egyszerű szöveges formátumot használ, csak betűrendes, numerikus és '_'
feliratokat használjon. A rendszer minden más karaktert a címkék elválasztójaként ismer fel.
Ha például a címke az "cs.AI"
, akkor az írásvédett és "cs"
"AI"
a . Míg a Python-lista formátuma esetén a címke a következőképpen olvasható "['cs.AI']"
"cs.AI"
: .
Példaadatok egyszerű szöveges formátumú többcímkéhez.
text,labels
"I love watching Chicago Bulls games.","basketball"
"The four most popular leagues are NFL, MLB, NBA and NHL","football,baseball,basketball,hockey"
"I like drinking beer.",""
Példaadatok többcímkés Python-listában idézőjelek formátumával.
text,labels
"I love watching Chicago Bulls games.","['basketball']"
"The four most popular leagues are NFL, MLB, NBA and NHL","['football','baseball','basketball','hockey']"
"I like drinking beer.","[]"
Elnevezett entitásfelismerés (NER)
A többosztályos vagy többcímkés .csv
adathalmazoktól eltérően az elnevezett entitások felismeréséhez CoNLL-formátum szükséges. A fájlnak pontosan két oszlopot kell tartalmaznia, és minden sorban a jogkivonatot és a címkét egyetlen szóköz választja el egymástól.
Például,
Hudson B-loc
Square I-loc
is O
a O
famous O
place O
in O
New B-loc
York I-loc
City I-loc
Stephen B-per
Curry I-per
got O
three O
championship O
rings O
Adatellenőrzés engedélyezése
A betanítás előtt az automatizált gépi tanulás adatérvényesítési ellenőrzéseket végez a bemeneti adatokon annak érdekében, hogy az adatok megfelelően feldolgozhatók legyenek. Ha bármelyik ellenőrzés sikertelen, a futtatás a megfelelő hibaüzenettel meghiúsul. Az alábbi követelmények vonatkoznak az egyes tevékenységek adatérvényesítési ellenőrzésének elvégzésére.
Feljegyzés
Egyes adatérvényesítési ellenőrzések mind a betanításra, mind az érvényesítési csoportra érvényesek, míg mások csak a betanítási csoportra vonatkoznak. Ha a tesztadatkészlet nem tudta átadni az adatérvényesítést, az azt jelenti, hogy az automatizált gépi tanulás nem tudta rögzíteni, és fennáll a modell következtetési hibája vagy a modell teljesítményének csökkenése.
Task | Adatérvényesítés ellenőrzése |
---|---|
Minden tevékenység | – Betanítási és érvényesítési csoportokat is meg kell adni - Legalább 50 képzési minta szükséges |
Többosztályos és többcímke | A betanítási és érvényesítési adatoknak rendelkezniük kell - Ugyanazzal az oszlopkészlettel - Az oszlopok sorrendje balról jobbra – Ugyanaz az adattípus az azonos nevű oszlopokhoz - Legalább két egyedi címke - Egyedi oszlopnevek az egyes adatkészleteken belül (például a betanítási csoport nem rendelkezhet több, Életkor nevű oszloppal) |
Csak többosztályos | Egyik sem |
Csak többcímke | - A címkeoszlop formátumának elfogadott formátumban kell lennie - Legalább egy mintának 0 vagy 2+ címkével kell rendelkeznie, ellenkező esetben feladatnak kell lennie multiclass - Az összes címke formátuma str vagy int formátuma legyen, átfedés nélkül. Nem szabad címkével 1 és címkével sem rendelkeznie '1' |
Csak NER | – A fájl nem üres sorból indul ki - Minden sornak üres vonalnak kell lennie, vagy formátumot {token} {label} kell követnie, ahol pontosan egy térköz van a jogkivonat és a címke között, és nincs szabad terület a címke után - Minden címkének a kezdő vagy a pontos O betűvel I- B- kell kezdődnie. Kis- és nagybetűk megkülönböztetése - Pontosan egy üres vonal két minta között - Pontosan egy üres sor a fájl végén |
Kísérlet konfigurálása
Az automatizált gépi tanulás NLP-képessége a besorolási, regressziós és előrejelzési feladatok automatizált ML-kísérleteinek beküldéséhez használt munkafolyamaton keresztül AutoMLConfig
aktiválódik. A legtöbb paramétert a kísérletekhez, például task
compute_target
az adatbemenetekhez hasonlóan állíthatja be.
Vannak azonban főbb különbségek:
- Figyelmen kívül hagyhatja
primary_metric
, mivel csak jelentéskészítési célra szolgál. Az automatizált gépi tanulás jelenleg csak egy modellt tanít be futtatásonként az NLP-hez, és nincs modellválasztás. - A
label_column_name
paraméter csak többosztályos és többcímkés szövegbesorolási feladatokhoz szükséges. - Ha az adathalmazban lévő minták többsége több mint 128 szót tartalmaz, akkor az hosszú tartománynak számít. Ebben a forgatókönyvben engedélyezheti a hosszú távú szöveg beállítást a paraméterrel a
enable_long_range_text=True
sajátAutoMLConfig
. Ezzel javítja a modell teljesítményét, de hosszabb betanítási időt igényel.- Ha engedélyezi a hosszú távú szöveget, akkor nagyobb memóriával rendelkező GPU-ra van szükség, például NCv3 sorozatra vagy ND sorozatra.
- A
enable_long_range_text
paraméter csak többosztályos besorolási feladatokhoz érhető el.
automl_settings = {
"verbosity": logging.INFO,
"enable_long_range_text": True, # # You only need to set this parameter if you want to enable the long-range text setting
}
automl_config = AutoMLConfig(
task="text-classification",
debug_log="automl_errors.log",
compute_target=compute_target,
training_data=train_dataset,
validation_data=val_dataset,
label_column_name=target_column_name,
**automl_settings
)
Nyelvi beállítások
Az NLP funkcióinak részeként az automatizált gépi tanulás 104 nyelvet támogat, amelyek nyelvspecifikus és többnyelvű előre betanított szöveges DNN-modelleket használnak, például a BERT modellcsaládot. Jelenleg a nyelvi kijelölés alapértelmezés szerint angol.
Az alábbi táblázat összefoglalja, hogy milyen modellt alkalmaz a rendszer a tevékenységtípus és a nyelv alapján. Tekintse meg a támogatott nyelvek és kódjuk teljes listáját.
Tevékenység típusa | Szintaxis a következőhöz: dataset_language |
Szövegmodell-algoritmus |
---|---|---|
Többfeliratos szövegbesorolás | 'eng' 'deu' 'mul' |
Az angol BERT ki van csomagolva Német BERT Többnyelvű BERT Minden más nyelv esetében az automatizált gépi tanulás többnyelvű BERT-t alkalmaz |
Többosztályos szövegbesorolás | 'eng' 'deu' 'mul' |
Angol BERT-eset Többnyelvű BERT Minden más nyelv esetében az automatizált gépi tanulás többnyelvű BERT-t alkalmaz |
Elnevezett entitásfelismerés (NER) | 'eng' 'deu' 'mul' |
Angol BERT-eset Német BERT Többnyelvű BERT Minden más nyelv esetében az automatizált gépi tanulás többnyelvű BERT-t alkalmaz |
Az adathalmaz nyelvét megadhatja a FeaturizationConfig
sajátjában. A BERT-t az automatizált gépi tanulási kísérletek betanításának featurizálási folyamatában is használják, és többet is megtudhat az automatizált gépi tanulás BERT-integrációjáról és featurizálásáról.
from azureml.automl.core.featurization import FeaturizationConfig
featurization_config = FeaturizationConfig(dataset_language='{your language code}')
automl_config = AutomlConfig("featurization": featurization_config)
Elosztott betanítás
Az NLP-kísérleteket elosztott betanítással is futtathatja egy Azure Machine Learning számítási fürtön. Ezt automatikusan kezeli az automatikus gépi tanulás, amikor a paramétereket max_concurrent_iterations = number_of_vms
enable_distributed_dnn_training = True
megadja a AutoMLConfig
kísérlet beállítása során.
max_concurrent_iterations = number_of_vms
enable_distributed_dnn_training = True
Ezzel ütemezi az NLP-modellek elosztott betanítását, és automatikusan skálázza a virtuális gépek vagy virtuális gépek fürtöinek minden GPU-ját. Az engedélyezett virtuális gépek maximális száma 32. A betanítás a két fős virtuális gépek számával van ütemezve.
Példajegyzetfüzetek
Az egyes NLP-feladatokra vonatkozó részletes kódpéldákat a mintajegyzetfüzetekben találja.
Következő lépések
- További információ a modell üzembe helyezésének módjáról és módjáról.
- Automatizált gépi tanulási kísérletek hibaelhárítása.