๐ค The Future of Natural Language Processing - Model Size and Computational Efficiency
HuggingFace์์ ์ฌ๋ฆฐ ์ฌ๋ผ์ด๋/์์์ธ The Future of Natural Language Processing์ด ์ต๊ทผ NLP ์ ๋ฐ์ ๋ํ ์ค๋ฒ๋ทฐ๋ฅผ ์ ์ ๊ณตํ๊ณ ์๋๋ฐ, ์ด ์ธ์ ์์ ๋์ค๋ ๋ด์ฉ๋ค ์ค Model Size, Computational Efficiency์ ๊ด๋ จ๋ ๋ถ๋ถ์ ๋ํด์ ๊ฐ๋จํ ๋ด์ฉ๊ณผ ๋ด ์๊ฐ๊ณผ ํจ๊ป ์ ๋ฆฌํด๋ณธ๋ค.
Youtube ๋งํฌ | ์ฌ๋ผ์ด๋ ๋งํฌ |
Bigger Size and More Data!
computational efficiency์ ๊ด๋ จ๋ ๋ถ๋ถ์ ์๋ฌด๋๋ ์ต๊ทผ BERT ์ดํ๋ก ๊ธ๊ฒฉํ๊ฒ ํ์์ฑ์ด ์ปค์ง๊ณ ์๋ค. Transformer Encoder ๋ธ๋ญ์ด 24 layer์ธ BERT Large๋ง ํ๋๋ผ๋ 340M ์ ๋์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ ์ค์๊ฐ ์ถ๋ก & ์๋น์ด ํ๋ค๊ธฐ ๋๋ฌธ์ ๊ฐ ํ์ฌ๋ค์์ ๋ง์ ๋ ธ๋ ฅ์ ํ๊ณ ์๋ค. ์ฌ์ง์ด ์ต๊ทผ ๋์ค๋ ๋ชจ๋ธ๋ค ์ค T5๋ 1B๋ฅผ ๋๊ณ Meena์ ๊ฐ์ ๊ฒฝ์ฐ๋ 2.6B์ด๋ค.
ZeRO, Metatron๋ฑ์ผ๋ก ํด๊ฒฐ์ด ๊ฐ๋ฅํ๊ฒ ์ง๋ง, Model/Data Parallelism์ ํ์ ๋ถ๊ฐ๊ฒฐํ ์ํฉ์ด ๋์๋ค. T5๋ ์๋์ฒ๋ผ ๋ ผ๋ฌธ์ ์์ ํด๋์๋ค.
Training large models can be non-trivial since they might not fit on a single machine and require a great deal of computation. As a result, we use a combination of model and data parallelism and train models on โslicesโ of Cloud TPU Pods.
๊ทธ๋ผ ์ ํฐ ๋ชจ๋ธ์ด ๋ฌธ์ ๊ฐ ๋ ๊น? Research Competition field๋ฅผ ๋จ์ํ๊ฒ ๋ง๋ค๊ณ , CO2 ๋ฐฐ์ถ๋์ ์ฆ๊ฐ์ํจ๋ค. ๋ฌผ๋ก ๊ทธ๊ฒ ์ ๋ง๋ก ๋จ์ํด์ง๊ฒ ๋๋ง์๋ ์๋ ํธ์์ ๋ง์ ์๊ฐ์ ํ๊ฒ ํ๋ค.
Training ever bigger convnets and LSTMs on ever bigger datasets gets us closer to Strong AI -- in the same sense that building taller towers gets us closer to the moon.
— Franรงois Chollet (@fchollet) April 28, 2019
์๋ง๋ ์ฑ๋ฅ ํฅ์ == ํฐ ๋ชจ๋ธ
์ด ๊ตณ์ด์ ธ ๊ฐ๋ ๊ฒ์ด ๋น๋ก ์ ๋๋๋ผ๋, ์์ฌ์ด ๋ชจ์์์ธ ์ฌ๋์ด ๋ง์๊ฐ๋ณด๋ค. CO2 ๋ฐฐ์ถ๋์ Strubell et al., 2019์ ์ดํด๋ณด์. ํ๋ ์์๋ฅผ ๋ค๊ณ ์๋ณด์๋ฉด ๋ด์์์ ์ํ๋์์ค์ฝ๋ฅผ ๋นํํ ๋ CO2 ๋ฐฐ์ถ๋์ด 1984 lbs์ธ๋ฐ, V100 64์ฅ์ ์ฌ์ฉํ๊ณ 79์๊ฐ์ด ์์๋ BERT base ํ์ต์ 1438 lbs์ CO2๋ฅผ ๋ฐฐ์ถํ๋ค.
๊ทธ๋ผ ๋ชจ๋ธ์ ์๊ฒ ๋ง๋ค์ด๋ณผ๊น?
๊ทธ๋ผ ๋ชจ๋ธ์ ์๊ฒ ๋ง๋๋ ์ฐ๊ตฌ ๋ฐฉํฅ์ ์์๊น? ๋น์ฐํ ์๊ณ , Pruning์ ์งํํ๋ Lecun et al., 1989๋ถํฐ ์ฐพ์๋ณผ ์ ์๋ค. ์ด ๋ ผ๋ฌธ์์๋ ์๋์ฒ๋ผ ๋งํ๋ค.
By removing unimportant weights from a network, several improvements can be expoected: better generalization, fewer training examples required, and improved speed of learning and/or classification.
๊ทธ๋ผ ๊ตฌ์ฒด์ ์ผ๋ก ๋ชจ๋ธ์ ์๊ฒ ๋ง๋๋ ๊ฒ์ ์ด๋ค ๋ฐฉ๋ฒ๋ค์ด ์์๊น? Distillation, Pruning, Quantization ๋ฑ์ด ์๋ค.
Distillation
Distilation์ ๊ทธ ์ค ๋ํ์ ์ธ ๋ฐฉ๋ฒ ์ค ํ๋๋ก, โTeacher ๋ชจ๋ธ์ ์ด์ฉํด Student ๋ชจ๋ธ์ ์ด๋ป๊ฒ ์ ํ์ต์ํค๋โ ์ ๋๋ก ์์ฝ์ด ๊ฐ๋ฅํ๋ค. HuggingFace์์ ๋ง๋ ์๋ฃ์ด๋ DistilBERT๋ฅผ ์์๋ก ๋ณด์๋ฉด 40% ๋ชจ๋ธ ์ฌ์ด์ฆ์ 60% ๋น ๋ฅธ ์๋๋ก BERT ์ฑ๋ฅ์ 95%๋ฅผ ๋ณด์กด์ด ๊ฐ๋ฅํ๋ค. ์ต๊ทผ์๋ Tsai et al., 2019, Turc et al., 2019, Tang et al., 2019๊ณผ ๊ฐ์ ์ฐ๊ตฌ๋ค์ด ๋ง์ด ์งํ๋๊ณ ์๋ค. ๋ํ ์ด์ ์ ๋ฆฌ๋ทฐํ๋ TinyBERT๋ ๊ทธ ์ค ํ๋์ด๋ค.
Adaptive Inference๋ฅผ ์ํ Self Distillation ์ฐ๊ตฌ๋ ๊ฝค ๋ณด์ธ๋ค๋ ๋๋์ ๋ฐ๋๋ฐ ์ฃผ๋ก Slimmable Neural Network์ ๊ฐ์ ์ฐ๊ตฌ์์ ๋ง์ ์๊ฐ์ ๋ฐ์ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
Pruning
๋๋ฒ์งธ ๋ฐฉ๋ฒ์ธ Pruning์ ์ค์๋๋ฅผ ๊ณ์ฐํ๊ณ ์ฑ๋ฅ์ ์ํฅ์ ๋ผ์น์ง ์๋ ๋คํธ์ํฌ๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ์์ด๋ค. ์ง์ง ๋จ์ด์ ๋ป ๊ทธ๋๋ก ๊ฐ์ง์น๊ธฐ๋ผ ์๊ฐํ๋ฉด ๋๋ค. Elena Voita et al., 2019, Paul Michel et al., 2019๊ณผ ๊ฐ์ด Multi Head Attnetion์ ์ ์ฉ์ด ๊ฐ๋ฅํ ์ฐ๊ตฌ๋ค๋ ์ง์์ ์ผ๋ก ์ด๋ฃจ์ด์ง๊ณ ์๋ค. ๊ทธ ์ธ์๋ Wang et al., 2019์ฒ๋ผ Weight Pruning์ ์ฌ์ฉํด 65%์ ํ๋ผ๋ฏธํฐ๋ง ๊ฐ์ง๊ณ 99%์ ์ฑ๋ฅ์ ๋ณด์กดํ๋ ์ฐ๊ตฌ๋ ์์ผ๋ฉฐ, ์ต๊ทผ ICLR 2020์ Accept๋ Fan et al., 2020๊ณผ ๊ฐ์ด Transformer Depth๋ฅผ ์ค์ด๋, Layer Pruning์ ์งํํ๋ ์ฐ๊ตฌ๋ ์๋ค.
๋๋ถ๋ถ์ ๋คํธ์ํฌ๋ Dense Matrix Multiplication์ ์ผ๋์ ๋๊ณ ๋์์ธ, ์ฐ๊ตฌ๊ฐ ์ด๋ฃจ์ด์ง๋๋ฐ, Sparse Model๋ ์ต๊ทผ ๋ง์ ์ฐ๊ตฌ๊ฐ ์ด๋ฃจ์ด์ง๊ณ ์๋ค. ๊ฐ์ธ์ ์ธ ์๊ฐ์ ๋ชจ๋ธ ์ฌ์ด์ฆ๋, ํจ์จ์ฑ์ผ๋ก ๋ณผ ๋, ๋ฌผ๋ก GPU์์์ ํจ์จ์ ์ธ Sparse Matrix ์ฐ์ฐ์ด ์ด๋ ต์ง๋ง, Sparse Model๋ค์ ๋ํ ์ฐ๊ตฌ๊ฐ ํ๋ฐํ ์ด๋ฃจ์ด์ง๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฐ์ ๋ง์ด ํ๋ค. ๋ถ๋ช ํ ์ด๋ ค์ด ๋ถ์ผ์ด์ง๋ง ์ข์ ์ฑ๋ฅ์ ์ ์ง๊ฐ๋ฅํ๋ค๋ฉด Memory Consumption์ด๋ Inference Speed ๋ถ๋ถ์์ 1.nx ๊ฐ์ โ๊ฐ๋โ์ ๋์ ์ฑ๋ฅ ํฅ์๋ณด๋ค๋ Nx ์ ๋์ ์์ฒญ๋ ํฅ์์ ๋ณผ ๊ฒ์ด ๋๋ฌด ๋ถ๋ช ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ด๋ จ ์ฐ๊ตฌ๋ Open AI์ ๊ธ์ธ Block-Sparse GPU Kernels, Balanced Sparsity (Yao et al., 2018)๋ฑ๋ถํฐ ๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
Quantization
์ธ๋ฒ์งธ ๋ฐฉ๋ฒ์ Quantization์ธ๋ฐ, Tensor๋ค์ downcasting ํ ์ฐ์ฐ์ ์งํํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ต๊ทผ์๋ CPU Inference๋ฅผ ์ํด INT8๋ก ์ค์ด๋ ๊ฒ์ด ๋์ธ๊ฐ ๋ ๋ฏ ํ๊ณ , PyTorch ํํ ๋ฆฌ์ผ์ (EXPERIMENTAL) DYNAMIC QUANTIZATION ON BERT์ด๋ Q8BERT๋ฅผ ์ฐธ๊ณ ํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
๊ฐ์ธ์ ์ผ๋ก ์๊ฐํ๋ ์ด ๋ถ์ผ์ ํต์ฌ์ โ์ด๋ป๊ฒ Distribution์ ์์ง ์๊ณ ์ ๋งคํํ ์ ์์๋ผ?โ์ด๋ค. Quantization์ Tensor๋ค์ Downcastํ๋ ์ ๋ณด๋ฅผ ์์ ์ ๋ฐ์ ์๋๋ฐ, ์ด ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด Fake Quantized Tensor๋ฅผ ์ฌ์ฉํ๋ Quantization Aware Training์ด๋ Post Training Quantization์ Calibration Data์ ํจ๊ป ์ ์ ํ Threshold๋ฅผ ์ฐพ์ outlier๋ฅผ ์ ์ธํ๋ ๋ฐฉ์์ quantization์ด ์ ๋๋ ๊ฒ ๊ฐ๋ค.
๋ค๋ง ์์ง ์์ฌ์ด ์ ์ Intel CPU๊ฐ ์๋ฌด๋๋ AWS์์ ๋ง์ ์ ์ ์จ์ ์ฐจ์งํ๊ณ ์๊ณ , TensorFlow๊ฐ ์๋น์ ๊ฐ์ธ๋ฅผ ๋ณด์ด๋ ๊ฒ์ ์๋ช ํ ์ฌ์ค์ธ๋ฐ, TensorFlow์ INT8 ์ฐ์ฐ ์ง์์ด ์์ง์ ํ๋ฐํ์ง ์๋ค๋ ์ ์ด๋ค. TensorFlow๊ฐ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ค ํ๋์ธ google/gemmlowp์์๋ ์์ง AVX2์ง์์ด๋ค. VNNI๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด (์๋ง Custom Ops๋ก ์ฌ์ฉํ ๊ฒ์ผ๋ก ๋ณด์ด๋๋ฐ) ์ง์ ๋ช๋ช ์ฐ์ฐ์๋ฅผ ๊ฐ๋ฐํด ์ฌ์ฉํ Bhandare et al., 2019์ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๋ณผ ๋ ๋ TensorFlow ์์ฒด์์ ์ง์์ด ํ๋ฐํ๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฐ์ด ๋ ๋ค. TF Lite๊ฐ INT8 ์ฐ์ฐ์ ์ง์ํ๊ธด ํ์ง๋ง, ์ง์ int8 ์ฐ์ฐ์ ๋ฏธ์ธํ๊ฒ ์กฐ์ ํ์ฌ ์ฌ์ฉํ ์ ์๋ ์ฐ์ฐ์ ์ง์์ด ๋ฏธ์ฝํด๋ณด์ธ๋ค.
_
๋๊ฒ ์ฌ๋ฐ๋ ์์์ด๊ณ ์ค๋ช ์ ์ํด์ค๋ค. ๋ชจ๋ธ ๊ฒฝ๋ํ์ ๊ด๋ จ๋ ์ฃผ์ ๋ ๋ฉ์ธ์ด ์๋๋ฟ๋๋ฌ, Continual and Meta Learning, Common Sense Question, Out of domain generalization, NLU vs NLG๋ฑ์ ์ฌ๋ฐ๋ ์ฃผ์ ๋ ๋ง์ด ๋ค๋ฃฌ๋ค.