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

[KT클라우드]DLRM

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

DLRM은 추천 시스템을 위한 대표적인 딥 뉴럴 네트워크 모델 중 하나입니다. 사용자에게 맞춤형 추천을 하기 위해 click log 데이터를 입력 받아 광고 클릭률(CTR, Click Through Rate)을 예측해 줍니다.
Hyperscale AI Computing 서비스를 사용해 DLRM 모델을 학습시키고, 또 학습된 모델을 사용해 실제 광고 클릭률을 예측할 수 있습니다. 학습/추론을 위한 PyTorch 스크립트와, 실제 모델 학습을 시켜 보기 위한 샘플 데이터(Criteo 1 TB Click Logs 데이터셋)를 제공합니다. Criteo 1 TB Click Logs 데이터셋과 호환되는 포맷의 데이터가 있다면 이를 사용해 DLRM 모델을 학습시킬 수 있습니다.
VM 생성 권장 사양
DLRM 학습을 위해서는 최소 다음 사양으로 VM을 생성하기를 권장합니다.
  • OS: Ubuntu 18.04
  • CPU: 8 vCore
  • 메인 메모리: 64 GB
  • VM 생성 시 Hyperscale AI Computing 서비스가 제공하는 여러 가지 AI 가속기 모델 중 한 가지를 선택해야 합니다. AI 가속기 모델에 따라 DLRM 모델의 학습 시간이 달라집니다. 다음 계산 성능 측정치를 참고하여 AI 가속기 모델을 선택하십시오. 특히 DLRM 학습 용도로는 small.16gb 혹은 medium.32gb 모델을 선택하시기를 권장합니다. 모델 구조 상 크기가 큰 AI 가속기에서 추가적인 성능 향상을 얻지 못할 수 있습니다. 너무 부담 가지실 필요는 없습니다 — VM을 생성한 후에도 언제든지 필요하다면 AI 가속기 모델을 다른 것으로 변경할 수 있습니다.
AI 가속기 모델학습 처리 속도(초당 이미지 학습량)샘플 데이터 1회 학습(1 epoch)시 소요 시간
small.16gb64504개10분 25초
medium.32gb117028개5분 47초
위 성능은 테스트 환경에서 측정된 것으로 실 사용 환경에서는 차이가 생길 수 있습니다.
또한 VM의 reference model로는 기타 카테고리의 DLRM 모델을 선택하십시오. 마지막으로 "생성하기" 버튼을 클릭하면 VM 생성이 완료됩니다.
모델 코드 및 샘플 데이터 설치
VM에 접속하면 홈 디렉터리 밑에 install.sh 스크립트가 위치하고 있습니다. 이를 실행하여 DLRM 모델 코드 및 샘플 데이터를 설치하십시오. 설치에는 수 분 정도가 걸릴 수 있습니다. 설치 중에 VM 접속이 끊어지지 않도록 유의하십시오.
설치가 완료되면 홈 디렉터리 밑에 dlrm, dataset/criteo 디렉터리가 생성됩니다. dlrm 디렉터리에는 DLRM 모델 학습/추론을 위한 PyTorch 스크립트가 들어 있습니다. dataset/criteo 디렉터리에는 샘플 데이터가 저장되어 있습니다.
설치가 정상적으로 이루어졌다면 홈 디렉터리 밑의 downloads 디렉터리는 지워도 무방합니다.
(pytorch) ubuntu@vm:~$ ls
install.sh  sample
(pytorch) ubuntu@vm:~$ ./install.sh
  
- Installing dlrm reference code...
(중략)
Install complete!
 
- Reference code of dlrm   : [ OK    ] (Saved at /home/ubuntu/dlrm)
- Dataset criteo           : [ OK    ] (Saved at /home/ubuntu/dataset/criteo)
- Link dataset             : [ OK    ] (Linked dataset at /home/ubuntu/dlrm/data)
 
(pytorch) ubuntu@vm:~$ ls
dataset  dlrm  downloads  install.sh  sample
(pytorch) ubuntu@vm:~$ ls dataset
criteo
(pytorch) ubuntu@vm:~$ ls dlrm
data  data_utils.py  dlrm_data_pytorch.py  inference.py  LICENSE  model  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  |
+==========================================================+
+----------------------------------------------------------+
DLRM 학습 시작하기
홈 디렉터리 아래의 dlrm 디렉터리로 이동한 다음 train.py 스크립트를 실행하여 DLRM 모델 학습을 시작할 수 있습니다.
(pytorch) ubuntu@vm:~$ cd ~/dlrm
(pytorch) ubuntu@vm:~/dlrm$ python train.py --save-model model.pt -b 65536
| INFO     | __main__:parse_args:108 - PARAMETER | arch_sparse_feature_size : 16
| INFO     | __main__:parse_args:108 - PARAMETER | arch_embedding_size : 4-3-2
| INFO     | __main__:parse_args:108 - PARAMETER | arch_mlp_bot : 13-512-256-64-16
| INFO     | __main__:parse_args:108 - PARAMETER | arch_mlp_top : 512-256-1
| INFO     | __main__:parse_args:108 - PARAMETER | arch_interaction_op : dot
...
[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...
[info] KT AI Accelerator is ready to use.
| INFO     | __main__:train:234 - Epoch 1/5 start
...
--save-model 옵션은 학습이 완료된 모델을 어느 파일에 저장할지를 지정합니다. 위 예시의 경우 학습이 완료된 모델을 model.pt 파일에 저장합니다.

관련자료

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

공지사항


뉴스광장


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