Elosztott betanítás az Azure Machine Tanulás

Ebben a cikkben megismerheti az elosztott betanítást, és azt, hogy az Azure Machine Tanulás hogyan támogatja azt mélytanulási modellekhez.

Az elosztott betanítás során a modell betanításához használt számítási feladat fel van osztva és megosztva több miniprocesszor, úgynevezett feldolgozó csomópont között. Ezek a feldolgozó csomópontok párhuzamosan működnek a modell betanításának felgyorsítása érdekében. Az elosztott betanítás hagyományos gépi tanulási modellekhez használható, de jobban használható számítási és időigényes feladatokhoz, például mély tanulás mély neurális hálózatok betanításához.

Mélytanulás és elosztott képzés

Az elosztott betanításnak két fő típusa van: az adat-párhuzamosság és a modell-párhuzamosság. A mélytanulási modellek elosztott betanításához az Azure Machine Tanulás SDK a Pythonban támogatja a PyTorch és a TensorFlow integrációját. Mindkettő népszerű keretrendszer, amely adat-párhuzamosságot alkalmaz az elosztott betanításhoz, és a Horovod használatával optimalizálhatja a számítási sebességet.

Az elosztott betanítást nem igénylő gépi tanulási modellek esetében tekintse meg az Azure Machine Tanulás modellek betanítását a Python SDK-val való betanítás különböző módjairól.

Adat-párhuzamosság

Az adat-párhuzamosság a legegyszerűbben implementálható a két elosztott betanítási módszer közül, és a legtöbb használati esethez elegendő.

Ebben a megközelítésben az adatok partíciókra vannak osztva, ahol a partíciók száma megegyezik a rendelkezésre álló csomópontok teljes számával a számítási fürtben vagy a kiszolgáló nélküli számításban. A modell az egyes feldolgozó csomópontokban lesz átmásolva, és minden csomópont az adatok saját részhalmazán működik. Ne feledje, hogy minden csomópontnak rendelkeznie kell a betanított modell támogatásához szükséges kapacitással, vagyis a teljes modellnek el kell férnie az egyes csomópontokon.

Az alábbi diagram ezt a megközelítést mutatja be.

A feldolgozó csomópontokba másolt modell adatparrallelizmusának diagramja.

Minden csomópont egymástól függetlenül számítja ki a betanítási mintákra vonatkozó előrejelzések és a címkézett kimenetek közötti hibákat. Az egyes csomópontok a hibák alapján frissítik a modellt, és minden módosítást közölniük kell a többi csomópontgal a megfelelő modellek frissítéséhez. A feldolgozó csomópontoknak szinkronizálniuk kell a modellparamétereket vagy színátmeneteket a kötegelt számítás végén, hogy meggyőződjenek arról, hogy konstansokat képeznek be sátormód l.

Modell párhuzamossága

A modell-párhuzamosság, más néven hálózati párhuzamosság esetén a modell különböző részekre van szegmentáltan, amelyek egyszerre futtathatók különböző csomópontokon, és mindegyik ugyanazon az adatokon fut. Ennek a módszernek a méretezhetősége az algoritmus feladat-párhuzamosságának mértékétől függ, és összetettebb implementálni, mint az adat-párhuzamosság.

A modell párhuzamosságában a feldolgozó csomópontoknak csak a megosztott paramétereket kell szinkronizálniuk, általában minden előre- vagy visszamenőleges propagálási lépéshez egyszer. Emellett a nagyobb modellek sem okoznak problémát, mivel minden csomópont a modell egy alszakaszán működik ugyanazon a betanítási adatokon.