딥러닝 자격증 (Certificate) 후기 by NVIDIA, Tensorflow

딥러닝 강의를 다시 하게 되어서, 좋은 자료들을 정리하려고 찾아다니다가 certificate 들이 눈에 들어와서 땄다.
취득 한 것은 NVIDIA와 Tensorflow 에서 발급하는 두 가지 인데, 따면서 느꼈던? 알게된? 점들을 정리하겠다.

NVIDIA

NVIDIA 에는 많은 교육과정들이 잘 정리되어 있는데, 딥러닝 관련 코스들만 해도 꽤 10개 넘는 과정들이 있다.

NVIDIA Deep Learning Self-Paced Courses
Select courses offer a certificate of competency to support career growth.

이렇게 알아서 잘 찾아 들으라고, 분야별로 learning path 도 제시해 준다. 아래 예시는 computer vision 쪽 코스 가이드 인데, 다양한 목적별로 path 들을 정리해 놓았더라.

코스들을 보면, 과정따라 유료인 것도 무료인 것도 있고, 어떤 것은 Certificate Available 이라고 써져 있다.

사실 나는 딥러닝을 그래도 꽤 오래 전부터 실제로 사용해왔기 때문에, 학생입장으로 교육을 들을 필요는 없었지만, 교육자로서 과정을 잘 다듬고 싶기 때문에, NVIDIA 가 정리한 교육 과정을 들어봤다.
겸사겸사 certificate 도 따면 좋고, 어떤 식으로 자격을 검증하는지도 궁금했기에 위에 있는 Disaster Risk Monitoring Using Satellite Imagery 코스를 들었다. 무료이기도 했고, 사실 다른 과정들도 여러 개 다 들어봤다.

Courses – NVIDIA
Disaster Risk Monitoring Using Satellite Imagery 링크

코스 구성

이 코스 같은 경우는 위성 이미지를 기반으로 vision task 를 수행하여 재난 모니터링 시스템을 구축하는 내용이다.
핵심은 위성이미지를 처리하고, 학습해서 재난 상태를 바로바로 나타내 주는 것. 일반적인 image classification 문제이다.

요약하자면 아래와 같은 구성을 띈다.

  1. 동영상으로 된 프로젝트 개요

  2. Azure 로 ipynb, data 가 다 구성된 파일 시스템을 docker 로 열어주고 jupyter lab 을 열어줌

    1. 여기서 대부분의 학습이 이뤄짐. 이론 설명 & 실습 코드
      준비, 데이터 전처리, 시각화, 학습, 평가, 배포까지
  3. 4지선다 문제 10개 퀴즈

  4. 실습 테스트

    1. 다시 도커 새로 구성해서 열어주고, 직접 코드 시험 봄
    2. 실습 코드에서 필요한 부분들만 살짝 수정해야 함, 학습 후 모델의 평가 결과로 채점함
  5. 추가 학습

    1. 앞선 과정과 같이 이론, 실습이 있음
    2. 내용은 실제 2021 위성 데이터 재난 예측 대회에서 2등한 모델의 예시
    3. 실제로 딥러닝 모델의 성능 향상을 위해 도입된 semi-supervised learning 이라던가, ensemble 모델의 도입 이라던가 이런 시도들이 정리되어 있음.

위 캡처 이미지 처럼, 동영상으로 내용 설명도 잘 해주고, 무엇보다 클라우드로 실습을 할 수 있게 구성해준다.
아래 Start 버튼을 누르면, 구성하고 접속할 수 있게 열어주는데, colab 같이 그냥 저작성된 ipynb 파일을 열어 준다.
(그런데 구성하는데 오래걸린다.… ㅠㅠ 약 10분?)

이 ipynb 파일이 정말 양질로 잘 구성되어있다. 이것 밑에서 따로 더 자세히 얘기하겠다. 아무튼 이 ipynb 파일에 있는 내용을 숙지하고 직접 코딩해서 딥러닝을 실습해보는게 주 컨텐츠이다.

그리고는 아래와 같은 온라인 퀴즈 시험이 있고,
(이론 내용인데 시간이 충분하므로 쉬움)

