강좌
클라우드/리눅스에 관한 강좌입니다.
클라우드 분류

[KT클라우드]GPT-2

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

GPT-2는 self-supervised 방식으로 학습하는 대표적인 Transformer 언어 모델 중 하나입니다. 말뭉치 데이터를 입력받아 학습하고, 주어진 문맥에 맞는 자연스러운 문장을 생성합니다.
Hyperscale AI Computing 서비스를 사용해 한국어 기반 GPT-2 Small 모델을 학습 시킬 수 있습니다. 또한 학습된 모델을 사용하여 한국어 텍스트를 자동 생성하는 기능을 제공합니다. GPT-2 모델의 pre-training 및 추론을 위한 PyTorch 스크립트와, 실제 모델 학습을 시켜 보기 위한 샘플 데이터를 제공합니다. 샘플 데이터는 국내 인터넷 커뮤니티의 다양한 한국어 문장들을 수집한 데이터로 출처는 다음과 같습니다.
VM 생성 권장 사양
GPT-2 학습을 위해서는 최소 다음 사양으로 VM을 생성하기를 권장합니다.
  • OS: Ubuntu 18.04
  • CPU: 8 vCore
  • 메인 메모리: 128 GB
  • VM 생성 시 Hyperscale AI Computing 서비스가 제공하는 여러 가지 AI 가속기 모델 중 한 가지를 선택해야 합니다. AI 가속기 모델에 따라 GPT-2 Small 모델의 학습 시간이 달라집니다. 다음 계산 성능 측정치를 참고하여 AI 가속기 모델을 선택하십시오. 특히 GPT-2 Small 학습 용도로는 xlarge.96gb 이상의 모델을 선택하시기를 권장합니다. 그 이하의 AI 가속기에서는 학습 시간이 지나치게 오래 걸릴 수 있습니다. 너무 부담 가지실 필요는 없습니다 — VM을 생성한 후에도 언제든지 필요하다면 AI 가속기 모델을 다른 것으로 변경할 수 있습니다.
AI 가속기 모델학습 처리 속도(초당 이미지 학습량)샘플 데이터 1회 학습(1 epoch)시 소요 시간
xlarge.96gb20.08개30시간 19분
2xlarge.192gb39.20개15시간 32분
3xlarge.288gb54.62개11시간 9분
4xlarge.384gb76.90개7시간 55분
위 성능은 테스트 환경에서 측정된 것으로 실 사용 환경에서는 차이가 생길 수 있습니다.
또한 VM의 reference model로는 NLP 카테고리의 GPT-2 모델을 선택하십시오. 마지막으로 "생성하기" 버튼을 클릭하면 VM 생성이 완료됩니다.
모델 코드 및 샘플 데이터 설치
VM에 접속하면 홈 디렉터리 밑에 install.sh 스크립트가 위치하고 있습니다. 이를 실행하여 GPT-2 Small 모델 코드 및 샘플 데이터를 설치하십시오. 설치에는 수 분 정도가 걸릴 수 있습니다. 설치 중에 VM 접속이 끊어지지 않도록 유의하십시오.
설치가 완료되면 홈 디렉터리 밑에 gpt2, dataset/tiny_dedup 디렉터리가 생성됩니다. gpt2 디렉터리에는 GPT-2 Small 모델 학습/추론을 위한 PyTorch 스크립트가 들어 있습니다. dataset/tiny_dedup 디렉터리에는 샘플 데이터로 사용 가능한 한국어 데이터가 저장되어 있습니다.
설치가 정상적으로 이루어졌다면 홈 디렉터리 밑의 downloads 디렉터리는 지워도 무방합니다.
(pytorch) ubuntu@vm:~$ ls
install.sh  sample
(pytorch) ubuntu@vm:~$ ./install.sh
  
- Installing gpt2 reference code...
(중략)
Install complete!
  
- Reference code of gpt2   : [ OK    ] (Saved at /home/ubuntu/gpt2)
- Dataset tiny_dedup       : [ OK    ] (Saved at /home/ubuntu/dataset/tiny_dedup)
- Link dataset             : [ OK    ] (Linked dataset at /home/ubuntu/gpt2/data)
  
(pytorch) ubuntu@vm:~$ ls
dataset  downloads  gpt2  install.sh  sample
(pytorch) ubuntu@vm:~$ ls dataset
tiny_dedup
(pytorch) ubuntu@vm:~$ ls gpt2
data  dataset  gpt2.py  inference.py  requirements.txt  train.py  utils.py
Hyperscale AI Computing 시스템 환경 확인
VM에는 기본적으로 Python 3.8, PyTorch 1.7.1 및 Hyperscale AI Computing 지원을 위한 플러그인이 설치되어 있습니다. 다음과 같이 실행하여 PyTorch 버전 및 Hyperscale AI Computing 플러그인 버전 정보를 확인할 수 있습니다.
(pytorch) ubuntu@vm:~$ python
Python 3.8.12 (default, Oct 12 2021, 13:49:34)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.__version__
'1.7.1'
>>> torch.version.moreh
'0.8.0'
>>> quit()
(pytorch) ubuntu@vm:~$
또한 터미널에서 moreh-smi 명령을 실행하여 VM에 연결된 AI 가속기 정보를 확인할 수 있습니다.
(pytorch) ubuntu@vm:~$ moreh-smi
+--------------------------------------------------------------------------------------------------------------+
|  Moreh-SMI 0.8.0                                               Client Version: 0.8.0  Server Version: 0.8.0  |
+--------------------------------------------------------------------------------------------------------------+
|  Device  |        Name         |            Token           |     Model    |  Memory Usage  |  Total Memory  |
+==============================================================================================================+
|       1  |  KT AI Accelerator  |  ZXhhbXBsZSB0b2tlbiBzdHI=  |  small.16gb  |  -             |  -             |
+--------------------------------------------------------------------------------------------------------------+
 
Processes:
+----------------------------------------------------------+
|  Device  |  Job ID  |  PID  |  Process  |  Memory Usage  |
+==========================================================+
+----------------------------------------------------------+
GPT-2 학습 시작하기
홈 디렉터리 아래의 gpt2 디렉터리로 이동한 다음 train.py 스크립트를 실행하여 GPT-2 Small 모델 학습을 시작할 수 있습니다.
(pytorch) ubuntu@vm:~$ cd ~/gpt2
(pytorch) ubuntu@vm:~/gpt2$ python train.py --save-model model.pt -b 24
...
| INFO     | dataset.text_dataset:__init__:28 - Creating features from dataset file at ./cache
| INFO     | dataset.text_dataset:__init__:48 - Saving features into cached file ./cache/gpt2_cached_lm_1024_tinyDedup.txt
| INFO     | dataset.text_dataset:__init__:28 - Creating features from dataset file at ./cache
| INFO     | dataset.text_dataset:__init__:48 - Saving features into cached file ./cache/gpt2_cached_lm_1024_sample_news_data.txt
[info] Requesting resources for KT AI Accelerator from the server...
[info] Initializing the worker daemon for KT AI Accelerator...
[info] [1/1] Connecting to resources on the server (192.168.00.00:00000)...
[info] Establishing links to the resources...

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,807 개
  • 현재 접속자 :  146 명