GCP ML 자격증 도전기 - Professional Machine Learning Engineer Certification

·임성혁

지난 3월에 3주간 nipa-google-ml 부트캠프에 참여했었는데, 해당 부트캠프를 수료한 이후 GCP 자격증 시험볼 생각이 있으면 바우처를 제공해주겠다고하여 해당 시험의 존재를 처음 인지하게 되었다.

GCP 자격증
GCP 자격증

알아보니 한번 응시하는데 200$!!!(심지어 세금 별도!!!)를 지불해야하는 시험이어서 시험의 난이도나 그런 것은 전혀 고려하지 않고 일단 응시해보기로 했다. (못먹어도 고)

해당 바우처가 5월 23일 전까지 응시해야된다는 조건이 있어서 5월 23일 오후 9시 시험으로 신청했다. GCP 자격증 시험은 시험장에 가서 보거나, 온라인으로 응시할 수 있는데 온라인으로 응시하면 10분 단위로 시작시간을 자유롭게 선택할 수 있다는 특징이 있다. 원한다면 새벽에 시험을 봐도 전혀 상관이 없다. 전세계 사람들이 모두 볼 수 있는 시험이라 응시 가능 시간이 자유로운가보다. 이러면 온라인으로 보지 않을 이유가 없다. 나는 최대한 시험을 뒤로 미루고 공부시간을 더 확보하고 싶어서 오후 9시로 선택하게 되었다.

GCP 자격증 종류가 엄청 많은데 내가 신청한 시험은 Google Cloud Certified - Professional Machine Learning Engineer (English) 이었다.

Professional Machine Learning Engineer
Professional Machine Learning Engineer

해당 시험을 선택한 이유는 내가 인공지능을 공부하는 사람이었기 때문이다. 관련 지식이 있으면 이후 토이 프로젝트도 GCP로 쉽게 배포할 수 있을 것 같아 ML 자격증 시험을 선택하게 되었다.

시험 신청은 아래 링크로 들어가서 하면 된다.

https://cloud.google.com/learn/certification/machine-learning-engineer

안일하게 생각해서 공부 시간이 너무 부족했다.

이틀 빡세게 공부해서 합격했다는 어느 블로그 후기를 믿고 공부를 차일피일 미루다가 21일부터 어떻게 공부할지 알아보고 시작했는데 공부해야될게 너무 많아보였다. 다시 읽어보니 그분은 에초에 어쩔 수 없는 선택지로 준비할 시간이 이틀밖에 없으셨던 것..

그제서야 다른 블로그 글 후기들을 살펴보니 다들 평균적으로 2~3주는 준비하신 것 같다. 하지만 나는 2일을 온전히 다 쏟아부을 수 있으므로 어쩌면 전체 공부 시간은 그들과 비슷하지 않을까하는 생각을 했다. (전혀 아니었고)

GCP 자체가 계속 기능이 업데이트 되는 서비스여서, 예전 자료로 공부하면 실제 내지 시험과 다른 경우가 너무 많다는 후기를 봤다. 그래서 구글에서 직접 제공하는 교육과정을 들었다.

https://www.cloudskillsboost.google/paths/17

ML Engineer 자격증 학습 과정
ML Engineer 자격증 학습 과정

언제든지 신청할 수 있고, 무료다. 동영상 강의 형식으로 제공되는데 한국어 자막도 볼 수 있고 옆에 영어 스크립트도 함께 볼 수 있어서 편했다.

Google Cloud Skills Boost subscription
Google Cloud Skills Boost subscription

35 free credits
35 free credits

다만 대부분의 실습에서 일정 크레딧을 요구하는데, 이게 유료다. 비록 교육이지만 실제 인스턴스를 사용하기에 돈을 부과하는 것 같다. 1 크레딧에 1$을 주고 구매하거나, 구독을 하면 되는데, 무료 요금제를 구독하면 한달에 35 크레딧이 무료로 제공된다. 다만 매 실습에서 5 크레딧을 요구하는걸 보니 Machine Learning Engineer Learning path의 전체 과정의 실습을 모두 수행하려면 35크레딧으로는 어림도 없다. 또한 실습의 규모에 따라 요구하는 크레딧이 달라지니 빠르게 전부 학습하고 싶다면 구독을 할 수 밖에 없다.

