대부분의 머신러닝 시스템 들은 1Gb 미만의 작은 데이터 로 특정한 시간에 맞춰서 별도의 PC 에서 학습을 완료한 뒤, 서버 내부에 저장된 학습모델을 교체하는 방식으로 운영되고 있습니다.

이 책에서 소개하는 대규모 머신러닝 시스템 이란 YouTubeAmazone 과 같은 학습 데이터의 업데이트가 빈번하게 발생하고 있고, 이를 반영한 학습모델을 활용하여 서비스를 운영해야 하는 경우를 의미하고 있습니다. 즉 서버의 효율적인 운영과, 학습하는데 필요로 하는 컴퓨팅 파워들을 어떻게 하면 최적의 조합으로 운영할 수 있는지에 대한 답을 독자들이 찾을 수 있도록 해 주는 책 입니다.


내용 살펴보기

전반부 - 대규모 머신러닝 파이프라인에 대한 개념 설명

대략 300 페이지 미만의 책으로 200 페이지는 대규모 머신러닝 시스템 의 설계에 대한 내용들을 이해할 수 있도록 개념들과 원리에 대하여 설명을 하고 있습니다.

이 책에서 소개할 전체적인 서비스 구조형태

이 책은 현재 머신러닝 서비스를 직접 운영해본 경험이 있거나, 운영을 하지 않았더라도 이와 관련한 실습을 해 본적이 있는 분이라면 쉽게 내용을 이해할 수 있도록 자세하게 설명을 하고 있습니다.

chapter 02 데이터 수집 패턴
chapter 03 분산 학습 패턴
chapter 04 모델 서빙 패턴
chapter 05 워크플로 패턴
chapter 06 운영 패턴

책의 구성을 보면 머신러닝 작업에 필요로 하는 단계별로 나눠서 내용을 설명하고 있습니다. 본인에게 내용이 잘 맞는지 확인해 보고 싶으시면, 아래의 챕터들 중 본인이 잘 알고 있거나 또는 관심이 있는 해당 챕터의 내용을 보시면 됩니다.

아래의 사진은 chapter 02 데이터 수집 패턴 편에서 다루고 있는 내용 입니다. 데이터를 수집하는 과정에 대한 설명으로 서비스를 운영하는데 필요로 하는 개념들과 해당 개념들의 성능에 대하여 초보자도 알 수 있도록 상세하게 비교 가능할 수 있게 설명을 하고 있습니다.

chapter 02 데이터 수집 패턴 편

이 책의 가장 큰 장점은 상세한 설명과 함께, 해당 내용을 독자들이 함께 공감하고 이해하며 함께 답을 찾을 수 있도록 헤겔의 정반합 구조를 활용하고 있습니다. 아래의 사진은 Chapter 03 의 내용 중 하나인 운영 서비스의 파라미터 병목에 대하여 어떻게 설명을 하고 있는지를 한 눈에 볼 수 있도록 편집한 내용 입니다.

chapter 03 파라미터 병목 개선하기

저자가 일방적으로 내용을 설명을 하지 않습니다. (개요) 해당 내용 어떤 내용인지에 대하여 설명을 우선 합니다. (문제) 그리고 어떠한 내용이 필요한지 독자들의 이해를 돕기위해 문제점을 설명 합니다. (해결책) 해당 내용에 대하여 저자가 생각한 Solution 에 대하여 자세한 설명을 합니다. (고려사향) 그리고 더 낳은 해결책에 대하여 독자들과 함께 고민할 수 있도록 추가적인 대안들에 대하여 이야기를 하고 있습니다.

전반부 200 페이지는 책의 표지에서도 설명하는 것처럼 14가지 패턴으로 분산 머신러닝 파이프라인 에 대하여 정.반.합의 구조로 개별 내용에 대하여 설명을 하고 있고, 실습과 관련한 코드들도 있긴 하지만 실제 실습보다는 해당 개념에 대하여 이해를 돕기위한 수준으로 제한되어 있고 결과물 도출까지는 진행되지 않고 있습니다.

후반부 - TensorFlow 와 Kubernetes 를 활용한 간단한 실습

나머지 후반부의 100 페이지는 실습으로 구성되어 있는데 TensorFlowKubernetesKuberFlow 를 활용 합니다. 서비스 운영에 관련된 내용이다 보니 Linux Terminal 환경에서 해당 서비스를 직접 운영하는 내용을 다루고 있습니다.


총평

이 책은 위에서 언급한 것처럼 전반부 200 페이지에서 대규모 서비스를 개발하면서 느꼈던 저자의 생각과 더 나은 해결책을 얻는데 최적화 되어있는 책입니다. 때문에 해당내용에 대하여 직접 실습을 하거나 관련한 구체적인 서비스인 KuberFlow 등에 대하여 알고 싶으신 분들은 이 책을 바탕으로 기본기 및 기본개념들에 대하여 이해를 한 뒤, 이 책에서 제안한 해결책들을 먼저 접한 뒤 관련된 서비스를 활용하신다면 훨씬더 다양한 시선 및 효과적인 운영을 하시는데 도움이 될 것입니다.

서비스를 운영해본 경험이 없거나, 혹은 머신러닝 초보자인 분들에게는 상당히 어려울 수 있는 것 또한 사실 입니다.

본인이 머신러닝 프로젝트 경험이 있고, 이를 서비스로 확장하려는 분들에게는 실제로 운영을 하는데 있어서 고민했던 내용 및 앞으로 고민할 내용에 대하여 어떻게 접근하고 해결 가능할지에 대하여 길잡이가 되어주기에는 충분히 도움이 되는 책이었습니다.

※ 본 리뷰는 IT 현업개발자가, 한빛미디어 책을 제공받아 작성한 서평입니다.