λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
1️⃣ AI•DS/πŸ“’ Deep learning

[인곡지λŠ₯] λ”₯λŸ¬λ‹ λͺ¨λΈ κ²½λŸ‰ν™”

by isdawell 2022. 6. 21.
728x90

 

πŸ“Œ κ²½λŸ‰ν™” : λ”₯λŸ¬λ‹ λͺ¨λΈ μ‚¬μ΄μ¦ˆλ₯Ό 쀄이기

 

  • λͺ¨λΈ κ²½λŸ‰ν™”λŠ” ν•˜λ“œμ›¨μ–΄μ™€ 연관이 많이 λ˜μ–΄μžˆμŒ 
  • λ”₯λŸ¬λ‹ λͺ¨λΈμ˜ ν¬κΈ°λŠ” 계속 컀지고 있기 λ•Œλ¬Έμ— ν•˜λ“œμ›¨μ–΄μ—μ„œ 잘 λ™μž‘μ‹œν‚€κΈ° μœ„ν•΄μ„œ κ΄€λ ¨ 연ꡬ가 ν•„μš”ν•¨

 

 

πŸ“Œ Ever Increasing Model Size 

 

exponential μ΄μƒμœΌλ‘œ μ¦κ°€ν•˜κ³  μžˆλ‹€. νŒŒλΌλ―Έν„° κ°œμˆ˜κ°€ μ‘° λ‹¨μœ„λ‘œ 증가

 

 

  • λͺ¨λΈ 크기가 μ»€μ§€λŠ” μ΄μœ λŠ” 정확도 λ•Œλ¬Έ → λͺ¨λΈμ˜ 크기가 컀질 수둝 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 ꡬ쑰λ₯Ό 섀계 

 

 

 

 

728x90

λŒ“κΈ€