본문 바로가기
반응형

AI/기술7

GPT (Generative Pre-trained Transformer) 학습시키기 들어가며 오늘은 Generative Pre-trained Transformer (GPT) 의 구조에 대해 자세히 글을 써보려고 한다. 아래의 링크들은 참고하면 좋을만한 사이트들이다. 특히 유튜브 영상은 ETRI 임준호 박사님이 GPT-3에 대해 메타적인 논의를 잘 설명해주시며 많은 인사이트를 주신다. 여기서 메타적인 논의란 "왜 GPT 의 성능이 좋을까?", "GPT에서 Query, Key, Value 의 뜻은 무엇인가?" 와 같은 이야기들이다. 반면, 오늘의 글은 GPT 에 대한 메타적인 논의보다는 그 구조를 코드단에서 자세히 설명해보고자 한다. 필자가 메타적인 얘기를 지양하는 이유는, 아직 본인이 확실한 의견을 가지지 못했으며 실제 GPT의 구조를 자세히 이해하는 것엔 큰 도움이 되지 않는다고 생각하.. 2021. 2. 12.
BERT는 어떻게 학습시킬까? (BERT Pretraining 시키기) 수많은 NLP Downstream Task에서 SOTA를 달성한 BERT에 대해 알아보자. 본 글에서는 모델의 구조와 성능에 대한 얘기가 아닌, BERT 학습의 전반적인 이야기를 해보고자 한다. 따라서 본 글은 BERT의 모델 구조에 대한 이해를 필요로 한다. 아직 BERT가 무엇인지 모른다면 아래의 여기를 참고하자. 본 글은 NVIDIA/BERT 코드를 읽고 정리한 것이다. 전편과 이어지는 글이기에 본 글을 읽기 전 1편을 읽는 것을 강력히 추천드리는 바이다. BERT Pretraining 시키기 2편에서는 1편에서 만든 Training Instance로 Pretraining 시키는 과정에 대해 알아볼 것이다. 1편의 마지막 내용을 살짝 떠올려보면, Training Instance를 만드는 작업이 아래.. 2021. 2. 7.
BERT는 어떻게 학습시킬까? (Raw text 에서 Training Instance 까지) 수많은 NLP Downstream Task에서 SOTA를 달성한 BERT에 대해 알아보자. 본 글에서는 모델의 구조와 성능에 대한 얘기가 아닌, BERT 학습의 전반적인 이야기를 해보고자 한다. 따라서 본 글은 BERT의 모델 구조에 대한 이해를 필요로 한다. 아직 BERT가 무엇인지 모른다면 아래의 여기를 참고하자. 본 글은 NVIDIA/BERT 코드를 읽고 정리한 것이다. Raw text 에서 Training Instance 까지 (아시다시피) BERT는 아래와 같은 구조가 하나의 학습 객체이다. 1편에서는 자연어 (인간의 언어)를 BERT가 학습할 수 있는 아래의 형태로 바꾸는 작업에 대해 알아볼 것이다. 1. Bytes > Unicode Python 3 에서 기본적으로 urllib 모듈을 통해서 .. 2021. 2. 6.
GPU Util 99% 달성하기 딥러닝 공부를 하다 보면 반드시 보게 되는 하나의 창이 있는데.. 바로 nvidia-smi 했을 때 나오는 GPU의 상태를 보여주는 창이다. 오른쪽에 보면 GPU-Util이라는 수치가 있는데, 이는 GPU가 얼마나 가용되고 있는지를 나타낸다. 높으면 높을수록 우리 충실한 일꾼이 계산을 열심히 하고 있다는 뜻이다. 학교에서 공부를 하다 보면 이 GPU-Util 수치를 중요하지 않게 생각하게 되는데 (학교에서는 그 누구도 알려주지 않기 때문에), 사실 학습 파이프라인의 기본이자 시작은 GPU를 최대한 활용하는 것이다. 혹시 이런 생각을 가지고 있진 않는가? 불과 한 달 전의 필자도 이런 생각을 가지고 있었기에, 오늘은 학습 파이프라인에서, GPU Util을 높여야 하는 이유와 방법들에 대해 포스팅을 하고자 .. 2021. 1. 30.
반응형