본문 바로가기

배움/데이터

[30대 개발자] 머신러닝 엔지니어/사이언티스트 인터뷰 - 1

나는 딥러닝 엔지니어 인턴을 시작으로, 데이터 사이언티스트를 거쳐, 지금은 머신러닝 엔지니어로 일하고 있다.

 

나는 AI/ML 관련 직책으로 다양한 회사에 지원했었고, 그중 특히 머신러닝 엔지니어 포지션의 인터뷰는 정말 그 방식이 다양했다. 어떤 회사는 일주일이라는 시간과 회사 내부 데이터를 주고 모델을 만들고 분석해 오라는 과제를 주기도 했고, 텅 빈 Jupyter Notebook 위에 feature analysis, engineering, model training/evaluation까지 1시간 내에 마쳐보라고 하는 회사도 있었다. 또 다른 날은 팀의 매니저와 두 시간 동안 확률과 점화식 문제를 풀었어야 했을 때도 있었다.

 

소프트웨어 엔지니어와 달리 머신러닝 엔지니어는 인터뷰 과정에서 다양한 지식을 검증받는다. 코딩은 물론 기초 확률/통계와 머신러닝 개념에 대한 전반적인 이해도를 검증받는다. 머신러닝 엔지니어가 되기 위해선 코딩 인터뷰를 비롯해 정말 다양한 분야를 리뷰해야 했고, 나는 다음과 같은 방법으로 인터뷰를 준비했다.

 

1. Kaggle

Kaggle에 올라온 수 많은 사람들이 작성한 Jupyter Notebook script 들을 참고해 보자. 짧은 시간 내에 사람들이 일반적으로 데이터 분석 및 모델링을 어떻게 하는지 파악할 수 있을 것이다. 이를 바탕으로 나만의 script를 작성해보자. 이 script를 바탕으로 차근차근 데이터를 분석하고 모델링 하면 인터뷰를 잘 마칠 수 있을 것이다.

 

2. 확률통계 & 머신러닝

면접관은 때때로 면접 직전 warm up question으로 기초 개념들을 물어본다. 이때 간결하게 질문에 답변할 수 있기 위해선 예전에 공부했던 강의 자료를 반복 학습하고 학습한 내용을 이해하고 있는 게 중요하다. 대학에서, 혹은 독학한 공부 자료가 있다면 복습해 보자. 개인적으로 스탠퍼드 대학의 CS229 강의 자료가 인터뷰 준비하면서 정말 많은 도움이 됐고, 추가적으로 precision/recall 과 같은 evalation metrics에 대해서 깊게 학습한 게 도움이 됐다. 

 

3. 머신러닝 시스템 디자인

스탠퍼드 대학의 CS329S 강의를 정독해 보자. 현업에서 머신러닝 시스템을 어떻게 구성하는지 많은 케이스스터디와 그들의 솔루션을 배울 수 있다.

반응형