티스토리 뷰
요즘 Deep learning에서 주목받고 있는 학습법인 Self-supervised learning을 소개할까 합니다. 이번 글에서는 Self-supervised learning에 대한 간단한 소개 이후 왜 이 학습법이 주목받는지, Self-supervised learning 향후 데이터 센터를 중심으로 한 Deep learning (AI) 생태계에 어떠한 영향을 미칠지에 대해 이야기해보겠습니다. 자세한 Self-supervised learning의 학습 방법은 영상을 중심으로 여기 블로그(hoya012.github.io/blog/Self-Supervised-Learning-Overview/)에 잘 정리되어 있기 때문에 참고하시면 될 것 같습니다.
Self-supervised learning이란?
Self-supervised learning이란 Label이 없는 Untagged data를 기반으로 한 학습이며 자기 스스로 학습 데이터에 대한 분류(Supervision)을 수행하기 때문에 Self라는 접두어가 붙었습니다. 기존 학습법과 한 번 비교해볼까요? 기존에 학습법은 주로 Unsupervised learning과 Supervised learning으로 분류되었으며 두 학습법의 차이는 Tagged data의 유무였습니다. Unsupervised learning은 Tagged data가 없기 때문에 실제 데이터가 어떠한 범주에 해당하는지는 모른채 Data의 특징에 따라 다른 범주로 묶는 Clustering을 수행했습니다. 예를 들어 개와 고양이 사진을 데이터로 주면 개와 고양이를 나누기는 하는데 각각이 어떠한 동물인지는 모르는 상황이지요. 이해 비해 Supervised learning은 어떤 동물인지 알려주는 Tag가 함께 있기 때문에 개와 고양이를 구분하는 법을 학습할 수 있고 새로운 사진이 주어졌을 때 개인지 고양이인지 구분이 가능하겠죠. 따라서 Supervised learning은 대상의 분류(Classification)나 예측(Regression) 목적으로 활용되었습니다.
Self-supervised learning의 학습 구성
Self-supervised learning은 Pre-trained 모델 생성과 Downstream task라는 두 단계로 구성되어 있습니다. Pre-trained 모델은 대량의 Untagged data를 이용해 해당 응용에 대해 전반적인 특징을 학습하는 단계입니다. Google이 공개하여 자연어 처리의 대세가 된 Self-supervised learning 학습 방법이 적용된 BERT를 예로 들어보죠. BERT에서는 전체 문장에서 하나의 단어를 지운(Masking) 후 해당 단어가 무엇이었을지 추측하는 방법과 다음에 어떠한 문장이 올지 추측하는 방법으로 Pre-trained 모델 학습을 진행합니다. Pre-trained model 학습시에는 일반적인 문장을 그대로 활용하기 때문에 Tagging이 필요 없죠. 다음 단계인 Downstream task에서는 소량의 Tagged data를 활용하여 사용 목적에 맞게 Pre-trained model을 Fine tuning합니다. 예를 들어 BERT 같은 경우에는 질의 응답(Q&A) 수행, 문장 속의 감정 분류 등 목적에 맞게 Layer를 1~2개 더 추가한 후 Tagged data와 함께 학습하면 됩니다.
Self-supervised learning의 등장 배경
Self-supervised learning은 Tagged data 수집의 어려움을 배경으로 생겨났습니다. 일반적으로 Deep learning 모델은 모델 사이즈(parameter 수)가 증가함에 따라 정확도가 향상되는데, 큰 사이즈의 모델을 적절하게 학습하기 위해서는 대량의 데이터가 필요합니다. 신종 눈알 붙이기 부업처럼 Tag 붙이기 알바가 등장해서 Tagged data를 확보하려고 하지만 역시 비용이 많이 드는 단점이 존재하지요. 따라서 Tagged data가 적어도 되는 Self-supervised learning은 학습 데이터 확보가 쉽고 따라서 모델 Size 증가가 가능하며 모델의 정확도가 더 늘어난다는 장점이 있습니다.
Datacenter 및 Deep learning hardware에 미치는 영향
대형 Datacenter 서비스 업체(Google, Facebook 등)와 NVIDIA 입장에서는 Self-supervised learning이 Deep learning에서 자신들의 위치를 더 확고히 해줄 기회입니다. Self-supervised learning은 모델 사이즈가 매우 큽니다. OpenAI가 공개한 GPT-3는 parameter 수가 1750억개이며 Google은 1.5조개 Parameter의 자연어 처리 모델을 공개하기도 했죠. 자연어처리 모델이 자기지도 학습 도입 덕분에 정화도가 많이 상승했는데 자연어처리 모델에 대한 설명은 다른글(자연어처리란 무엇이며 누가 주도하는가?)을 참고해주세요.
기존 Supervised learning 방식으로 학습된 모델의 parameter 수가 일반적으로 수십~수백억개였던 데에 비하면 매우 규모가 커졌습니다. 따라서 이러한 큰 모델을 학습하기 위해서는 대규모 연산 및 이를 수행할 수 있는 Hardware가 있어야 하겠지요. Self-supervised가 내놓는 Pre-trained model은 범용적 성격을 갖지만 자연어 처리를 기준으로 볼 때, 과학, 의학, 법률 등 각 분야의 고유한 데이터를 바탕으로 학습했을 때 보다 높은 정확도를 나타냅니다. 따라서 다양한 분야에 대규모 Pre-trained model을 학습할 수 있는 Hardware(GPU, TPU 등)를 보유한 업체는 Google, Facebook, NVIDIA로 한정될 수 밖에 없으며 이들 입장에서는 자연스럽게 진입장벽을 구축할 수 있습니다. 이러한 큰 사이즈의 모델을 대규모 데이터와 함께 학습하기 위해 여러 GPU에 나눠 학습을 진행하는 분산학습도 등장했는데 자세한 내용은 이전글(딥러닝 모델의 분산 학습이란?)을 참고해주세요.
또한 대형 Datacenter 서비스 업체와 NVIDIA에게 Self-supervised learning은 "Transfer ML" 방식으로 Deep learning에 대한 저변을 넓힐 수 있는 좋은 기회입니다. Transfer ML은 미리 만들어진 모델을 가져와(transfer) 사용자에 맞게 추가 학습하여 새로운 모델을 만드는 방법입니다. 앞의 Self-supervised learning 학습 방법에서 설명드렸지만 학습은 2단계로 구성되었습니다. 따라서 데이터가 및 연산이 많이 필요한 Pre-trained model은 대형 업체에서 미리 만들어 놓고 Deep learning을 잘 모르는 사용자가 이를 활용해 간단한 조작으로 Fine-tuning하여 자신에게 적합한 Deep learning 모델을 만들 수 있습니다. 대부분 Deep learning에 대한 전문 지식이 없는 사용자가 쉽게 Deep learning 모델을 만들 수 있죠. 또한 Self-supervised learning은 모델 사이즈가 커서 Datacenter에서 돌릴 수 밖에 없으므로 자연스럽게 Datacenter 생태계에 사용자가 Lock in되는 효과도 누릴 수 있습니다.
실제로 NVIDIA는 이번 GTC 2021 Keynote에서 NVIDIA가 만든 언어/음성 및 추천 관련 Pre-trained model(Jarvis, Merin 등)을 Open source로 공개한다고 밝혔습니다. NVIDIA의 고성능 GPU가 더욱 많이 판매되려면 이를 활용할 필요가 있는 대규모 Deep learning 모델의 학습 및 추론이 활성화되어야 하는데, Pre-trained model을 무료로 제공함으로써 이에 대한 수요를 늘리겠다는 의도로 추정됩니다. Hardware를 활용한 서비스에서 수익을 창출하는 Google, Facebook같은 Datacenter 서비스 업체들은 과연 어떻게 대응할 지 궁금해집니다.
'IT' 카테고리의 다른 글
Processing in memory(PIM)이란? (2) - Concept 및 사례 (1) | 2021.05.29 |
---|---|
Embedding table이란? (딥러닝 추천모델에서의) (1) | 2021.05.29 |
애플의 첫 Mac 탑재 자체 개발 SoC: M1의 과거와 현재 그리고 미래 (0) | 2020.11.14 |
Processing in Memory (PIM)이란? (1) - 개념과 분류 (5) | 2020.10.24 |
Device 관점에서 본 5G와 AR/VR (0) | 2020.10.16 |