Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 a Modellek betanítása az Azure Machine Learning segítségével című dokumentumot a Python SDK-val történő 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 munkavégző csomópontoknak szinkronizálniuk kell a modell paramétereket vagy gradienseket a kötegelt számítás végén, hogy biztosítsák, hogy egy konzisztens modellt tanítanak.
Modell párhuzamosság
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.