Az AutoML beállítása természetes nyelvi feldolgozási modell betanítása

ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)

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 Tanulás. NLP-modelleket automatizált gépi tanulással az Azure Machine Tanulás Python SDK v2 vagy az Azure Machine Tanulás CLI v2 használatával hozhat létre.

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 az NLP-feladatokhoz. Az NLP-feladatok közé tartozik a többosztályos szövegbesorolás, a többcímkés szövegbesorolás és az elnevezett entitásfelismerés (NER).

Zökkenőmentesen integrálhatja az Azure Machine Tanulás adatcímkézési funkcióját a szöveges adatok címkézéséhez vagy a meglévő címkézett adatokhoz. 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 Tanulás MLOps-képességeivel.

Előfeltételek

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

  • Egy Azure-előfizetés. Ha nem rendelkezik Azure-előfizetéssel, regisztráljon az Azure Machine ingyenes vagy fizetős verziójának kipróbálására ma Tanulás.

  • Egy Azure Machine Tanulás 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. További információ: GPU-optimalizált virtuálisgép-méretek az Azure által biztosított GPU-példányok további részleteiért.

    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 Tanulás CLI v2 telepítve van. A legújabb verzió frissítésével és telepítésével kapcsolatos útmutatásért tekintse meg a parancssori felület (v2) telepítését és beállítását ismertető témakört.

  • 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 ú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 AutoML-feladat szintaxisa Leírás
Többosztályos szövegbesorolás CLI v2: text_classification
SDK v2: 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 besorolása például "Vígjáték" vagy "Romantikus".
Többfeliratos szövegbesorolás CLI v2: text_classification_multilabel
SDK v2: 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 filmszkriptet például "Vígjáték" vagy "Romantikus" vagy "Vígjáték és romantikus" besorolással sorolhat be.
Nevesített entitások felismerése (NER) CLI v2:text_ner
SDK v2: 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.

Küszöbérték-küszöb

A küszöbérték-emelés a többcímke-funkció, amely lehetővé teszi a felhasználók számára, hogy kiválaják azt a küszöbértéket, amely az előrejelzett valószínűségek pozitív címkéhez vezetnek. Az alacsonyabb értékek több címkét biztosítanak, ami jobb, ha a felhasználók jobban törődnek a visszahívással, de ez a beállítás több hamis pozitív értéket eredményezhet. A magasabb értékek kevesebb címkét biztosítanak, és így jobbak a pontosságot kedvelő felhasználók számára, de ez a beállítás több hamis negatívumot eredményezhet.

Adatok előkészítése

Az automatizált gépi tanulás NLP-kísérleteihez többosztályos és többcímkés besorolási feladatokhoz is formázhatja az adatokat .csv . 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. Az alábbi szakaszok az egyes tevékenységekhez elfogadott adatformátum részleteit ismertetik.

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élda:

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 modell betanítása előtt az automatizált gépi tanulás adatérvényesítési ellenőrzéseket végez a bemeneti adatokon annak biztosítása é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.

Megjegyzé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 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 None
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 kell követnie {token} {label}, 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 Obetű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 feladatspecifikus automl típusú feladatokon keresztül aktiválódik, amely ugyanaz a munkafolyamat, amely automatizált ML-kísérleteket küld be besorolási, regressziós és előrejelzési feladatokhoz. A paramétereket a kísérletekhez, például experiment_namecompute_name az adatbemenetekhez hasonlóan állíthatja be.

Vannak azonban főbb különbségek:

  • Figyelmen kívül hagyhatja primary_metric, mivel ez csak jelentéskészítési célokra 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 adathalmaz mintáinak több mint 10%-a több mint 128 jogkivonatot tartalmaz, az hosszú tartománynak számít.
    • A hosszú távú szöveges funkció használatához NC6 vagy magasabb/jobb GPU-kat kell használnia, például: NCv3 sorozat vagy ND sorozat.

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

A CLI v2 automatizált ml-feladatokhoz a kísérletet az alábbiakhoz hasonló YAML-fájlban konfigurálhatja.

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

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

Az adathalmaz nyelvét a konfigurációs YAML-fájl featurizálási szakaszában adhatja meg. A BERT-et az automatizált ml-kísérletek betanításának featurizálási folyamatában is használják, további információ az automatizált gépi tanulás (SDK v1) BERT-integrációjáról és featurizálásáról.

featurization:
   dataset_language: "eng"

Distributed training

Az NLP-kísérleteket elosztott betanítással is futtathatja egy Azure Machine Tanulás számítási fürtön.

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

Az AutoML-feladat elküldése

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

Az AutoML-feladat elküldéséhez futtassa a következő CLI v2 parancsot az .yml fájl elérési útjával, a munkaterület nevével, az erőforráscsoporttal és az előfizetés azonosítójával.


az ml job create --file ./hello-automl-job-basic.yml --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]

Kódpéldák

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

Tekintse meg az alábbi YAML-mintafájlokat az egyes NLP-feladatokhoz.

Modellsöprés és hiperparaméter finomhangolása (előzetes verzió)

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.

