แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ PyTorch-แƒ˜แƒก แƒกแƒแƒ•แƒแƒ แƒฏแƒ˜แƒจแƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒ–แƒ”. PyTorch-แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒฆแƒแƒšแƒ˜ แƒ“แƒแƒœแƒ˜แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒ˜แƒกแƒ แƒ“แƒ แƒจแƒ”แƒ แƒ”แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ–แƒฃแƒกแƒขแƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ— แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒ›แƒแƒขแƒแƒœแƒ˜แƒšแƒ˜ แƒแƒ‘แƒกแƒขแƒ แƒแƒฅแƒชแƒ˜แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒกแƒ’แƒแƒœ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒแƒฎแƒแƒšแƒ˜ API-แƒ˜แƒก แƒจแƒ”แƒกแƒฌแƒแƒ•แƒšแƒแƒก, แƒ—แƒฃ แƒ›แƒแƒ— แƒกแƒฃแƒ แƒ— แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒกแƒแƒ•แƒแƒ แƒฏแƒ˜แƒจแƒ แƒชแƒ˜แƒ™แƒšแƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒ. ๐Ÿค— Accelerate แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ PyTorch-แƒ˜แƒก แƒ˜แƒ› แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒกแƒฃแƒ แƒ— แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒ— แƒกแƒ แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜ แƒ—แƒแƒ•แƒ˜แƒแƒœแƒ— แƒกแƒแƒ•แƒแƒ แƒฏแƒ˜แƒจแƒ แƒชแƒ˜แƒ™แƒšแƒ”แƒ‘แƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ  แƒกแƒฃแƒ แƒ— แƒ“แƒแƒฌแƒ”แƒ แƒแƒœ (แƒ“แƒ แƒจแƒ”แƒ˜แƒœแƒแƒ แƒฉแƒฃแƒœแƒแƒœ) แƒ˜แƒก แƒจแƒแƒ‘แƒšแƒแƒœแƒฃแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒ˜แƒก (แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” GPU-แƒ–แƒ” แƒ”แƒ แƒ— แƒแƒœ แƒ›แƒ”แƒข แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ”, TPU-แƒ”แƒ‘แƒ–แƒ”, ...) แƒแƒœ แƒจแƒ”แƒ แƒ”แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ–แƒฃแƒกแƒขแƒ˜แƒก แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“. แƒกแƒแƒ›แƒแƒ›แƒแƒ•แƒšแƒ แƒ’แƒ”แƒ’แƒ›แƒ”แƒ‘แƒ˜ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก fairscale-แƒ˜แƒก, deepspeed-แƒ˜แƒก, AWS SageMaker-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ-แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒ˜แƒ–แƒ›แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒ˜แƒ–แƒ›แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒแƒก. แƒ˜แƒก แƒ’แƒ—แƒแƒ•แƒแƒ–แƒแƒ‘แƒ— แƒแƒ  แƒ แƒแƒ›แƒ”แƒก: แƒ›แƒแƒ แƒขแƒ˜แƒ• แƒ“แƒ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒš API-แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ‘แƒกแƒขแƒ แƒแƒ’แƒ˜แƒ แƒ”แƒ‘แƒก แƒจแƒแƒ‘แƒšแƒแƒœแƒฃแƒ  แƒ™แƒแƒ“แƒก, แƒ“แƒ แƒ’แƒแƒ›แƒจแƒ•แƒ”แƒ‘ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก, แƒ แƒแƒ—แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒ”แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒ–แƒ”. แƒ›แƒแƒ“แƒ˜แƒ—, แƒฏแƒ”แƒ  แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒก แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ—: PyTorch-แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒš แƒกแƒแƒ•แƒแƒ แƒฏแƒ˜แƒจแƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒจแƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฎแƒฃแƒ—แƒ˜ แƒฎแƒแƒ–แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ”แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒš แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜, แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ แƒ”แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ–แƒฃแƒกแƒขแƒ˜แƒ— แƒแƒœ แƒ›แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. ๐Ÿค— Accelerate แƒ—แƒฅแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒก แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒ–แƒ” แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒกแƒแƒช, แƒแƒกแƒ” แƒ แƒแƒ›, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ™แƒ˜แƒ“แƒ”แƒ• แƒฃแƒคแƒ แƒ แƒ’แƒแƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ— แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒกแƒแƒ•แƒแƒ แƒฏแƒ˜แƒจแƒ แƒชแƒ˜แƒ™แƒšแƒ˜: แƒแƒ›แƒ˜แƒก แƒกแƒแƒžแƒ˜แƒ แƒ˜แƒกแƒžแƒ˜แƒ แƒแƒ“, แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒ˜แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒแƒ› แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒ˜แƒ— แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“: แƒ”แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒกแƒแƒ•แƒแƒ แƒฏแƒ˜แƒจแƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก แƒ›แƒ แƒแƒ•แƒแƒš GPU-แƒ–แƒ” แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒจแƒ”แƒฌแƒงแƒ•แƒ”แƒขแƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก CPU-แƒ–แƒ” แƒแƒœ แƒ”แƒ แƒ— GPU-แƒ–แƒ” (แƒ—แƒฃ แƒงแƒ•แƒ”แƒšแƒ’แƒแƒœ if แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒแƒก แƒแƒ  แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒ—). แƒ™แƒ˜แƒ“แƒ”แƒ• แƒฃแƒคแƒ แƒ แƒจแƒ”แƒ›แƒแƒฌแƒฃแƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ—แƒฃ แƒ’แƒกแƒฃแƒ แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ TPU-แƒ”แƒ‘แƒ–แƒ”, แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒฎแƒแƒ–แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ. แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ”แƒฎแƒ”แƒ‘แƒ แƒจแƒ”แƒ แƒ”แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ–แƒฃแƒกแƒขแƒ˜แƒก แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒกแƒแƒช. ๐Ÿค— Accelerate-แƒ˜แƒก แƒ“แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒแƒ: แƒ˜แƒ›แƒ˜แƒก แƒกแƒแƒœแƒแƒฎแƒแƒ•แƒแƒ“, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒแƒจแƒ˜, แƒ›แƒแƒ“แƒ˜แƒ—, แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒฎแƒแƒ–แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒกแƒแƒ•แƒแƒ แƒฏแƒ˜แƒจแƒ แƒชแƒ˜แƒ™แƒšแƒก. แƒ’แƒแƒ แƒ“แƒ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒ’แƒ•แƒแƒฌแƒ•แƒ“แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ—, แƒ”แƒก แƒฎแƒแƒ–แƒ˜ แƒ’แƒแƒ แƒ”แƒ›แƒแƒ“แƒแƒœ แƒ’แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒก แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒ˜แƒก แƒขแƒ˜แƒžแƒก แƒ“แƒ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก. แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒ˜แƒซแƒฃแƒšแƒแƒ— แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒ˜ CPU-แƒ–แƒ” แƒแƒœ แƒจแƒ”แƒ แƒ”แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ–แƒฃแƒกแƒขแƒ˜แƒก แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒ˜, แƒ—แƒฃ init-แƒก แƒ’แƒแƒ“แƒแƒกแƒชแƒ”แƒ›แƒ— cpu=True แƒแƒœ fp16=True แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒก. แƒแƒ แƒ˜แƒ•แƒ” แƒแƒ› แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—แƒแƒช. แƒ”แƒก แƒแƒ แƒ˜แƒก API-แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ“แƒ แƒ˜แƒก แƒ›แƒแƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒก แƒกแƒแƒ› แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒขแƒ˜แƒžแƒ˜แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒก: แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒก (torch.nn.Module), แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒขแƒแƒ แƒ”แƒ‘แƒก (torch.optim.Optimizer) แƒ“แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ›แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ”แƒ‘แƒก (torch.data.dataloader.DataLoader). แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ แƒจแƒ”แƒคแƒฃแƒ—แƒ•แƒแƒก (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, DistributedDataParallel) แƒ“แƒ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒ–แƒ” แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒก. แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ“แƒแƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก แƒแƒ›แƒแƒฎแƒกแƒœแƒ แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒแƒ“, แƒแƒœ แƒ›แƒ˜แƒกแƒ˜ แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒแƒ“, แƒ แƒ˜แƒกแƒ˜ แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒแƒช แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ accelerator.unwrap_model(model)-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒคแƒฃแƒ—แƒฃแƒšแƒ˜แƒ แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒก แƒœแƒแƒ‘แƒ˜แƒฏแƒจแƒ˜, แƒ แƒแƒ—แƒ แƒจแƒ”แƒ แƒ”แƒฃแƒšแƒ›แƒ แƒกแƒ˜แƒ–แƒฃแƒกแƒขแƒ”แƒ› แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก. แƒ˜แƒก แƒแƒกแƒ”แƒ•แƒ” แƒกแƒฌแƒแƒ แƒแƒ“ แƒ’แƒแƒฃแƒ›แƒ™แƒšแƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ˜แƒก แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒ˜แƒก (state dict) แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒ–แƒ” แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒก, แƒ—แƒฃ แƒ˜แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒชแƒแƒ แƒ˜แƒ”แƒšแƒ˜ แƒแƒœ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒฃแƒšแƒ˜แƒ checkpoint-แƒ˜แƒ“แƒแƒœ. แƒแƒฅ แƒ˜แƒ›แƒแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒ’แƒ˜แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜. แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ แƒœแƒแƒฎแƒ”แƒ—, แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒแƒ  แƒ”แƒงแƒ แƒ“แƒœแƒแƒ‘แƒ DistributedSampler-แƒก, แƒ˜แƒก แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒ›แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ”แƒšแƒ—แƒแƒœ (sampler), แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ’แƒแƒ“แƒแƒกแƒชแƒ”แƒ›แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒก dataloader-แƒก (แƒ—แƒฃ แƒแƒ“แƒ”แƒกแƒ›แƒ” แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒ”แƒ แƒกแƒแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒ›แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒšแƒ˜แƒก แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ, แƒแƒ›แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ แƒแƒฆแƒแƒ  แƒแƒ แƒ˜แƒก!). แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ›แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ˜ แƒจแƒ”แƒคแƒฃแƒ—แƒฃแƒšแƒ˜แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ›แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒšแƒ˜แƒ“แƒแƒœ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒก แƒแƒ˜แƒฆแƒ”แƒ‘แƒก (แƒแƒœ แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ‘แƒก แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒก แƒกแƒฎแƒ•แƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฃ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— IterableDataset-แƒก) แƒ“แƒ แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒ–แƒ” แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒก. แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ”แƒก แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก, Accelerate แƒ’แƒ—แƒแƒ•แƒแƒ–แƒแƒ‘แƒ— แƒ“แƒแƒ›แƒฎแƒ›แƒแƒ แƒ” แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒš แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒžแƒ แƒแƒชแƒ”แƒกแƒ–แƒ” แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ—แƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒก แƒ›แƒแƒแƒฎแƒ“แƒ”แƒœแƒก แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก. แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“, แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒจแƒ”แƒ›แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒšแƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒก แƒแƒฎแƒ“แƒ”แƒœแƒก แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ (data augmentation) แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒžแƒ แƒแƒชแƒ”แƒกแƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ—แƒ˜ แƒแƒ แƒ”แƒ•แƒ (random shuffling) แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ“แƒแƒ แƒฉแƒ”แƒ‘แƒ. แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ”แƒก แƒ“แƒแƒ›แƒฎแƒ›แƒแƒ แƒ” แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ›แƒ”แƒขแƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ—แƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฃ แƒ”แƒก แƒ“แƒแƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ—. แƒ”แƒก แƒฃแƒ™แƒแƒœแƒแƒกแƒ™แƒœแƒ”แƒšแƒ˜ แƒฎแƒแƒ–แƒ˜ แƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒœแƒแƒ‘แƒ˜แƒฏแƒ”แƒ‘แƒก แƒฃแƒ™แƒฃแƒ’แƒแƒ•แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒแƒ“ แƒจแƒ”แƒ แƒ”แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ–แƒฃแƒกแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒฎแƒ•แƒ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒก แƒแƒฅ แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒฅแƒชแƒ”แƒ•แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ). แƒจแƒ”แƒคแƒแƒกแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ”แƒจแƒ•แƒแƒก แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒงแƒ•แƒ”แƒšแƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ–แƒ”, แƒแƒœ แƒ—แƒฃ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒกแƒฃแƒ แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ›แƒ—แƒแƒ•แƒแƒ  แƒžแƒ แƒแƒชแƒ”แƒกแƒ–แƒ”, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ˜: แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒคแƒแƒกแƒ”แƒ‘แƒ Accelerate-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒแƒ˜, แƒ แƒ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒคแƒแƒกแƒ”แƒ‘แƒ˜แƒก แƒชแƒ˜แƒ™แƒšแƒก: แƒ แƒแƒ’แƒแƒ แƒช แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒ”แƒ แƒ—แƒ˜ แƒฎแƒแƒ–แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒจแƒ”แƒคแƒแƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ›แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ˜แƒก แƒ›แƒแƒกแƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒšแƒแƒ“. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— accelerator.gather, แƒ แƒแƒ—แƒ แƒจแƒ”แƒแƒ’แƒ แƒแƒ•แƒแƒ— แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ’แƒœแƒแƒ–แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ”แƒขแƒ˜แƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒขแƒ”แƒœแƒกแƒแƒ แƒ”แƒ‘แƒ˜. แƒ‘แƒแƒšแƒ แƒ“แƒแƒกแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒฎแƒแƒ–แƒ˜ แƒญแƒ แƒ˜แƒก แƒžแƒ แƒแƒ’แƒœแƒแƒ–แƒ”แƒ‘แƒกแƒ แƒ“แƒ แƒ”แƒขแƒ˜แƒ™แƒ”แƒขแƒ”แƒ‘แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒ›แƒ“แƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒคแƒแƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ›แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ˜ แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒก แƒ˜แƒ›แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒกแƒแƒงแƒแƒคแƒแƒ“, แƒ แƒแƒ› แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ–แƒ” แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ–แƒแƒ›แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒ—. Accelerate-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜ แƒกแƒ แƒฃแƒšแƒแƒ“ แƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒ“แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒขแƒ แƒแƒ“แƒ˜แƒชแƒ˜แƒฃแƒš แƒ’แƒแƒ›แƒจแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ—แƒแƒœ, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ torch.distributed.launch. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒ“แƒแƒ›แƒแƒฎแƒกแƒแƒ•แƒ แƒ”แƒ‘แƒ แƒชแƒแƒขแƒ แƒจแƒ”แƒ›แƒแƒฌแƒฃแƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ“แƒ แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ 4 GPU-แƒ˜แƒ— แƒ’แƒแƒฅแƒ•แƒ— แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒแƒก แƒ›แƒแƒ— แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒฃแƒจแƒ•แƒ”แƒ‘แƒ—. Accelerate-แƒก แƒ›แƒแƒงแƒ•แƒ”แƒ‘แƒ