실습 시험도 있다. 똑같이 ipynb 파일을 클라우드로 열어주고 가서 코딩하고 학습시키고 성능을 검증해야한다.

시험 자체는 어렵지 않다. 위성 이미지를 그냥 하라는 데로 잘 분석해내면 되고, 실제 위성 이미지를 분석해본다는 측면에서 경험도 도움이 많이 될 것 같다.

사실 나는 수 년 전에 위성 이미지를 이용해 대륙을 구분하는 연구 시스템을 구축했던 적이 있어서... 수월했던 것 같다.

컨텐츠

어떤 것들을 배울 수 있었는 지가 가장 중요한데, 다음과 같은 것들을 배울 수 있었다.

💡
일반적인 딥러닝의 Workflow
Coputer Vision 관련 Task 들의 종류, 구분
NVIDIA 툴킷들을 활용한 딥러닝 (Data 처리, Transfer learning, Deploy 서비스 사용)

일반적인 딥러닝의 흐름이 잘 정리되어 있어서 좋았고, (이것은 다른 곳들에도 잘 정리되어 있긴 하다.) 무엇보다 NVIDIA 도구들을 직접 사용해 보는 것이 좋았다.

  • NVIDIA Data Loading Library (DALI)
NVIDIA DALI Documentation — NVIDIA DALI 1.29.0 documentation
  • NVIDIA TAO Toolkit
Overview - NVIDIA Docs
  • NVIDIA Triton Inference Server
Overview - NVIDIA Docs

데이터를 잘 가져오는 DALI 나 Transfer Learning 을 수행하는 (이미 학습된 모델들을 잘 골라 사용하는) TAO Toolkit 같은 경우는 사실 다른 플랫폼 (ex. tensorflow) 에도 되게 쉽게 잘 되어있다.

그런데 Trition Inference Server 는 NVIDIA 의 서버를 이용해서 완성된 모델을 배포, 운영 하는 라이브러리?시스템? 인데, 사실 연구자들은 크게 고민하지 않는 부분이라 꽤 볼 것이 많았다.

좋은 모델을 만들면 효율적으로 돌리기 위한 노력들을 해야하는데, 프로덕션 레벨로 진짜 배포를 할 것이라면, 효율을 위한 학습들도 사실 해야한다. purning 도 해야하고, 특히 quantization 을 적용하고 다시 학습시키고 평가하는 루틴을 거쳐야 한다.

Quantiazation 은 딥러닝에서 가장 유용한 효율성을 높이는 방법 중 하나이다. 대부분의 파라미터들은 굳이 정밀함이 필요 없기에 이를 희생에서 많은 연산 효율을 얻고, 아주 조금의 모델 성능을 떨구는 것이다.

아무튼 이것은 사실 진짜 서비스 운영 단계에 오지 않으면 많이들 고민하지는 않는 부분인데, 이런 부분까지 다뤄주는 것이 특히 좋았다.

실제 분석 하는 컨텐츠들은 아래와 같이 생겼는데, 여느 ipynb 파일들이랑 같다. 설명이 무척 자세할 뿐.

Certificate

과정 잘 이수하고 시험 통과 하면 아래와 같은 certificate 이 발급된다. 링크드인에도 박을 수 있게 해준다!

Tensorflow

Tensorflow 에도 Developer Certificate 이 있더라. 이것은 유명한 과정인지, 한국어로 된 후기들도 꽤 있었고, 이거 따는 것을 위한 인터넷 강의도 있더라

Receive the TensorFlow Developer Certificate - TensorFlow
Demonstrate your level of proficiency in using TensorFlow to solve deep learning and ML problems by passing the TensorFlow Certificate program.

응시료는 100 달러이고, 그냥 바로 응시해도 되긴 하지만, 연계된 교육 과정이 무료로 구성 되어 있다.

Andrew Ng 이 창업한 deeplearning.ai 에서 운영하고 있는 코스이고, google 사람이 나와서 강의를 해준다. 실제 강의는 coursera 페이지로 연결되어 들을 수 있다.

코스 구성