For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Az AutoML NLP lehetővé teszi a hiperparaméterek modelljeinek és kombinációinak listáját a konfiguráció hiperparaméter keresési területén keresztül. A Hyperdrive több gyermekfuttatást hoz létre, amelyek mindegyike egy adott NLP-modell finomhangolási futtatása, valamint a megadott keresési terület alapján kiválasztott és végigsöprő hiperparaméter-értékek készlete.

Támogatott modell-algoritmusok

Az AutoML NLP-ben jelenleg elérhető összes előre betanított szöveges DNN-modell a finomhangoláshoz az alábbiakban látható:

  • bert-base-cased
  • bert-large-uncased
  • bert-base-többnyelvű-cased
  • bert-base-german-cased
  • bert-large-cased
  • distilbert-base-cased
  • distilbert-base-uncased
  • roberta-base
  • roberta-large
  • distilroberta-base
  • xlm-roberta-base
  • xlm-roberta-large
  • xlnet-base-cased
  • xlnet-large-cased

Vegye figyelembe, hogy a nagy modellek nagyobbak, mint az alap társaik. Általában teljesítményesebbek, de több GPU-memóriát és időt vesznek igénybe a betanításhoz. Ezért a termékváltozatra vonatkozó követelmények szigorúbbak: javasoljuk, hogy a legjobb eredmény érdekében ND sorozatú virtuális gépeken fusson.

Támogatott modell-algoritmusok – HuggingFace (előzetes verzió)

Az Azure Machine Tanulás-folyamatokon futó új háttérrendszerrel emellett bármilyen szöveg-jogkivonat-besorolási modellt használhat a HuggingFace Hub for Text Classification szolgáltatásból, amely a transzformátortár részét képezi (például microsoft/deberta-large-mnli). Az Azure Machine Tanulás modellregisztrációs adatbázisában a folyamatösszetevőkkel érvényesített modellek válogatott listája is megtalálható.

Bármely HuggingFace-modell használata folyamatösszetevők használatával indítja el a futtatásokat. Ha az örökölt és a HuggingFace-modelleket is használja, az összes futtatás/próba összetevővel aktiválódik.

Támogatott hiperparaméterek

Az alábbi táblázat az AutoML NLP által támogatott hiperparamétereket ismerteti.

Paraméter neve Leírás Syntax
gradient_accumulation_steps Azoknak a visszamenőleges műveleteknek a száma, amelyek színátmeneteit összesíteni kell, mielőtt végrehajtanak egy színátmenetes lejtési lépést az optimalizáló lépésfüggvényének meghívásával.

Ez egy hatékony kötegméret használata, amely gradient_accumulation_steps nagyobb, mint a GPU-nak megfelelő maximális méret.
Pozitív egész számnak kell lennie.
learning_rate Kezdeti tanulási arány. Lebegőpontosnak kell lennie a tartományban (0, 1).
learning_rate_scheduler A tanulási sebességütemező típusa. A listában kell választania linear, cosine, cosine_with_restarts, polynomial, constant, constant_with_warmup.
model_name Az egyik támogatott modell neve. A listában kell választania bert_base_cased, bert_base_uncased, bert_base_multilingual_cased, bert_base_german_cased, bert_large_cased, bert_large_uncased, distilbert_base_cased, distilbert_base_uncased, roberta_base, roberta_large, distilroberta_base, xlm_roberta_base, xlm_roberta_large, xlnet_base_cased, xlnet_large_cased.
number_of_epochs A betanítási korszakok száma. Pozitív egész számnak kell lennie.
training_batch_size Betanítási köteg mérete. Pozitív egész számnak kell lennie.
validation_batch_size Érvényesítési köteg mérete. Pozitív egész számnak kell lennie.
warmup_ratio A lineáris bemelegítéshez használt összes betanítási lépés aránya 0 és learning_rate között. Az [0, 1] tartományban lévő lebegőpontosnak kell lennie.
weight_decay A súlycsökkenés értéke, ha az optimalizáló sgd, adam vagy adamw. Az [0, 1] tartományban lévő lebegőpontosnak kell lennie.

Minden különálló hiperparaméter csak választási lehetőségek eloszlását teszi lehetővé, például az egész szám típusú training_batch_size és a sztring model_name típusú hiperparamétereket. Minden folyamatos hiperparaméter, például learning_rate az összes disztribúció támogatása.

A takarítási beállítások konfigurálása

Az összes takarítással kapcsolatos paraméter konfigurálható. Több modellaltér is létrehozható a megfelelő modellhez feltételes hiperparaméterekkel, ahogy az egyes hiperparaméter-finomhangolási példákban is látható.

Itt ugyanazokat a különálló és folyamatos terjesztési lehetőségeket támogatjuk, amelyek általános HyperDrive-feladatokhoz érhetők el. A modell hyperparameter-finomhangolásának mind a kilenc lehetősége

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

limits: 
  timeout_minutes: 120  
  max_trials: 4 
  max_concurrent_trials: 2 

sweep: 
  sampling_algorithm: grid 
  early_termination: 
    type: bandit 
    evaluation_interval: 10 
    slack_factor: 0.2 

search_space: 
  - model_name: 
      type: choice 
      values: [bert_base_cased, roberta_base] 
    number_of_epochs: 
      type: choice 
      values: [3, 4] 
  - model_name: 
      type: choice 
      values: [distilbert_base_cased] 
    learning_rate: 
      type: uniform 
      min_value: 0.000005 
      max_value: 0.00005 

Mintavételi módszerek a takarításhoz

Hiperparaméterek seprésekor meg kell adnia a mintavételezési módszert, amelyet a megadott paraméterterületen való átsöpréshez használ. Jelenleg a következő mintavételezési módszerek támogatottak a sampling_algorithm paraméterrel:

Mintavételezési típus AutoML-feladat szintaxisa
Véletlenszerű mintavételezés random
Rácsos mintavételezés grid
Bayesian mintavételezés bayesian

Kísérlet költségvetése

Opcionálisan megadhatja az AutoML NLP betanítási feladatához tartozó kísérlet költségvetését a timeout_minutes következő paraméterrel limits : a kísérlet leállása előtt percek alatt eltelt idő. Ha nincs megadva, a kísérlet alapértelmezett időtúllépése hét nap (legfeljebb 60 nap).

Az AutoML NLP azt is támogatja trial_timeout_minutes, hogy az egyes próbaverziók percek alatt maximálisan fussanak a leállítás előtt, és max_nodesa feladathoz használandó csomópontok maximális számát a háttér számítási fürtből. Ezek a paraméterek a limits szakaszhoz is tartoznak.

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

limits: 
  timeout_minutes: 60 
  trial_timeout_minutes: 20 
  max_nodes: 2 

Korai megszüntetési szabályzatok

Automatikusan befejezheti a rosszul teljesítő futtatásokat egy korai megszüntetési szabályzattal. A korai megszüntetés javítja a számítási hatékonyságot, így olyan számítási erőforrásokat takarít meg, amelyeket egyébként kevésbé ígéretes konfigurációkra fordítottak volna. Az AutoML NLP a paraméterrel támogatja a early_termination korai megszüntetési szabályzatokat. Ha nincs megadva leállítási szabályzat, a rendszer az összes konfigurációt a befejezésig futtatja.

További információ a hiperparaméter-takarítás korai megszakítási szabályzatának konfigurálásáról.

Erőforrások a takarításhoz

A hiperparaméteres takarításra fordított erőforrásokat a takarítás és max_concurrent_trials a max_trials takarítás megadásával szabályozhatja.

Paraméter Részlet
max_trials A átvizsgálandó konfigurációk maximális számának paramétere. 1 és 1000 közötti egész számnak kell lennie. Ha csak az adott modell-algoritmus alapértelmezett hiperparamétereit vizsgálja meg, állítsa ezt a paramétert 1 értékre. Az alapértelmezett érték 1.
max_concurrent_trials Egyidejűleg futtatható futtatások maximális száma. Ha meg van adva, 1 és 100 közötti egész számnak kell lennie. Az alapértelmezett érték 1.

MEGJEGYZÉS:
  • Az egyidejű futtatások száma a megadott számítási célban elérhető erőforrásokon van meghatározva. Győződjön meg arról, hogy a számítási cél rendelkezik a kívánt egyidejűséghez elérhető erőforrásokkal.
  • max_concurrent_trials belsőleg van leképezve max_trials . Ha például a felhasználó beállítja max_concurrent_trials=4, max_trials=2az értékek belsőleg frissülnek a következőként max_concurrent_trials=2: , max_trials=2.
  • Az összes takarítással kapcsolatos paramétert konfigurálhatja a példában látható módon.

    ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

    sweep:
      limits:
        max_trials: 10
        max_concurrent_trials: 2
      sampling_algorithm: random
      early_termination:
        type: bandit
        evaluation_interval: 2
        slack_factor: 0.2
        delay_evaluation: 6
    

    Ismert problémák

    Alacsony vagy magasabb veszteségértékek kezelése:

    Bizonyos adathalmazok esetében az NLP-tevékenységtől függetlenül a létrehozott pontszámok nagyon alacsonyak, néha akár nulla is lehetnek. Ezt a pontszámot magasabb veszteségértékek kísérik, amelyek azt jelentik, hogy a neurális hálózat nem tudott konvergálni. Ezek a pontszámok gyakrabban fordulhatnak elő bizonyos GPU-termékváltozatokon.

    Bár az ilyen esetek nem gyakoriak, lehetségesek, és a legjobb módja annak, hogy a hiperparaméterek finomhangolását használják, és szélesebb értéktartományt biztosítsanak, különösen a hiperparaméterek, például a tanulási arányok esetében. Amíg a hiperparaméter finomhangolási képessége éles környezetben nem érhető el, javasoljuk, hogy az NC6- vagy ND6 számítási fürtöket használja az ilyen problémákat tapasztaló felhasználók számára. Ezek a fürtök általában meglehetősen stabil betanítási eredménnyel rendelkeznek.

    További lépések