이런식으로 실습을 진행할 때 일정 크레딧을 요구한다
이런식으로 실습을 진행할 때 일정 크레딧을 요구한다

나는 어차피 준비 시간이 부족했기에 첫 무료 실습만 진행하고 나머지는 시험 끝나고 해보자는 마음으로 실습을 건너 뛰었다. 사실 이 과정이 챕터가 21번까지 있는데, 시간이 부족해서 3번까지 밖에 못봤다. 사실상 gcp에 ml과 관련된 서비스가 뭐뭐 있는지 찍먹만 해본 것..

기출 문제는 https://www.examtopics.com/exams/google/professional-machine-learning-engineer/ 해당 사이트에서 확인할 수 있었는데, 321 문제가 있다고 하지만 10문제를 풀고 문제를 더 보기 위해 다음페이지를 넘기면 30일 열람에 79.99$라는 사악한 가격을 요구한다.

문제 은행이 일부 반영되어 나온다고는 하지만 너무 비싼 가격에 구매에 손이 가지 않았다. 무엇보다 기출 문제를 보기 시작한 시간이 너무 늦어서 다 볼 수도 없었다. 그래도 어떤 스타일로 문제가 나오는지는 파악할 수 있어서 도움이 되었다.

https://docs.google.com/forms/d/e/1FAIpQLSeYmkCANE81qSBqLW0g2X7RoskBX9yGYQu-m1TtsjMvHabGqg/viewform 에 접속하면 구글에서 해당 시험에 대한 샘플 문제를 제공한다.

해당 자격증 시험을 온라인으로 응시하기 위해서는 전용 브라우저를 새로 설치해야된다. certMetrics (https://cp.certmetrics.com/google/en/login) 에 로그인하고 “Schedule/Launch an Exam”을 클릭해 webassessor로 넘어가면 메인화면에서 secure browser를 설치할 수 있는 다운로드 버튼이 나온다. 시험 전에 미리 설치해두어야한다.

step2에서 biometric profile 만들라고 해서 미리 진행했는데, 어차피 시험 응시하기전에 다시 시키더라. 시험 시간 10분 ~ 15분 전에 시험 시작을 위한 준비 버튼(launch button)이 나오는데 그거 클릭하면 biometric profile 만드는 과정을 먼저 진행하게 된다.

시험 응시 30분 정도 전에 부랴부랴 step3에 써있는 Dual Camera Proficiency Check를 진행했는데, 알고보니까 GCP ML 자격증 시험은 노트북 웹캠 하나만 있어도 된다고 한다. 괜히 시험 전 소중한 시간을 날렸다.

응시 전 휴대폰으로 시험 주변 환경을 촬영할 것을 요구하는데, 방이 더러우면 미리 청소할 것…! 방의 청결 상태가 나쁘다고 시험응시를 못하는건 아니고 그저 부끄러울 뿐이지만, 시험전에 책상 주변의 잡동사니는 모두 치우는게 좋다.

카메라로 촬영한 것을 AI가 분석해서 치워야할 물건이 있으면 사진에 있는 물건에 마킹해서 치워달라고 요구한다. 시험 응시 전에 본인확인을 하려고 책상위에 여권이 올려져 있었는데, 해당 여권을 치울 것을 요구받았다.

시험 응시는 시작한 순간부터 2시간이 주어지고, 총 50문제가 4지선다로 출제된다.

구체적으로 기술된 조건에서 어떻게 문제를 해결할 것인지 묻는 문제가 많아서 객관식이지만 문제 길이가 길었다. 혹시 기출 문제를 봤다면 비슷하게 나온다고 생각하면 된다.

영어를 못하지는 않지만 기본적인 독해 속도가 약간 느린 나로서는 문제를 푸는 시간이 정말 촉박했다. 총 50문제가 나왔는데 문제를 다 풀고 검토할 시간이 5분 밖에 없었다.

문제 푸는 와중에 느꼈던건 gcp에 대한 최소한의 이해와 인공지능에 대한 지식이 있으면 생각보다 답이 아닌 선지를 배제하기가 생각보다 쉬웠다는 것이다.

SQL을 알고 실제 모델을 배포해본 경험이 있다면 더 도움이 되긴하는데 크게 중요하게 작용하진 않았던 것 같다.

그래도 워낙 공부 시간이 부족해서 시험 응시 당시에는 끝나고 통과하리라는 기대는 하지 않았다.

해당 시험은 시험이 끝나고 바로 결과를 알려주는데, 놀랍게도 PASS를 받았다. 불합격하면 점수를 알려준다고 한다.

커트라인이 공개되어있지는 않지만 보통 80% 이상 맞춰야 통과하는 것으로 알려져있어서 크게 기대하지 않았는데 너무 기뻤다.

이번에 떨어지면 다시 빡세게 공부해서 재응시를 할지 그냥 포기하고 개인적으로 gcp 공부만 더 진행할지 고민하고 있었는데 그런 걱정은 바로 쓰레기통으로 직행~

200$ 아껴서 너무 좋다 :)

