책 <가상면접 사례로 배우는 머신러닝 시스템 설계 기초> 리뷰

책 <가상면접 사례로 배우는 머신러닝 시스템 설계 기초> 리뷰

재밌는 책입니다!

저는 지금 학부 4학년에 재학 중인 대학생입니다. 사실 머신러닝, 딥러닝 과목을 들어보고 모델 구현도 해보고 했지만 사실 어떻게 실제로 현장에서는 어떻게 이게 활용되는지 감이 잘 안잡히더라구요. 그런데 이번에 아주 운좋게도 이벤트에 당첨되어서 이렇게 리뷰를 남기게 되었습니다.

시스템 디자인 면접을 대비하기 위한 책이다 보니, 1장에서 책 소개를 하고 빠르게 머신러닝 시스템에서 활용될 내용들을 정리하고, 나머지 2장부터 11장까지 모두 실제 사례를 가지고 소개해줍니다.

모든 장(chapter)의 세부 목차가 똑같습니다. 이렇게 9가지에요.

  • 요구사항 명확화
  • 머신러닝 작업으로 문제를 구조화
  • 데이터 준비
  • 모델 개발
  • 평가
  • 서빙
  • 추가 논의 주제
  • 요약
  • 참고 문헌

이렇게 딱 생각해야 step을 정해주니까 확실히 내가 어떤 문제를 마주했을 때 어떻게 문제를 쪼개나갈지 큰 도움이 되는 것 같습니다!

제일 재밌게 읽었던 사례 소개

저는 머신러닝보다 머신러닝이 돌아가는 시스템에 더 관심이 많아서, 사실 모델 같은 경우는 잘 모릅니다.. 하지만 수업 때 들은 것이 있어서 몇몇 모델을 알고 있습니다.

제일 재밌게 봤던 챕터를 간단히 소개하자면, "구글 스트리트 뷰 블러링 시스템" (5장)이었는데요. 구글 스트리트 뷰에서 사람의 얼굴이랑 번호판을 자동으로 흐리게 처리하는 시스템을 설계해보는 문제였습니다.

책에 있는 사진을 쓰면 안될 것 같아서 구글 맵스에 들어가서 아무곳이나 들어가봤는데, 정말 얼굴이랑 번호판이 잘 가려져 있더라구요.

이걸 어떻게 해결하면 좋을까? 혼자서 고민을 해봤습니다.
일단 이 문제는 Object Detection 모델으로 해결할 수 있을 것 같고, R-CNN, Mask R-CNN, Faster R-CNN, YOLO, DETR 등 다양한 모델이 있지만 제일 최신 모델인 DETR을 쓰고 싶었습니다.
그런데 이제 데이터 셋이 필요한데, 이걸 어떻게 구성하면 좋을 지 고민이 되고,
또 모델을 서빙할 때 처리량 (throughput)과 지연 시간 (latency)도 고려해야할텐데, 이것도 어떻게, 어디까지 이야기해야할지 막막했습니다.

책에서는 면접 사례를 그대로 가져와서, 이러한 고민들을 먼저 질문을 통해 명확히 하고, 데이터 셋이 주어지는 것은 있는지, 처리를 오프라인으로 해서 지연 시간을 고려하지 않아도 될지 물어보는 것으로 명확히 하고 넘어가는게 나와있었습니다. 평균 사용자 수는 얼마나 되는지, 주석 (annotation)이 달린 데이터셋이 있는지, 크기는 어느 정도인지 물어봅니다.
사실 읽고 나서 생각해 보면 당연히 알아야 할 부분인데, 이렇게 사례를 보지 않으면 혼자서 이런 질문을 해야겠다고 생각해내기 정말 어려울 것 같습니다.

마무리

사실 면접 대비 책이라 재미없고 딱딱한 책일거라고 생각했는데, 실제로 빅테크에서 해결해야 할 서비스들을 문제로 내니까 학교에서 배운 내용을 어떻게 잘 써먹는지 보는게 재밌어서 술술 읽혔던 것 같습니다.

무엇보다도 좋은 점은... 번역이 정말 깔끔합니다! 역자분께서 정말 머신러닝을 잘 알고 계신 것 같습니다. 보통 번역서를 사면 항상 두려운 것 중 하나가 전문 용어가 이상한 맥락으로 번역되지는 않았을 지 하는 것인데, 이 책은 읽으면서 불편한 점이 전혀 없었습니다.

면접 들어가기 전 내용을 정리할 때 읽어보기 정말 좋은 책인 것 같습니다!
그리고 좋은 책을 읽어볼 수 있는 기회를 주신 출판사 분들께도 감사드립니다! :grinning: