[DAY 36] Lightweight models & The flip-side of the coin: on-device AI & Optimization
changwoomon opened this issue ยท comments
Changwoo Lee commented
๐ ์ฃผ๋ง ํ๊ณ
์๋
@changwoomon
- ์บ๊ธ ์ฑ ๋ฒ ํ๋ฆฌ๋ ๋น์ฒจ!
ํ๋ฏธ
@opijae
- ๋กค ๊ณจ๋ ๋ฌ์ฑ!
์๋ฆฌ
@bsm8734
- ์น๊ตฌ๋ถ๋ค๊ณผ ์ฌ์ง๊ด๊ฐ์ ์ฌ์ง ์ฐ์ผ์ จ์ต๋๋ค.
ํ์ค
@Heeseok-Jeong
- ์ง๋์ฃผ ๊ฐ์ ๋ณต์ต, ๋ฐฑ์ค ์ฌ์ด ๋ฌธ์ ํ๊ธฐ, ์ํ ํ์ จ์ต๋๋ค.
ํญ๊ท
@CoodingPenguin
- ์ ํ๋ธ(๋ธ๋ ์ด๋ธ ๊ฑธ์ค ์์) ์์ฒญ, ๋ฐฑํ์ ์ผํ ํ์ จ์ต๋๋ค.
๐คทโโ๏ธFurther Question๐คทโโ๏ธ
(1๊ฐ) ๊ฐ๋ฒผ์ด ๋ชจ๋ธ
1) ์ด๋ฒ ๊ฐ์๋ lightweight modeling ๊ณผ ์ด๋ค ๊ด๊ณ๊ฐ ์์๊น?
2) ๋ณํ ํ ๋ชจ๋ธ์ size์ parameter์ ๊ฐ์๋ ์ด๋ป๊ฒ ๋ ๊น?
- ๋ณดํต size์ parameter ๊ฐ์๋ ๋น๋ก โ size๋ฅผ ์ค์ด๋ฉด parameter ๊ฐ์๋ ๋น์ฐํ ์ค์ง ์์๊น์?
- PyTorch(.pth) : 233MB
- onnx : 233MB
- TF(.pb) : 233MB
- Keras(.h5) : 233MB
- TF Lite(.tflite) : 58MB
- TensorRT(.trt) : 466MB
- ์ TensorRT๋ก ๋ฐ๊พผ ๋ชจ๋ธ์ด ํฌ๊ธฐ๊ฐ ๊ฐ์ฅ ํด๊น์?
- TensorRT
- tensorRT ๋ tflite ์ ๊ฐ์ด on-device ์ ๋ชฉ์ ์ด ์๋ NVIDIA GPU ์์ inference ์๋๋ฅผ ๋์ฌ์ฃผ๋ ๊ฒ์ด ๋ชฉ์ ์ด๊ธฐ ๋๋ฌธ์ ๋ณ์๋ฅผ NVIDIA GPU ์ ์ต์ ํ์ํค๋ ๊ณผ์ ์์ ์ฉ๋์ ์ปค์ง์ง๋ง inference ์๋๋ ๋นจ๋ผ์ง๋ค๊ณ ์๊ฐํ์ต๋๋ค.
- ์ TensorRT๋ก ๋ฐ๊พผ ๋ชจ๋ธ์ด ํฌ๊ธฐ๊ฐ ๊ฐ์ฅ ํด๊น์?
- onnx โ pth : 351MB
- pth โ onnx โ pth ๊ณผ์ ์ผ๋ก ์งํ๋์๋๋ฐ ์ ์ฉ๋์ด ๋ ์ปค์ก์๊น์?
3) ์ด ์ค์์ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ๋ชจ๋ธ์ ์ด๋ค ๊ฒ์ผ๊น? (์ฌ๋ผ์ด๋ p.41)
- TF Lite(.tflite) : 58MB
4) ์ด๋ค ๋ณํ์ ๊ฐ์ญ์ ์ด๊ณ ์ด๋ค ๋ณํ์ ๋น๊ฐ์ญ์ ์ผ๊น?
- PyTorch โ onnx โ TF / Keras / TF Lite / TensorRT
(2๊ฐ) ํ๋ฆฌ๋ ๋ฌผ๊ฑด
1) ์ด๋ฒ ๊ฐ์๋ lightweight modeling๊ณผ ์ด๋ค ๊ด๊ณ๊ฐ ์์๊น? (์ด ๊ฐ์๋ฅผ ๋ง๋ ๋ชฉ์ ์ ๋ฌด์์ผ๊น?)
- ๋น์ฆ๋์ค๋ฅผ ์ํด์ on-device๋ก ์ฎ๊ธฐ๋ ๊ณผ์ ์ด ํ์ํ๋ฐ ์ด๋ฅผ ์ํด lightweight ๋ชจ๋ธ์ ๋ง๋ค์ด์ ์ฎ๊ฒจ์ผ ํ๋ค.
2) ๊ณ ๊ฐ์ ์ด๋ค ๋ฌธ์ ๋ฅผ ๋ด๊ฐ ํด๊ฒฐํ ์ ์์๊น? + 3) on-device solution์ ๋ค๋ฅธ ์์ด๋์ด๋ ์ด๋ค ๊ฒ์ด ์์๊น?
- ์ฐจ์ธ๋ ๋ฅ๋ฌ๋ ๊ธฐ์ โ์จ ๋๋ฐ์ด์ค(On-Device) AIโ๋?
- ์ค๋งํธํฐ์ผ๋ก ๋ง์คํฌ ์ผ๋์ง ๊ตฌ๋ณ
- ๊ณต์ฌ์ฅ, ์ผ์ธ์์ ์ด์ฉ
- GPS๊ฐ ์๋๋ ๊ณณ์์ ๋ด๊ฐ ์ด๋์๋์ง
4) Memory ์ ์ฝ์ด ์ผ๋งํผ์ด๋ฉด vgg16 ๋ชจ๋ธ์ด ์๋์ ๋ชปํ๋์ง ๊ธฐ๋กํด๋ณด์
(3๊ฐ) ๊ฐ์ฅ ์ ๋นํ๊ฒ
1) ์ด๋ฒ ๊ฐ์๋ lightweight modeling๊ณผ ์ด๋ค ๊ด๊ณ๊ฐ ์์๊น? (์ด ๊ฐ์๋ฅผ ๋ง๋ ๋ชฉ์ ์ ๋ฌด์์ผ๊น?)
- ๋๋ฉ์ธ์ ๋ฐ๋ผ cost๊ฐ ๋ฌ๋ผ์ง๋ค โ ๊ฐ๊ฐ cost์ ๋ฐ๋ผ ๋ชจ๋ธ์ ๊ฒฝ๋ํ ํ ์ ์๋ค.
2) euclidean / hamming / cosine distance์ ์ฐจ์ด๋? ์ธ์ ์ด๋ค ๊ฑฐ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผํ ๊น?
- Euclidean, Angular(Cosine), Hamming Distance ์ฐจ์ด
- 4 Types of Distance Metrics in Machine Learning
- 4 Distance Measures for Machine Learning
- euclidean distance
- ์ ํด๋ฆฌ๋ ๊ฑฐ๋ฆฌ
- ์ขํ๊ณ
- hamming distance
- ํด๋ฐ ๊ฑฐ๋ฆฌ
- Hamming Distance Metric Learning
- ๋นํธ, ๋ฌธ์์ด
- ์ NLP์์ ๋ง์ด ์์ธ๊น์?
- NLP์์๋ character ๋ณ๋ก ๋น๊ตํ๊ธฐ๋ณด๋ค๋ word ๋จ์๋ก ๋น๊ตํ๊ธฐ ๋๋ฌธ์..?
- word โ Embedding โ vector๊ฐ ๋์ด cosine ์ ์ฌ๋๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ค.
- cosine distance
- ์ฝ์ฌ์ธ ์ ์ฌ๋
- ๋ฒกํฐ
3) decision problem๊ณผ optimization problem์ ์ฐจ์ด๋ฅผ ์ ์ด๋ณด์
- decision problem
- target์๋ง ๋๋ฌํ๋ฉด ๋๋ค. cost, loss๊ฐ ์์์ง๊ธฐ๋ง ํ๋ฉด decision problem์ ํธ๋ ๊ฒ์ด๋ค.
- optimization problem
- decision problem์ ๋ฐ๋ณตํ๋ฉด์ cost, loss๋ฅผ ์ค์ด๋ ๋ฐฉํฅ์ผ๋ก ๋ฌธ์ ๋ฅผ ํผ๋ค.
4) backpropagation ์์ด ์ ์ด๋ ๊ฒ ๋ ๊น?
def sigmoid_derivative(self, x):
return x * (1.0 - x)