π κ²½λν : λ₯λ¬λ λͺ¨λΈ μ¬μ΄μ¦λ₯Ό μ€μ΄κΈ°
- λͺ¨λΈ κ²½λνλ νλμ¨μ΄μ μ°κ΄μ΄ λ§μ΄ λμ΄μμ
- λ₯λ¬λ λͺ¨λΈμ ν¬κΈ°λ κ³μ 컀μ§κ³ μκΈ° λλ¬Έμ νλμ¨μ΄μμ μ λμμν€κΈ° μν΄μ κ΄λ ¨ μ°κ΅¬κ° νμν¨
π Ever Increasing Model Size
- λͺ¨λΈ ν¬κΈ°κ° 컀μ§λ μ΄μ λ μ νλ λλ¬Έ → λͺ¨λΈμ ν¬κΈ°κ° μ»€μ§ μλ‘ representation power κ° μ¦κ°
π Downside
λͺ¨λΈ ν¬κΈ°λ₯Ό λλ € μ νλλ₯Ό μ¦κ°μν€λ κ²μ 2κ°μ§ λ¨μ μ λΆλ¬μΌμΌν¨λ€.
- μ°μ°λ μ¦κ°
- λ©λͺ¨λ¦¬ μ μ μ¨ μ¦κ° : λ©λͺ¨λ¦¬μ λͺ¨λΈ νλΌλ―Έν°λ₯Ό μ¬λ €μ ꡬλ (μ μ₯) → λ©λͺ¨λ¦¬κ° μμ ν΄λν°, μλ°λλ μμ€ν μμλ κ±°λν AI λ₯Ό λμμν€κΈ° μ΄λ €μ
- λ©λͺ¨λ¦¬ bandwidth μ¦κ° : λ©λͺ¨λ¦¬λ‘λΆν° CPU λλ GPU λ‘ λ°μ΄ν°λ₯Ό μ μ‘ν΄μΌ νλλ°, μ΄λ μ μ‘νλλ° νμν λμνμ μλ―Ένλ€. λͺ¨λΈμ΄ 컀μ§μλ‘ μ μ‘ν λ°μ΄ν° μμ΄ λ§μμ§κΈ° λλ¬Έμ μ΄λΉ 보λ΄μΌ ν λ°μ΄ν° μλ 컀μ§λ€.
π λͺ¨λΈ 볡μ‘λλ₯Ό μ€μ΄λ λ°©λ²
βΌ Quantization : μ«μ (activation, weight) λ₯Ό ννν λ μ¬μ©ν bit κ°μλ₯Ό μ κ² μ¬μ©νλλ‘ ν¨
- μμν
- EX. weight νλλ₯Ό νννλλ° 32 bit λ₯Ό μ¬μ©νλ€κ° 8bit λ₯Ό μ°λ©΄ 7byte λ₯Ό λ μ¬μ©νκ² λλ€.
βΌ Pruning : μ΅μ’ μ νλμ μν₯μ λ―ΈμΉμ§ μλ μ€μνμ§ μμ weight κ°μ 0μΌλ‘ λ§λ¦
- κ°μ§μΉκΈ°
- weight λ₯Ό 0μΌλ‘ λ§λ€μ΄ λͺ¨λΈ μ¬μ΄μ¦λ₯Ό μ€μ΄λ©΄μ μ νλλ μ μ§
βΌ Neural architecture search : λͺ¨λΈ ꡬ쑰λ₯Ό ν¨μ¨μ μΌλ‘ μμ±
- EX. MoblieNet → μ΄λ―Έμ§ λΆμ λͺ¨λΈ μ€ νλλ‘ λͺ¨λΈ ꡬ쑰λ₯Ό κ²½λν μν¨ λ°©λ² μ€ νλ
βΌ Knowledge distillation : λͺ¨λΈ ꡬ쑰λ₯Ό λ μκ² λ§λ€λλ‘ ν¨
- Knowledge distillation
1οΈβ£ Quantization
1. Floating-Point Numbers
- activation κ³Ό weight κ°μ μΌλ°μ μΌλ‘ floating-point number λ‘ ννλλ€.
- μ€μ κ°μ binary κ°μΌλ‘ λ³ν
- FP32 : νμ€ ννμ → sign, exponent, mantissa
- FP 16 : 16 bit ννμ
2. Quantization
π what Does it Mean
- bit λ₯Ό κ°μ§κ³ ννν μ μλ μ«μλ μ€μ λ²μμμ λͺ κ°μ§ step μΌλ‘λ§ ννν μ μλ€. (discrete)
- μμν : μ€μ λ²μλ₯Ό binary ννμ λ§μΆμ΄ μλΌμ€λ€.
- 3.09 λΌλ μ€μλ₯Ό binary λ‘ νννλ€κ³ κ°μ ν΄λ³΄μ → 3.09 λ 3.08999 μ 3.09000001 μ¬μ΄μ μ‘΄μ¬νλ κ°μ΄λ―λ‘ κ°κΉμ΄ μͺ½μΌλ‘ μμνλ₯Ό μμΌμ€λ€.
μ°μλ μ€μκ° μ νν μ«μμ discrete ν step μ€ κ°μ₯ κ°κΉμ΄ μͺ½μΌλ‘ round λλ€. discrete step μ¬μ΄μ 거리λ bit precision μΌλ‘ κ²°μ λλ€. mantissa κ°μλ‘ bit precision μ κ²°μ νλ€.
π To Lower Bits
- FP32 λ‘ νννλ κ²μ FP 16μΌλ‘ ννν΄λ³΄μ
- μμν μ€ν μ΄ λ©μ΄μ‘κΈ° λλ¬Έμ, error κ° μ»€μ§λ€.
π To Even lower Bits
- λ μ€μ΄λ©΄ step μ¬μ΄μ κ±°λ¦¬κ° λ μ»€μ Έμ error λ λ λμ΄λλ€.
3. Integer Representation
- λΆλ μμμ μ κ³μ°νκΈ° μν νλμ¨μ΄λ 볡μ‘νκΈ° λλ¬Έμ power λ λμ΄λκ² λλ€.
- Integer representation : μ μλ§μ κ°μ§κ³ μ«μλ₯Ό νν → νλμ¨μ΄κ° λ ν¨μ¨μ μΌλ‘ λμνλ€.
- Integer representation : 첫λ²μ§Έ λΉνΈκ° sign bit, λλ¨Έμ§λ binary μ«μ
- κ·Έλ¬λ λ¬Έμ μ μ weight κ°μ΄ μμ«κ°μ΄κΈ° λλ¬Έμ μ μν μμΌμ£Όλ λ¨κ³κ° νμν¨
4. Symmetric Linear Quantization
π¨ μμμ μΌλ‘ ννλ μ«μλ₯Ό (μ μλ‘) μμν μν€λ λ°©λ²
π¨ symmetric quantization : 0 μ κΈ°μ€μΌλ‘ κ°μ λ²μλ₯Ό μμν μν¨λ€. μ νμ±μ΄ μ‘°κΈ λ¨μ΄μ§μ§λ§ νλμ¨μ΄ μΈ‘λ©΄μμ ν¨μ¨μ μ΄λ€.
π¨ Asymmetric quantization : 0μ κΈ°μ€μΌλ‘ λΉλμΉμ μ΄λ€. λͺ¨λ bit λ₯Ό νμ©ν΄ μ λ²μλ₯Ό ννν μ μμ΄ μ νλλ μ’ λ μ’λ€. κ·Έλ¬λ νλμ¨μ΄ μΈ‘λ©΄μμ λΉν¨μ¨μ μ΄λ€.
5. Quantization in Inference
βΌ (μΌμͺ½) FP 32 λ₯Ό μ¬μ©ν΄ activation κ³Ό weight κ°μ νννκ³ FP 32 λ‘ μ°μ°μ μ§ννκ² λλ€.
βΌ weight κ°μ 미리 μκ³ μκΈ° λλ¬Έμ μμνλ₯Ό ν΅ν΄ μ μλ‘ λ³ννμ¬ μ λ ₯νλ€. activation μ μ€μκ°μΌλ‘ 무μμ΄ λ€μ΄μ¬μ§ λͺ¨λ₯΄κΈ° λλ¬Έμ λ€μ΄μ€λ μ¦μ μμνλ₯Ό μ§νν΄μ€λ€. INT ννμ ν΅ν΄ μ°μ°μ μ§ννλ€.
π¨ μ΄λ¬ν λ°©μμΌλ‘ μ€μ NN μμ μμνλ₯Ό μ¬μ©ν΄ μ μ λΉνΈμλ‘λ κ°μ NN μ λμμν¬ μ μκ²λλ€.
6. On accuracy
AlexNet accuracy
βΌ FP32 → 0.559 , INT 8 → 0.530 ...
βΌ μ μ λΉνΈμλ₯Ό μ¬μ©ν μλ‘ μ νλκ° κ°μνλ€.
7. Research Topics
π¨ μ°κ΅¬λΆμΌ
2οΈβ£ Pruning
1. Pruning
βΌ νμ΅μ νκ³ λμ weight κ°μ μΌλΆλ λ§€μ° μλ€ → activation μ κ³±ν΄μ Έλ μ νλμ ν¬κ² μν₯μ λ―ΈμΉμ§ μμ → 0 μΌλ‘ λ§λ¦
βΌ weight κ°μ 0μΌλ‘ λ§λ€λ©΄ model compression μ΄ κ°λ₯ν΄μ§λ€. run length encoding μ μ¬μ©ν΄ compression μ μ§ννλ€.
βΌ λΉ λ₯Έ μ°μ°μ΄ κ°λ₯ν΄μ§λ€.
βΌ μ£Όμ : Dropout μ training κ³Όμ μμ random νκ² activation weight λ₯Ό 0μΌλ‘ λ°κΎΈλ κ²μ΄κ³ μ€μ μ¬μ©ν λλ λͺ¨λ weight λ€μ μ¬μ©νλ€. pruning μ inference ν λμλ κ°μ§μΉμ§ λ μ±λ‘ νμ©νλ€.
2. κ΄λ ¨ μ°κ΅¬ μ΄μ
⼠무쑰건 μμ κ°μ 0μΌλ‘ λ§λλκ² μλλΌ weight κ° final accuracy μ λ―ΈμΉλ μν₯μ 보μμ μν₯λ ₯μ΄ μλ€λ©΄ ν΄λΉ weight λ₯Ό 0μΌλ‘ λ§λλ κ²μ΄ λ μ ν©νλ€.
βΌ weight λ₯Ό κ°μ§μΉκΈ° νλ κ²μ΄ κΌ κ³μ° μ±λ₯μ λμ¬μ£Όλ κ²μ μλλ€. λ°λΌμ ꡬ쑰νλ pruning λ°©μμ μ¬μ©ν΄ μ°μ° μλλ₯Ό λμΈλ€. λμ μμ λκ° λ¨μ΄μ Έ μ νλκ° λ¨μ΄μ§ μ μλ€.
βΌ νλμ¨μ΄μ μννΈμ¨μ΄λ₯Ό λμμ μ΅μ ν νλ λ°©λ²
3. HW/SW Co-Design
βΌ μλΉλμ μ΅μ GPU : structured prunning
3οΈβ£ NAS
1. Neural Architecture Search
βΌ NAS : NN μ ꡬ쑰λ₯Ό μ¬λμ΄ μ§μ μ€κ³νλ κ²μ΄ μλ κΈ°κ³κ° design νλ κ²
βΌ λνμ μΈ μ μ© μ¬λ‘κ° AutoML
βΌ μ νλ λΏλ§ μλλΌ λͺ¨λΈμ 볡μ‘λκΉμ§ κ³ λ €ν΄μ λͺ¨λΈ κ²½λνλ₯Ό μ§ν
2. The Basic NAS Approach
π¨ κ΅¬κΈ μ°κ΅¬ : κ°ννμ΅μ μ΄μ©ν λͺ¨λΈ κ²½λν
3. Results
π¨ NAS κ° μ°Ύμ λͺ¨λΈ κ΅¬μ‘°κ° λ ν¨μ¨μ μ : κΈ°κ³κ° λμμΈνλ κ²μ΄ λ μ’μ
4. HW-Aware NAS
π¨ νλμ¨μ΄μ μ±λ₯μ κ³ λ €ν΄μ NN ꡬ쑰λ₯Ό μ€κ³
'1οΈβ£ AIβ’DS > π Deep learning' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ₯λ¬λ νμ΄ν μΉ κ΅κ³Όμ] 1μ₯ λ¨Έμ λ¬λκ³Ό λ₯λ¬λ (0) | 2022.09.22 |
---|---|
[Pytorch λ₯λ¬λ μ λ¬Έ] νμ΄ν μΉ κΈ°μ΄ (0) | 2022.09.14 |
[μΈκ³΅μ§λ₯] Federated Learning , Distributed Learning (0) | 2022.06.15 |
[μΈκ³΅μ§λ₯] Meta learning , Transfer learning (0) | 2022.06.14 |
[μΈκ³΅μ§λ₯] Reinforcement Learning (0) | 2022.06.14 |
λκΈ