{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Motivation\n",
"\n",
"이번 세션에서는 본 자료를 준비하게 된 동기에 대해 설명합니다."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Why Large Scale?\n",
"\n",
"최근 인류 역사상 최고의 언어모델이라는 평가를 받고 있는 GPT3를 필두로 딥러닝 언어모델의 크기가 점점 커지고 있는 추세입니다. 몇 년전까지만 해도 큰 모델이라고 평가받던 BERT가 이제는 아기자기한 사이즈의 모델이 되었죠. 그런데 한가지 궁금증이 생깁니다. 최근부터 왜 갑자기 모델의 크기가 점점 커지고 있는걸까요? \n",
"\n",
"\n",
"![](../images/why_large_scale.png)\n",
"\n",
"
\n",
"\n",
"### 1) 모델의 아키텍처가 그다지 중요하지 않다?\n",
"지금까지 많은 연구자들이 모델의 아키텍처에 매우 큰 관심을 기울여왔지만 최근 연구 결과에 따르면 그동안의 변화가 생각보다 큰 차이를 가져오지는 못하는 것으로 밝혀졌습니다. 물론 아키텍처의 개선에 의해 언어모델의 성능이 어느정도 향상된 것은 사실이지만 판을 깨는 수준으로 드라마틱한 성능 개선을 가져오지는 못했죠. \n",
"\n",
"![](../images/arch_is_not_important.png)\n",
"\n",
"
\n",
"\n",
"### 2) 결국 관건은 데이터와 모델의 크기, 그들이 곧 성능과 비례한다.\n",
"이전에도 데이터와 모델의 크기가 커지면 성능이 개선되는 것은 알고 있었습니다. 그러나 이것을 극단적으로 키워보니 모델이 마법같은 일을 하기 시작했습니다. 예를 들면 언어모델이 fine-tuning 없이 번역, 요약, 분류 등의 태스크를 수행할 수 있었습니다. 단순히 수행만 하는게 아니라 성능도 fine-tuning한 모델과 비슷한 수준을 보여줬죠. 연구자들이 이러한 현상을 분석해보니 모델의 크기가 성능에 가장 큰 영향을 미치고 그 다음으로 데이터의 크기가 중요했다고 합니다. 아래 그래프의 Y축이 log scale인 것을 감안하면 모델의 크기가 성능에 미치는 영향은 엄청난 수준이죠.\n",
"\n",
"![](../images/scale_is_all_you_need.png)\n",
"\n",
"
\n",
"\n",
"### 이대로 간다면 아마 몇년 뒤...?\n",
"\n",
"![](../images/GPT-X.png)\n",
"\n",
"
"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. Large-scale의 시대에 우리는 무엇을 준비해야 할까?\n",
"\n",
"Large-scale transformer 모델은 기존과 아키텍처는 거의 동일한데, 모델의 모델과 데이터 사이즈를 엄청나게 키운 것입니다. 그래서 몇몇 사람들은 \"에이~ 예전이랑 똑같은데 크기만 키웠네\"와 같이 생각 하기도 하죠.\n",
"\n",
"![](../images/is_large_scale_easy.png)\n",
"\n",
"
\n",
"\n",
"### 하지만 현실은...\n",
"\n",
"하지만 Large-scale 모델을 잘 다루려면 아래와 같이 수 많은 하드코어 엔지니어링들이 병행되어야 합니다.
\n",
"\n",
"![](../images/hard_core_engineering.png)\n",
"\n",
"
\n",
"\n",
"즉 이러한 엔지니어링 테크닉을 사용할 줄 알아야 Large-scale 시대의 모델링을 수행 할 수 있습니다. 문제는 이러한 기술들은 전문적으로 공부하지 않은 사람들이 아니면 사용하기 어렵다는 것입니다. 일반적인 모델 사이언티스트들에게는 다소 난해하기도 한 개념들도 많고 한국어로 만들어진 자료는 더더욱 없죠.\n",
"\n",
"\n",
"### So What?\n",
"저는 이러한 이유 때문에 이 자료와 발표를 준비하게 되었습니다. 이 자료가 라지스케일 엔지니어링을 처음 배우는 분들에게 어느정도 길라잡이가 되어주길 바랍니다. :)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 4
}