Elosztott betanítás az Azure Machine Learning használatával
Ebben a cikkben megismerheti az elosztott betanítást, és azt, hogy az Azure Machine Learning 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 a Pythonban található Azure Machine Learning SDK 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 Learning modelljeinek betanítását a Python SDK-val végzett modellek betanításának 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.
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.