교육 과정 구성은 총 4개로 내가 느낀대로 요약하자면,

  1. tensorflow 사용해보기
  2. Vision 해보기
  3. NLP 해보기
  4. Time-series 해보기

정도로 볼 수 있다. 직접 학습해보고, 모델 성능을 끌어올리기 위해 어떻게 모델 모양을 바꾸거나, 학습 방법을 바꾸거나 하는 등의 행위를 해본다.

컨텐츠의 내용은 아래와 같다.
 - 우선 쉬운 모델들 위주로 트랜스포머 같은 최신 모델들을 사용해보지 않는다.
 -  vision 을 기준으로 보면, object detection 이나 segmentation 같은 task가 아닌 단순 classification 정도만 한다.
 - 직접 학습을 잘 하기 위한 방법을 배워본다.

💡
딥러닝에서 다소 쉬운, 과거의 모델들을 하지만, 직접 깊게 실습해본다.

직접 모델을 만들어갈 사람 (연구자) 을 위한 시작점으로는 아주 좋다는 느낌이 들었다.

각각의 코스는 reading assignment 와 역시나 잘 정리된 실습 ipynb 파일, 이것들을 설명하는 동영상 강의로 이뤄져 있다.

퀴즈와 코딩 숙제가 섞여서 이를 잘 통과해야만 과정을 수료할 수 있다.

ipynb 파일들은 github 에 모두 올라와 있으니 사실 그것만 봐도 거의 다 커버가 된다.

GitHub - https-deeplearning-ai/tensorflow-1-public
Contribute to https-deeplearning-ai/tensorflow-1-public development by creating an account on GitHub.

이 과정 뒤로 연계된 심화 과정들이 deeplearning.ai 에 있다. 나는 안 해봤다.

Certificate

여기는 시험 얘기를 좀 해보겠다.

NVIDIA 코스는 사실 실습과 시험이 거의 과정이 똑같아서 굳이 언급 안 했는데, 여기는 시험 과정이 좀 다르다.

직접 본인 환경에 setting 을 해야 한다. pycharm 에 plugin 으로 자동 환경 구성 & 채점 시스템까지 만들어지고, 실제 학습은 내 컴퓨터에서 진행이 된다.

당연히 클라우드로 진행될 줄 알았는데 그게 아니라서 좀 놀랐다.
이럴 줄 알았으면, 스펙 좋은 컴푸터에서 할 껄 그랬다. 학습하는 것이 느려서 시간이 좀 아까웠다.

난이도는 생각보다는 어렵지 않더라. 딥러닝 경험이 있던 사람이라면, 위 교육 과정을 이수 하지 않아도 통과할 수 있을 것 같다. 물론 교육 과정은 매우 잘 정리가 되어있으니 이수하는 것을 추천한다. 직접 tensorflow 를 다뤄보는 것은 당연히 배울 것이 많다.

아무튼, 시험은 5시간 시간 제한이 있는데 2시간도 안 걸렸고, gpu 셋업을 미리했으면 1시간도 안 걸렸을 것 같다. 학습을 잘 못해서 헤메거나, 개인 환경의 사양이 좀 낮은 경우를 위해 넉넉하게 시간이 잡혀 있는 것 같다.

다 하고 나면 아래와 같은 certificate 이 날라온다. 유효 기간은 3년이란다. 어디서 인정을 해줄지는 모르겠다만, 그래도 증이라도 주니 기분이 좋긴 하다.

참고로, 앞서 말한 교육 과정도 이수하려면 quiz 랑 실습 다 통과 해야하는데, 다 이수하면 이수증을 주더라. 이것도 링크드인에 연동해서 박을 수 있게 되어있다.

결론

NVIDIA 랑 Tensorflow 에서 제공하는 교육 과정이랑 certificate 을 해봤다.
- 교육과정은 아주 잘 정리가 되어있다.
- 특히 딥러닝을 시작하는 사람들한테 아주 유용하다.
- certificate 은 난이도가 높지는 않아서, 제대로 된 실력 보장은 안 되겟다.

아무래도 온라인 자격증이라는 것이 copy 이슈도 있고 하니, 실력 보장을 잘 하기는 어려울 것 같다.