Distribuované trénování s využitím služby Azure Machine Učení

V tomto článku se dozvíte o distribuovaném trénování a o tom, jak ho Azure Machine Učení podporuje pro modely hlubokého učení.

V distribuovaném trénování se úloha pro trénování modelu rozdělí a sdílí mezi několik miniprocesorů označovaných jako pracovní uzly. Tyto pracovní uzly fungují paralelně a urychlují trénování modelu. Distribuované trénování se dá použít pro tradiční modely strojového učení, ale je vhodnější pro výpočetní a časově náročné úlohy, jako je hluboké učení pro trénování hlubokých neurálních sítí.

Hluboké učení a distribuované trénování

Existují dva hlavní typy distribuovaného trénování: datový paralelismus a paralelismus modelu. Pro distribuované trénování modelů hlubokého učení podporuje sada Azure Machine Učení SDK v Pythonu integraci s PyTorchem a TensorFlowem. Obě jsou oblíbené architektury, které využívají datový paralelismus pro distribuované trénování a můžou pomocí Horovodu optimalizovat výpočetní rychlosti.

U modelů strojového učení, které nevyžadují distribuované trénování, najdete v tématu Trénování modelů pomocí služby Azure Machine Učení různé způsoby trénování modelů pomocí sady Python SDK.

Datový paralelismus

Datový paralelismus je nejjednodušší implementovat dva distribuované přístupy trénování a je dostačující pro většinu případů použití.

V tomto přístupu jsou data rozdělená do oddílů, kde se počet oddílů rovná celkovému počtu dostupných uzlů ve výpočetním clusteru nebo bezserverovém výpočetním prostředí. Model se zkopíruje v každém z těchto pracovních uzlů a každý uzel pracuje s vlastní podmnožinou dat. Mějte na paměti, že každý uzel musí mít kapacitu pro podporu trénovaného modelu, to znamená, že celý model se musí vejít do každého uzlu.

Tento přístup je znázorněný na následujícím schématu.

Diagram parrallelismu dat zobrazující model zkopírovaný do pracovních uzlů

Každý uzel nezávisle vypočítá chyby mezi predikcemi pro své trénovací vzorky a označenými výstupy. Každý uzel pak aktualizuje svůj model na základě chyb a musí sdělit všechny jeho změny ostatním uzlům, aby se aktualizovaly jejich odpovídající modely. Pracovní uzly musí synchronizovat parametry modelu nebo přechody na konci dávkového výpočtu, aby se zajistilo, že trénují konsis režim stanu l.

Paralelismus modelu

V modelu paralelismu, označovaného také jako síťový paralelismus, se model segmentuje do různých částí, které se můžou spouštět souběžně v různých uzlech, a každý z nich běží na stejných datech. Škálovatelnost této metody závisí na stupni paralelizace úloh algoritmu a je složitější implementovat než datový paralelismus.

V modelu paralelismu musí pracovní uzly synchronizovat sdílené parametry, obvykle jen jednou pro každý krok dopředu nebo dozadu šíření. Větší modely se také netýkají, protože každý uzel pracuje v pododdílu modelu na stejných trénovacích datech.