결과적으로 나도 이틀 빡세게 공부해서 합격한 사람이 되었다!

certificate은 PASS를 받고 일주일 정도 뒤면 나온다. credly에 시험본 구글 계정으로 가입하면 확인할 수 있다.

GCP ML 자격증 땄다!
GCP ML 자격증 땄다!

그래도 아직 모르는 디테일한 기능이 많으니 학습 코스는 이후에 다 마칠 예정이다.

내가 무슨 문제를 맞췄는지는 모르지만 적은 공부시간으로 PASS를 받은 사람으로서 서비스 디테일이 기억이 안날 때 맞는 선지를 고르는 팁을 풀어보자면 다음과 같다.

  1. 일단 데이터 전처리, 훈련, 평가, 배포 과정에 대한 기본적인 지식이 있다는 가정에서 해당 지식을 활용해 논리적으로 말이 안되는 선지를 배제한다.
  2. GCP는 노가다를 줄여주는 클라우드 플랫폼이므로 원래였으면 노가다 해야하는 과정을 ui로 간소화했겠지, gcp는 최고다라는 마음가짐으로 오히려 모델 개발 과정에 필요한 너무 정석적인 선지는 배제한다.

즉, 말이 되는 범위에서 문제를 더 편리하게 해결해주는 것 같은 선지를 고른다.

상식적으로 생각했을 때 비싼돈 주고 gcp에서 ML관련 플랫폼을 사용할 때 일반 인스턴스에서 노가다로 처음부터 환경을 세팅하는 것과 같은 일이 필요하다는건 말이 안되지 않은가?

위 두개의 원칙을 적용한 예시를 들면 배포 관련 문제를 풀 때는 실제 서비스할 때 최대한 지장을 안줄 것 같은 선지를 고르면 되는 것이다.

예를 들어서 이미 모델을 배포해 서비스하고 있는데 서비스 중단 없이 새로 학습한 모델을 배포해야하는, 즉 CD과정을 어떻게 해야하는지 묻는 문제가 나왔다고 해보자.

상식적으로 엔드포인트를 새로 만들어서 새로운 모델을 배포하고 사용자가 추론 요청할 때 엔드포인트 주소를 바꾸는건, 물론 가능하지만 무언가 번거로워 보인다.

A/B 테스트가 필요한 사례만 생각해봐도 바로 느낄 수 있다. 엔드포인트가 두개 일 때 A/B 테스트를 수행하면 매번 확률적으로 다른 엔트포인트에 요청하도록 서비스 코드를 수정해야한다. 통계는 또 어떻게 확인할 것인가?

클라우드 없이 직접 구현한다면 그렇게 하는게 맞지만 gcp가 동일한 엔드포인트로 추론 요청이 들어왔을 때 알아서 분배해주는 기능을 구현했을 것이라고 믿어야한다. 그래야 서비스를 개발하는 우리 입장에서 더 편하기 때문이다.

이렇게 된다면 좋겠지만 이게 가능하다고? 이런 기능이 있다고? 싶으면 gcp는 신이고 우리가 해야하는 귀찮은건 다 구현해줬다고 생각하고 선택해라.