Colab에서 PyTorch 모델 TPU로 학습하기

딥러닝 모델을 학습시키다 보면 항상 vram의 압박에 시달리게 된다. 특히 최근 막대한 크기의 모델들이 등장해 이런 압박은 더 심해지기도 한다.

한편, 일반 사용자용 그래픽 카드 중 최상위인 Nvidia 2080ti조차도 vram이 겨우 11GB밖에 되지 않아 거대한 모델을 Fine-tuning 하는 것조차 굉장히 작은 배치사이즈로 학습시켜야 한다.

Google Colab에서 제공하는 TPU는 tpu v3-8 모델로 총 128GB의 메모리를 가지고 있어, 상대적으로 큰 모델과 배치사이즈를 이용해 학습할 수 있다. (tpu v3 하나는 16GB의 HBM 메모리를 가지고 있고, tpu v3-8은 8개의 코어로 총 128GB의 메모리를 가진다.)

PyTorch에서는 Pytorch/XLA 프로젝트를 통해 PyTorch에서도 TPU를 통한 학습을 할 수 있도록 컴파일러를 제공하고 있고, colab에 해당 패키지를 설치하면 TPU를 곧바로 사용할 수 있다.

NOTE: 이번 글은 아래 공식 튜토리얼의 내용을 따라갑니다.

공식 Tutorial: PyTorch on Cloud TPUs: Single Core Training AlexNet on Fashion MNIST

(단 내용의 100%를 담는 대신, 기존 PyTorch와 동일한 부분은 제외함)

데이터 분석 파이프라인 풀세트, HopsWorks 설치기

성윤님의 블로그에서 Machine Learning의 Feature Store란? 글을 보고서 hopsworks 라는 제품에 관심을 갖게 되었다.

과연 어떤 기능을 갖고 있는 것일까? 내가 생각하는 것 처럼 데이터 버저닝부터 모델링 버전까지 모두 관리해주는 좋은 ‘실험실’을 구축해줄 수 있는 것일까? 라는 호기심에 설치를 시도해보었다.

Pandas에서 Parquet 사용하기 with Snappy/Gzip

Pandas나 PySpark등을 사용하다보면 *.csv 포맷으로는 만족하지 못하는 경우가 많다.

예를들어..

  • Data Type이 저장되지 않는다.

  • 너무 많은 데이터는 저장해도 CSV의 이점(엑셀로 열어볼 수 있다)을 살리지 못한다.

  • 특정 Column만 선택하는 것이 불가능하다. (= 전체 파일을 항상 모두 열어야 한다)

  • 용량이 상대적으로 작지만 크다 (압축을 하지 않은 경우)

  • (종종) Escaping이 잘 되지 않은 경우에는 파일 Parsing이 깨진다.

  • 한글이 들어간 csv의 경우 “MS Excel”에서는 BOM이 없으면 UTF-8을 제대로 인식하지 못한다. (한편, euc-kr 인코딩은 잘 읽는다.)

등등.. 여러가지 이슈가 있다.

그렇다면, 어떤 형식을 써야 할까?

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×