#!/usr/bin/env python # coding: utf-8 # # Motivation # # 이번 세션에서는 본 자료를 준비하게 된 동기에 대해 설명합니다. # ## 1. Why Large Scale? # # 최근 인류 역사상 최고의 언어모델이라는 평가를 받고 있는 GPT3를 필두로 딥러닝 언어모델의 크기가 점점 커지고 있는 추세입니다. 몇 년전까지만 해도 큰 모델이라고 평가받던 BERT가 이제는 아기자기한 사이즈의 모델이 되었죠. 그런데 한가지 궁금증이 생깁니다. 최근부터 왜 갑자기 모델의 크기가 점점 커지고 있는걸까요? # # # ![](../images/why_large_scale.png) # #
# # ### 1) 모델의 아키텍처가 그다지 중요하지 않다? # 지금까지 많은 연구자들이 모델의 아키텍처에 매우 큰 관심을 기울여왔지만 최근 연구 결과에 따르면 그동안의 변화가 생각보다 큰 차이를 가져오지는 못하는 것으로 밝혀졌습니다. 물론 아키텍처의 개선에 의해 언어모델의 성능이 어느정도 향상된 것은 사실이지만 판을 깨는 수준으로 드라마틱한 성능 개선을 가져오지는 못했죠. # # ![](../images/arch_is_not_important.png) # #
# # ### 2) 결국 관건은 데이터와 모델의 크기, 그들이 곧 성능과 비례한다. # 이전에도 데이터와 모델의 크기가 커지면 성능이 개선되는 것은 알고 있었습니다. 그러나 이것을 극단적으로 키워보니 모델이 마법같은 일을 하기 시작했습니다. 예를 들면 언어모델이 fine-tuning 없이 번역, 요약, 분류 등의 태스크를 수행할 수 있었습니다. 단순히 수행만 하는게 아니라 성능도 fine-tuning한 모델과 비슷한 수준을 보여줬죠. 연구자들이 이러한 현상을 분석해보니 모델의 크기가 성능에 가장 큰 영향을 미치고 그 다음으로 데이터의 크기가 중요했다고 합니다. 아래 그래프의 Y축이 log scale인 것을 감안하면 모델의 크기가 성능에 미치는 영향은 엄청난 수준이죠. # # ![](../images/scale_is_all_you_need.png) # #
# # ### 이대로 간다면 아마 몇년 뒤...? # # ![](../images/GPT-X.png) # #

# ## 2. Large-scale의 시대에 우리는 무엇을 준비해야 할까? # # Large-scale transformer 모델은 기존과 아키텍처는 거의 동일한데, 모델의 모델과 데이터 사이즈를 엄청나게 키운 것입니다. 그래서 몇몇 사람들은 "에이~ 예전이랑 똑같은데 크기만 키웠네"와 같이 생각 하기도 하죠. # # ![](../images/is_large_scale_easy.png) # #
# # ### 하지만 현실은... # # 하지만 Large-scale 모델을 잘 다루려면 아래와 같이 수 많은 하드코어 엔지니어링들이 병행되어야 합니다.
# # ![](../images/hard_core_engineering.png) # #
# # 즉 이러한 엔지니어링 테크닉을 사용할 줄 알아야 Large-scale 시대의 모델링을 수행 할 수 있습니다. 문제는 이러한 기술들은 전문적으로 공부하지 않은 사람들이 아니면 사용하기 어렵다는 것입니다. 일반적인 모델 사이언티스트들에게는 다소 난해하기도 한 개념들도 많고 한국어로 만들어진 자료는 더더욱 없죠. # # # ### So What? # 저는 이러한 이유 때문에 이 자료와 발표를 준비하게 되었습니다. 이 자료가 라지스케일 엔지니어링을 처음 배우는 분들에게 어느정도 길라잡이가 되어주길 바랍니다. :)