Summary
β¨ Federated learning
βΎ Exploits huge amount of data across clients
βΎ data is non-IID
βΎ Brief indroduction of FedAvg
β¨ Distributed learning
βΎ Make training Faster
βΎ Data evenly distributed
βΎ data parallel : Forward pass, Backward pass , Weight update
π Communication : Allreduce - ring reduction, One-host reduction
βΎ Model parallel
π inter-layer parallel (pipeline) : sub-minibatches, interleaved layers
π intra-layer parallel : row-wise partitioning , column-wise partitioning , Alternating partitioning
1οΈβ£ Federated learning
β Decentralized data
π Data is born at the Edge
βΎ λ°μ΄ν°λ edge μμ μμ°λλ€.
βΎ μλ§μ μ€λ§νΈν°κ³Ό IoT κΈ°κΈ°λ‘λΆν° λ°μ΄ν°κ° κ³μ μμ°λλ€.
βΎ λ°μ΄ν°λ‘λΆν° νμ΅μ μ§ννμ¬ μμ§μ μλΉμ€λ₯Ό λ§λ λ€.
π νμ€μνλ data
π Centralized dataset processed in integrated system
βΎ λ¨Έμ λ¬λμ νμ€μ μΈ νκ²½μ μ€μνλ λ°μ΄ν°μ μ΄ μκ³ κ·Έκ²μ κΈ΄λ°νκ² μ°κ²°λ λκ·λͺ¨ μλ²λ‘ νμ΅νκ² λλ€.
π Often decentralized
βΎ μ€μΈκ³μμλ λ°μ΄ν°λ μΌλ°μ μΌλ‘ IoT κΈ°κΈ°, μ¬λ¬ κΈ°κ΄ λ± λ€μν κ³³μμ μμ°λκΈ° λλ¬Έμ λ°μ΄ν°κ° λΆμ°ν λμ΄ μλ κ²½μ°κ° λ§λ€.
π μ€μνλ data λ°©μμ νκ³μ
π Sending the data is too costly
βΎ edge device λ‘λΆν° μ€μ μλ²λ‘κΉμ§ λ°μ΄ν°λ₯Ό 보λ΄λ κ³Όμ μμ²΄κ° λ§€μ° λ§μ λΉμ©μ μλͺ¨νλ€.
βΎ μμ¨μ£Όν μλμ°¨λ ν루μ Tera byte λ¨μμ λ°μ΄ν°λ₯Ό λ§€μΌ μμ°νλλ°, μ΄λ κ² ν° λ¨μμ λ°μ΄ν°λ₯Ό λ€νΈμν¬λ₯Ό ν΅ν΄ μλ²λ‘ 보λ΄λ κ³Όμ μ μλ°ν΄μΌ νλ©΄ λ§€μ° μ€λ μκ° + μλμ§ + μ λ ₯μλͺ¨κ° λ°μνλ€.
⾠무μ κΈ°κΈ°λ€μ bandwidth λ power κ° μ νλμ΄ μκΈ° λλ¬Έμ λ€νΈμν¬λ‘ λ°μ΄ν°λ₯Ό 보λ΄λλ° λΉμ©μ΄ λ§μ΄ λ λ€.
π Data may be considered too sensitive : privacy
βΎ λ°μ΄ν° μ¬μν λ¬Έμ μ λν κ·μ /μ°λ €μ§μ : λΆμ°νλ λ°μ΄ν°λ₯Ό κ°μ§κ³ μμΌλ©΄ κ° μμ μκ° λ°μ΄ν°λ₯Ό μμ νκ³ μλλ° λ°νμ¬, μ€μμλ²λ‘ λ°μ΄ν°λ₯Ό 보λ΄λ μκ°, λ°μ΄ν°μ μμ κ° λΆλͺ νν΄μ§λ©° λ°μ΄ν°κ° λΆμ€λ μλ μμ
βΎ νλμλ λ°μ΄ν°κ° 곧 κΆλ ₯μ΄κΈ° λλ¬Έμ λ°μ΄ν°λ₯Ό κ°μ§κ³ μλ κ²μ΄ λΉμ¦λμ€λ μ°κ΅¬λ₯Ό νλλ° μμ΄ κ²½μλ ₯μ λΆμ΄μΌμΌν€κ² λλ€. λλ¬Έμ λ°μ΄ν°λ₯Ό μ€μ μλ²λ‘ 보λΈλ€λ κ²μ λ°μ΄ν°λ₯Ό λΉΌμκΈ°λ κ²κ³Ό κ°λ€. λ€λ₯Έ party μκ² λ°μ΄ν°λ₯Ό μ μ‘νλ 격μ΄κΈ° λλ¬Έμ λ°μ΄ν° μμ μΈ‘λ©΄μμ κ²½μλ ₯μ μκ² λλ€.
β‘ On Device
π Data processing
π edge computing
βΎ λλ°μ΄μ€μ λΆμ°νλ λ°μ΄ν° νμμΌλ‘ λ°λκ³ μκ³ , λ°μ΄ν°λ₯Ό μ²λ¦¬νλ κ²μ‘°μ°¨ μλ²μμ μ²λ¦¬νλ κ²μ΄ μλ, λλ°μ΄μ€ λ¨μμ μ²λ¦¬νλ κ²μΌλ‘ λ°λκ³ μλ€.
π μ₯μ
βΎ Improved latency : μλ μ§μ°μ κ°μ μ κ°μ Έμ¨λ€ → edge μμ λ°λ‘ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ―λ‘ μλκ° λΉ λ¦
βΎ Works offline : λ€νΈμν¬μ μ°κ²°λμ΄ μμ§ μμλ μ€νλΌμΈμμ λμν μ μκ² λλ€.
βΎ Better battery life : λ°°ν°λ¦¬ μλͺ¨λμ μ€μΌ μ μκ² λλ€.
βΎ Privacy advantages : λ°μ΄ν°λ₯Ό μλ²λ‘ 보λ΄μ§ μμλ λλ―λ‘ μ μ‘ μ€κ°μ λ°μ΄ν°κ° κ°μ·¨λκ±°λ μ€μ μλ²κ° ν΄νΉλ κ±±μ μ΄ μμ (λ€λ₯Έ μ¬λκ³Ό λ°μ΄ν°λ₯Ό 곡μ νμ§ μκΈ° λλ¬Έμ 보μμ μ§κ° κ°λ₯ν¨)
π On-Device Training
βΎ λλ°μ΄μ€μμ νμ΅μ μ§ν : Perform ML learning on devices with its own data
π λ¨μ
βΎ local dataset may be too small : λλ°μ΄μ€μμ μμ§λ λ°μ΄ν°μ ν¬κΈ°κ° μκΈ° λλ¬Έμ μ€λ²νΌν μ΄ μΌμ΄λ κ°λ₯μ±μ΄ λμ μμΈ‘ μ±λ₯μ΄ μ’μ§ μμ μ μλ€.
βΎ local dataset may be biased : local dataset μ΄ νΈν₯λμ΄ training νκ³ μ νλ target distribution μ λλ³νμ§ μλ λ°μ΄ν°μ μΌ μ μλ€.
π personalization
βΎ μμκ°μ λ¨μ μ λλ¬Έμ on-device training μ μ£Όλ‘ κ°μΈνμ λ§μ΄ μ¬μ©λλ€.
π ex. μκΈμ¨ μΈμ μ΄ν : device λ¨μμ κ°μΈμ μκΈμ¨ λ°μ΄ν°λ₯Ό μΆμ νκ³ μλ²μμ μ¬μ νλ ¨λ λͺ¨λΈμ κ°μ Έμ fine tuning νλ κ³Όμ μ ν΅ν΄ μ μ μκΈμ¨μ μΈμλ₯ μ λμΈ μλΉμ€λ₯Ό μ 곡ν μ μλ€.
β’ Federated learning
π Federated learning
π collaboratively train a ML model while keeping the data decentralized
βΎ λ°μ΄ν°κ° λΆμ° μ μ₯ λμ΄ μμ λ λ¨Έμ λ¬λ λͺ¨λΈμ μ°ν©ν΄μ κ°μ΄ νλ ¨ νλ λ°©μ
βΎ μ΄μμ μΌλ‘λ, μ΅μ’ λͺ¨λΈμ΄ on-device νλ ¨μΌλ‘ μ»μ΄μ§ λͺ¨λΈλ³΄λ€ λ μ’μ μ±λ₯μΌλ‘ νΉμ μ€μνλ μλ²μμ νλ ¨ν λͺ¨λΈκ³Ό λΉμ·ν κ²°κ³Όλ₯Ό μ»κ²λ νλ κ²
π νμ΅ κ³Όμ
1. Model initialization : μλ²μμ neural network model μ μμ±νλ€.
2. μλ²μμ μμ±ν μ΄κΈ° λͺ¨λΈμ μ°ν©νμ΅μ μ°Έμ¬νλ device μκ² μ λ¬νλ€.
π κ° device λ λμΌν neural network model μ ν λΉλ°μ
3. κ° device λ ν λΉλ°μ μ΄κΈ° λͺ¨λΈλ‘ κ°μ νλ ¨μ μ§ννλ€.
4. κ° device μμ νλ ¨μ ν΅ν΄ μ»μ weight gradient (dW) λ€λ§ μλ²λ‘ 보λ΄μ μλ²μ λͺ¨λΈμ μ λ°μ΄νΈ νλ€.
β λ°μ΄ν°λ₯Ό μ§μ 보λ΄λ κ²μ΄ μλλΌ weight gradient λ₯Ό 보λ΄κΈ° λλ¬Έμ data privacy κ° μ μ§λλ€.
π νΉμ§
1. λ°μ΄ν°λ local μμ μμ±λλ©° λ°μ΄ν°λ μλ²μ λͺ¨μ΄μ§ μκ³ , λΆμ°νλ μ±λ‘ μ‘΄μ¬νλ€.
2. κ° client (device) κ° λ³ΈμΈμ λ°μ΄ν°λ₯Ό κ°μ§κ³ μκ³ , λ€λ₯Έ client μ λ°μ΄ν°μ μ κ·Όν μ μλ€.
π privacy κ° λ³΄μ‘΄λλ€.
3. client λ weight gradient κ°λ§ μλ²λ‘ 보λΈλ€.
4. Data λ non-IID νΉμ§μ κ°μ§λ€ : λ°μ΄ν°κ° λΉ λ 립μ μ΄κ³ λμΌνκ² λΆμ°λμ΄ μμ§ μλ€.
→ not identically distributed
: data distribution μ΄ client data λ§λ€ λ€λ₯΄κΈ° λλ¬Έμ νμ΅μ΄ μ ν λ€λ₯Έ μμμΌλ‘ μ΄λ£¨μ΄μ§
→ not independently
: λ°μ΄ν°κ° λΉλ 립μ μ΄λ€λΌλ κ²μ ν λ°μ΄ν°κ° λ€λ₯Έ λ°μ΄ν°μ μ’ μμ μΌ μ μλ€λ κ²
β μ΄λ¬ν νΉμ§μΌλ‘ μΈν΄ μ°ν©νμ΅μ global νκ² μ΅μ νλ λͺ¨λΈμ λ§λ€κΈ° μ΄λ ΅λ€. λ°λΌμ μ°ν©νμ΅ μ°κ΅¬μ μ΅μ νλ¦μ non-IID μν©μμλ νλ ¨μ΄ global νκ² μ΄λ£¨μ΄μ§λλ‘ νλ κ²μ μ§μ€λμ΄ μλ€.
5. μ°ν©νμ΅μ baseline μκ³ λ¦¬μ¦ : FedAvg
β£ FedAvg
π FedAvg λ strong non-IIDμμ μ λμνμ§ μλλ€.
π FedAvgκ° μ΅μ΄μ μ°ν©νμ΅ μκ³ λ¦¬μ¦μ΄λΌ non-IID λμ μ¬λΆκ° λΆμμ νλ€.
π Notations
βΎ K clients
βΎ Each client k holds dataset Dk of nk samples
βΎ D : joint dataset
βΎ n : total number of samples
π loss λ₯Ό μ΅μννλ νλΌλ―Έν° θ λ₯Ό μ°ΎκΈ°
π F(θ ; D) : loss function
π μ¦, κ° client κ° κ°κ°μ λ°μ΄ν°μ μΌλ‘ νμ΅μ μνν κ²μ΄κ³ , κ·Έκ²μ νκ· ν κ²μ΄ μ΅μ’ loss functionμ΄ λλ€. μ΄ loss function μ μ΅μννλ κ²μ΄ λͺ©ν!
π Local SGD
β Client sampling rate ρ
β ClientUpdate : λ³λ ¬μ μΌλ‘ weight update λ₯Ό μν
β Local step L, Batch size B
π¨ classic parallel SGD
π¨ local SGD
→ local SGD λ‘ νλ ¨νλ κ²μ΄ IID data ννλ‘ μλ ΄νλ€λ κ²μ΄ μ¦λͺ λμ΄μλ€
π Federated learning VS Distributed learning
β Federated learning
βΎ μ€μ©ν λ¨κ³κΉμ§ κ°μ§ λͺ»ν¨
βΎ client λ‘ λΆμ°νλ λ°μ΄ν°λ₯Ό νμ©νλ κ²μ΄ μ£Ό λͺ©ν
βΎ λ°μ΄ν°κ° λ³Έμ§μ μΌλ‘ λΆμ°λμ΄μκ³ κ΅μ§μ μΌλ‘ μμ°λλ€.
βΎ data κ° non-IID μ±μ§μ κ°μ§λ©° λΆκ· ννκ² λΆν¬νλ€.
βΎ privacy λ₯Ό κ°ννλ€.
βΎ limited reliability/availability : κ° μ°Έμ¬μμ μ νλ reliability λ₯Ό κ³ λ €ν΄μΌ νλ€. μ°ν©νμ΅μ νλ©΄μ νΉμ client κ° offline μ΄ λκ±°λ, λ€νΈμν¬κ° λΆμμ ν΄μ§ μ μλ€λ μν©λ κ³ λ €ν΄μΌ νλ€λ λ»!
βΎ robustness against malicious clients : μ μμ μΈ client μ λμνμ¬ μ λμν΄μΌ νλ€.
β‘ Distributed learning
βΎ μ£Όλ λͺ©ν : νμ΅μ λΆμ°ν΄μ μ²λ¦¬νκ² λ€ (λ°μ΄ν° κ΄μ μμμ λΆμ°μ΄ μλ) π νμ΅μ μ¬λ¬ μ»΄ν¨ν°λ‘ λΆμ°ν΄μ μν π λ³λ ¬μ±μ μ΄μ©ν΄ λ λΉ λ₯Έ νμ΅μ νλλ‘ ν¨
βΎ client (worker) λ€μ΄ λ°μ΄ν°λ₯Ό μ§μ λΆμ°μμΌμ€
βΎ μΌλ°μ μΌλ‘ λλ€νκ² uniform λΆν¬λ₯Ό κ°μ§κ³ λΆμ°λλ€.
4οΈβ£ Distributed learning
β Parallelism Taxonomy
π λ³λ ¬ νμ΅μ μ’ λ₯
π νμ΅ κ³Όμ μμμ μ°μ° λ¨κ³
π¨ Forward pass : W•X = Y
π¨ Backward pass (weight gradients) : dY•X' = dW
π¨ Backward pass (activation gradients) : W'•dY = dX
π¨ Weight update
β‘ Data parallel
π μ°μ°κ°μ
π Each worker
βΎ μ 체 entire neural network model μ 볡μ¬λ³Έμ κ°μ§κ³ μλ€.
βΎ μ 체 neural network μ ν΅ν΄ data μ μΌλΆλ₯Ό κ³μ°νκ² λλ€ → training minibatch
π Forward pass
βΎ κ° worker κ° κ°μ λ΄λΉν λ―Έλλ°°μΉ λ°μ΄ν°μ λ§νΌμ output activation μ κ³μ°νλ€.
β No communication is needed
π Backward pass
βΎ κ° worker κ° κ°μ λ΄λΉν λ―Έλλ°°μΉ λ°μ΄ν°μ λ§νΌμ activation gradient μ κ³μ°νλ€.
β communication is needed
: Computes contribution to the weight gradient based on its portion of minibatch → weight gradient λ (λ―Έλλ°°μΉμ λν΄ μ λ°μ΄νΈ νμ§ μκ³ ) μ 체 batch μ λν΄μ μ λ°μ΄νΈλ₯Ό ν΄μ£ΌκΈ° λλ¬ΈμμκΈ°κ° λ§‘μ λΆλΆμ gradient κ°μ μ 체 λͺ¨λΈμ 곡μ νλ€.
π Weight update
βΎ Each worker updates its copy of the model with combined gradients → κ° worker κ° κ°μ§κ³ μλ λͺ¨λΈμ λν΄ μ 체 weight μ λ°μ΄νΈλ₯Ό μμΌμ€
π Multi-GPU
βΎ κ° GPU λ model μ 볡μ¬λ³Έμ κ°μ§κ³ μλ€.
π Forward Pass
βΎ κ° worker λ λμΌν weight matrix W λ₯Ό κ°μ§κ³ λλ λ°μ input X μ μΌλΆλΆμ κ°μ§κ³ output activation Y λ₯Ό ꡬνλ€.
βΎ κ° worker μ λν΄ output λ§ κ³μ°νλ©΄ λλ―λ‘ worker λ€ μ¬μ΄μ communication μ νμνμ§ μλ€.
π Backward Pass
βΎ κ° worker λ μλ‘ λ€λ₯Έ weight gradient dW λ₯Ό κ³μ°νκ² λλ€.
βΎ κ° worker λ entire model ꡬ쑰λ₯Ό κ°μ§κ³ μκΈ° λλ¬Έμ entire weight update λ₯Ό μν΄μλ κ°μ μ°μ°ν dW λ₯Ό 곡μ ν΄μΌ νλ€. λ°λΌμ worker μ¬μ΄μ communication μ΄ λ°μνλ€.
π Communication
π communication μ μν μλ‘ μλκ° λΉ¨λΌμ§λ€.
π communication μ μ΄λ»κ² νλλμ λ°λΌ data parallel μ effciency κ° λ¬λΌμ§λ€.
β Allreduce
βΎ Sum : κ° worker λ€μ gradient κ°μ λͺ¨λ λν΄μ€λ€.
βΎ Distribute : λν΄μ§ gradient λ₯Ό κ° worker μκ² λΆλ°°μν¨λ€.
βΎ After Allreduce : allreduce κ° λλλ©΄ κ° worker λ λμΌν global gradient κ°μ κ°μ§κ² λ¨ → κ° worker λ€μ΄ λ€μ step μ νλ ¨μ νκΈ° μν΄μ κ°μ copy μ weight λ₯Ό κ°μ§κ³ μμ΄μΌν¨
βΎ dWλ₯Ό λ¨Όμ κ³μ°νκ³ μλ‘ κ³΅μ νλ κ³Όμ μ΄ μ΄λ£¨μ΄μ§κΈ° λλ¬Έμ communication overhead κ° λΆκ°νΌνκ² λ°μνλ€
π Allreduce
π Allreduce = reduce + broadcast
βΎ reduce = (N-1) κ°μ μ£Όλ³ worker λ‘λΆν° 1/N λ§νΌμ gradient λ€μ λ°μ λͺ¨λ λνλ€.
βΎ broadcast = λν΄μ§ κ°μ λ€μ (N-1) κ°μ μ£Όλ³ worker λ€μκ² λΆλ°°μν¨λ€.
βΎ reduce μ broadcast λ₯Ό μ΄λ€ λ°©μμΌλ‘ νλλμ λ°λΌ 2κ°λ‘ λλλ€.
π Ring reduction
βΎ ring ννμ topology λ₯Ό κ°μ§ κ²½μ°
βΎ κ° worker κ° μμμ 2κ°μ μ΄μκ³Ό ν΅μ ν¨
βΎ μ΄ 2(N-1) λ¨κ³κ° μμλκ³ , κ° worker λ μ΄ λ°μ΄ν°μ 1/N λ§νΌμ μμ 보λ΄κ±°λ λ°λλ€.
π One-shot reduction
βΎ fully-connected ννμ topology λ₯Ό κ°μ§ κ²½μ°
βΎ κ° worker λ μλ‘ νλ²μ© μ°κ²°λμ΄ μλ ννμ΄κΈ° λλ¬Έμ (N-1) κ°μ μ΄μ worker λ€κ³Ό ν΅μ νκ² λλ€
βΎ κ° worker κΈ°μ€μΌλ‘, μ£Όλ³ worker λ€λ‘λΆν° λ°κ³ , worker λ€μκ² μ λ¬νλ μ΄ 2 λ¨κ³μ κ³Όμ μ΄ μμλλ€ (each with (N-1) substeps)
π Rring allreduce example
βΎ weight gradient λ₯Ό ring tolopgy μμ 곡μ νλ κ³Όμ
π Reduce
π Broadcast
π 2*(N-1) = 2*3 = 6 λ¨κ³κ° μμλ¨
π API
βΎ API λ₯Ό ν΅ν΄ λΆμ° μ»΄ν¨ν μ μ§νν μ μλ€.
β’ Model parallel
π model parallel
π¨ Inter layer parallel = pipeline parallel
π¨ Intra layer parallel
π Pipeline parallel
π¨ Idle bubbles
π N κ°μ worker λ€μ λν΄ (N-1)/N λΉμ¨ λ§νΌμ idle slot μ΄ μ‘΄μ¬ν¨ → λΉν¨μ¨μ
π¨ Sub-minibatches
π λΉν¨μ¨μ±μ μ€μ΄κΈ° μν΄ νλμ minibatch λ₯Ό kκ°μ subminibatch λ‘ λλλ€
π N μ΄ μ»€μ§μλ‘ idel slot μ κ°μκ° μ€μ΄λ λ€
π¨ Interleaved Layers
π κ° worker κ° layer λ₯Ό λΆμ°μμ μΌλ‘ λ΄λΉνμ¬ νλ ¨νλ€.
βΎ μ₯μ : worker κ° μΌνλ μκ°μ΄ μ¦κ°νλ€.
π worker0 μ κ΄μ μμ 보면 forward λ¨κ³μμ 6κ°μ step μ€μ 4κ°μ time step λμ μΌνκ³ μμ (ν¨μ¨μ )
βΎ λ¨μ
π communication νμκ° μ¦κ°ν¨ : worker κ° μ¬λ¬ layer λ₯Ό μ°μμ μΌλ‘ λ΄λΉνμ¬ νλ ¨μ μ§ννλ κ²μ΄ μλκΈ° λλ¬Έμ, weight gradient μ μ λ¬ νμκ° μ¦κ°νκ² λλ€.
π skip connection cross worker μ΄ λ³΅μ‘νκ² λ°μνλ€ : worker0 μ΄ κ°μ§ κ²°κ³Όλ₯Ό worker2 μ κ²°ν©νλ κ³Όμ μμ worker1 μ 건λ λ°κ³ κ°μ μ λ¬ν΄μΌνλλ° μ΄ κ³Όμ μμ λ°μνλ communication μ΄ λ³΅μ‘νλ€.
π¨ Communication in Inter-layer parellel
βΎ 2κ°μ neighbor μ ν΅μ → worker1 μ κΈ°μ€μΌλ‘ worker0 μΌλ‘λΆν° λ°μ΄ν°λ₯Ό λ°κ³ , worker2 μκ² λ°μ΄ν°λ₯Ό μ λ¬νλ κ³Όμ
βΎ forward μ backward step λ§λ€ communication μ΄ λ°μν¨
βΎ forward μμλ activation μ λκ²¨μ£Όκ³ backward μμλ activation gradient λ₯Ό λ겨μ€
βΎ μ°μ°κ³Ό ν΅μ μ overlap μν€λ κ²μ΄ λ§€μ° μ΄λ ΅λ€. μ°μ°μ΄ λλμΌλ§ ν΅μ μ΄ κ°λ₯ν ꡬ쑰μ΄λ―λ‘ ν΅μ λΆλΆμ΄ μ¨μ ν overhead λ‘ μμ©νκ² λλ€.
π Intra layer parallel
βΎ layer weight λ₯Ό worker κ°μ μλΌμ μνν¨
βΎ idle slot , load imbalance λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ€.
π¨ weight matrix λ₯Ό μ΄λ»κ² λλμ΄ λ΄λΉνλμ§ λ°λΌ 2κ°λ‘ λλλ€.
π¨ Row-Wise partitioning
π κ° worker κ° weight μ μΌλΆ ν λΆλΆκ³Ό, λͺ¨λ input activation μ κ°μ§κ³ μ°μ°μ μννμ¬ output activation κ°μ λμΆνλ€.
π forward communication : Allgather → λ€μ layer μμ νμν activation ννλ₯Ό μν΄ λͺ¨λ λν¨
π¨ Column-Wise partitioning
π κ° worker κ° weight μ μΌλΆ μΉΌλΌ λΆλΆκ³Ό, input activation μ μΌλΆλΆμ κ°μ§κ³ μ°μ°μ μννμ¬ partial activation κ°μ λμΆνλ€.
π forward communication : Reduce_scatter → κ° worker μ output μ λν΄ κ° μμΉμ λ§κ² κ°μ λν΄ partial activation μ μ»λλ€.
π¨ Alternating partitioning
π row-wise μ column wise λ₯Ό λ²κ°μ μ¬μ©νλ©΄ communication κ³Όμ μ΄ νμ μμ
π λ¨, col μμ row λ‘ λ€μ λμ΄κ° λ Allreduce κ³Όμ μ΄ νμ
β£ Communication pattern summary
π Data parallel
- Allreduce of weights
- Can be overlapped with computation (overhead λ₯Ό μ‘°κΈμ΄λΌλ μ€μΌ μ μλ€)
π model Inter parallel
- Point-wise communication : μλ‘λ€λ₯Έ neighbor μ 1:1 communication μ΄ λ°μ
- Hard to overlap with computation (overhead κ° λΆκ°κ²°νκ² λ°μ)
- Hard to load-balance (μ΄λ€ worker λ λ λ§μ μΌμ νκ² λ¨)
π model Intra parallel
- Allgather, reduce_scatter of activations and activation gradients
- row wise μ col wise λ₯Ό λμμ λ²κ°μ μ¬μ©νλ©΄ Allreduce κ° λ°μ
- Hard to overlap with computation
π model parallel μ overlapμ΄ μ΄λ ΅κΈ° λλ¬Έμ μ£Όλ‘ μ΄κ±°λ AI μΈ κ²½μ°μλ§ μ¬μ©νλ€.
'1οΈβ£ AIβ’DS > π Deep learning' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Pytorch λ₯λ¬λ μ λ¬Έ] νμ΄ν μΉ κΈ°μ΄ (0) | 2022.09.14 |
---|---|
[μΈκ³΅μ§λ₯] λ₯λ¬λ λͺ¨λΈ κ²½λν (0) | 2022.06.21 |
[μΈκ³΅μ§λ₯] Meta learning , Transfer learning (0) | 2022.06.14 |
[μΈκ³΅μ§λ₯] Reinforcement Learning (0) | 2022.06.14 |
[μΈκ³΅μ§λ₯] GNN (0) | 2022.06.14 |
λκΈ