메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

머신러닝 시스템 설계

프로젝트 범위 산정부터 프로덕션 배포 후 모니터링까지, MLOps 완벽 해부하기

한빛미디어

번역서

판매중

  • 저자 : 칩 후옌
  • 번역 : 김대근 , 김영민
  • 출간 : 2023-03-14
  • 페이지 : 436 쪽
  • ISBN : 9791169210850
  • eISBN : 9791169216630
  • 물류코드 :11085
  • 초급 초중급 중급 중고급 고급
4.9점 (44명)
좋아요 : 20

프로덕션 환경에서 머신러닝을 다룰 때

무수히 생겨나는 물음표를 해결해줄 MLOps 지침서

 

머신러닝 시스템 개발은 선형이 아닌 순환 프로세스다. 모델을 개발해 배포하고 나서도 끊임없는 모니터링과 업데이트가 필요하다. 이 책은 비즈니스 관점에서 머신러닝 시스템을 설계하고 운영할 때 맞닥뜨리는 모든 단계를 다룬다. 책에서 소개하는 다양한 접근법과 사례 연구는 머신러닝 시스템을 성공으로 이끌기 위한 인사이트를 제공한다. 저자가 수많은 기업과 협업한 경험을 기반으로 제시하는 실무 중심 접근법은 시스템이 안고 있는 난제를 해결하는 데 발판이 되어줄 것이다.

 

detail_11085.jpg

 

칩 후옌 저자

칩 후옌

클레이폿 AI의 공동 창립자이자 CEO로서 실시간 머신러닝을 위한 인프라를 개발하고 있다. 이전에는 엔비디아, 스노클 AI, 넷플릭스에 재직하며 머신러닝 시스템을 개발하고 배포하는 일을 도왔으며, 스탠퍼드 학부생일 때는 ‘딥러닝 연구를 위한 텐서플로’라는 강의를 만들어 직접 학생들을 가르쳤다. 현재 스탠퍼드에서 이 책의 토대가 된 ‘CS 329S: 머신러닝 시스템 설계(Machine Learning Systems Design)’를 강의하고 있다. 전문 분야는 소프트웨어 엔지니어링과 머신러닝에 걸쳐 있으며, 링크드인 탑 보이스(Top Voices) 소프트웨어 개발 부문(2019)과 데이터 과학 및 머신러닝 부문(2020)에 이름을 올렸다.

김대근 역자

김대근

머신러닝을 공부하기 시작했을 때 접한 톰 M. 미첼(Tom M. Mitchell)의 명언, “머신러닝으로 문제를 해결하려면 그 문제를 명확히 정의해야 한다”라는 말을 상기하며 항상 초심을 잃지 않으려 합니다. 학부 과정에서 컴퓨터 과학과 수학을 복수 전공하고 석사 과정에서 머신러닝을 전공했습니다. 여러 해 동안 스타트업, 제조 및 금융 업계를 거치며 컴퓨터 비전 엔지니어로서 다수의 1저자 특허를 등록하고 제품 양산에 기여했으며, 데이터 과학자로서 다양한 PoC와 현업 프로젝트를 수행했습니다. 현재는 클라우드 업계에서 고객의 비즈니스 요구 사항을 이해하고 문제를 해결하는 AI/ML 전문가로서 기술적인 도움을 주고 있습니다. 『머신러닝 시스템 설계』(한빛미디어, 2023)를 우리말로 옮겼습니다.

 

김영민 역자

김영민

학창 시절 문인을 꿈꿨으나 군 시절 수학의 즐거움을 알게 되어 통계학으로 학사 및 석사 학위를 받았다. 금융공학으로 파생상품 가치를 평가하는 증권사 퀀트로 일하던 중 알렉스넷과 알파고의 등장에 충격을 받고 2015년에 커리어를 선회했다. 이후 IT와 금융 업계에서 데이터 과학자 및 머신러닝 엔지니어로 일하면서 다양한 머신러닝 서비스 론칭에 기여했다. 현재는 아마존 웹 서비스에서 엔터프라이즈의 비즈니스 문제를 머신러닝으로 함께 해결하면서 고객 성공을 지원하고 있다. 가치 중립인 AI 기술의 올바른 사용에도 관심이 있다.

1장 머신러닝 시스템 개요

1.1 머신러닝을 사용해야 하는 경우

1.2 머신러닝 시스템 이해하기

1.3 정리

 

2장 머신러닝 시스템 설계 소개

2.1 비즈니스와 머신러닝의 목적

2.2 머신러닝 시스템 요구 사항

2.3 반복 프로세스

2.4 머신러닝 문제 구조화하기

2.5 지성 vs. 데이터

2.6 정리

 

3장 데이터 엔지니어링 기초

3.1 데이터 소스

3.2 데이터 포맷

3.3 데이터 모델

3.4 데이터 스토리지 엔진 및 처리

3.5 데이터플로 모드

3.6 배치 처리 vs. 스트림 처리

3.7 정리

 

4장 훈련 데이터

4.1 샘플링

4.2 레이블링

4.3 클래스 불균형 문제

4.4 데이터 증강

4.5 정리

 

5장 피처 엔지니어링

5.1 학습된 피처 vs. 엔지니어링된 피처

5.2 피처 엔지니어링 기법

5.3 데이터 누수

5.4 좋은 피처를 설계하는 방법

5.5 정리

 

6장 모델 개발과 오프라인 평가

6.1 모델 개발과 훈련

6.2 모델 오프라인 평가

6.3 정리

 

7장 모델 배포와 예측 서비스

7.1 머신러닝 배포에 대한 통념

7.2 배치 예측 vs. 온라인 예측

7.3 모델 압축

7.4 클라우드와 에지에서의 머신러닝

7.5 정리

 

8장 데이터 분포 시프트와 모니터링

8.1 머신러닝 시스템 장애 원인

8.2 데이터 분포 시프트

8.3 모니터링과 관찰 가능성

8.4 정리

 

9장 연속 학습과 프로덕션 테스트

9.1 연속 학습

9.2 프로덕션에서 테스트하기

9.3 정리

 

10장 MLOps를 위한 인프라와 도구

10.1 스토리지와 컴퓨팅

10.2 개발 환경

10.3 자원 관리

10.4 머신러닝 플랫폼

10.5 구축 vs. 구매

10.6 정리

 

11장 머신러닝의 인간적 측면

11.1 사용자 경험

11.2 팀 구조

11.3 책임 있는 AI

11.4 정리

현업에서 필요했던 ‘진짜’ 머신러닝 이야기

 

머신러닝이라고 하면 보통 모델 개발과 알고리즘을 떠올리지만 실제로 프로덕션 환경에서 머신러닝을 운영할 때는 그 외에도 고려할 것이 많습니다. 머신러닝 시스템을 이루고 있는 데이터, 피처, 모델 개발·평가·배포, 모니터링, 인프라 등을 전체적인 관점에서 고려해야 합니다. 프로덕션용 머신러닝은 대부분 비즈니스를 중심으로 하는 만큼 비즈니스 문제에 따른 요구 사항과 이해관계자 또한 중요합니다.

 

이 책은 떠오르는 MLOps 분야의 대표 강의인 스탠퍼드 ‘CS329S: 머신러닝 시스템 설계(Machine Learning Systems Design)’를 기반으로 합니다. 저자인 칩 후옌은 넷플릭스부터 스타트업까지 다양한 기업에서 머신러닝을 배포하고 운영한 경험을 바탕으로, 여러분이 그동안 궁금했지만 답을 찾기 어려웠을 법한 질문에 대해 여러 가지 접근법을 제시합니다. 특정 도구 사용법보다는 각 머신러닝 기법의 개념 및 장단점과 트레이드오프에 집중하며, 더 필요한 정보는 바로 찾아볼 수 있도록 풍부한 참고 자료 링크를 제공합니다.

 

대상 독자

- 머신러닝 관련 실무자: 머신러닝 엔지니어, 데이터 과학자, 머신러닝 플랫폼 엔지니어, 엔지니어링 관리자 등

- 도구 개발자: 머신러닝 프로덕션에서 서비스가 부족한 영역을 찾아내 생태계에 맞는 도구를 만들어 넣을 방안을 파악하려는 경우

- 구직자 및 학생: 머신러닝 관련 직무로 취업하려는 경우

- 기술 및 비즈니스 리더: 제품 및 비즈니스 프로세스를 개선하기 위해 머신러닝 솔루션 채택을 고려하는 경우

 

장별 주요 내용

 

[1장 머신러닝 시스템 개요]

다양한 머신러닝 유스 케이스를 살펴보면서 머신러닝을 적용하기에 적합한 경우와 그렇지 않은 경우를 논의합니다. 프로덕션용 머신러닝을 연구용 머신러닝 및 전통적인 소프트웨어와 비교해봅니다.

 

[2장 머신러닝 시스템 설계 소개]

비즈니스 목적에 따라 시스템 요구 사항을 정하고, 이를 만족하는 머신러닝 시스템을 설계하기 위한 반복 프로세스를 살펴봅니다. 머신러닝 문제를 구조화하는 방법을 논의합니다.

 

[3장 데이터 엔지니어링 기초]

머신러닝 프로젝트에서 사용하는 다양한 데이터의 소스와 데이터를 저장하는 포맷을 살펴봅니다. 데이터 스토리지 엔진과 주요 처리 유형, 프로세스 간에 데이터를 전달하는 다양한 모드를 알아봅니다.

 

[4장 훈련 데이터]

양질의 훈련 데이터를 얻는 기술을 살펴봅니다. 다양한 샘플링 기술을 알아본 뒤 레이블 다중성과 클래스 불균형을 비롯해 훈련 데이터를 생성할 때 흔히 맞닥뜨리는 문제를 논의합니다.

 

[5장 피처 엔지니어링]

피처 엔지니어링 기법과 주요 고려 사항을 살펴봅니다. 데이터 누수를 감지하고 방지하는 방법을 알아보고 좋은 피처를 설계하는 방법을 논의합니다.

 

[6장 모델 개발과 오프라인 평가]

작업에 가장 적합한 알고리즘을 선택할 때 유용한 팁을 살펴본 뒤 디버깅, 실험 추적과 버전 관리, 분산 학습, 오토ML 등 모델 개발의 다양한 측면을 알아봅니다.

 

[7장 모델 배포와 예측 서비스]

머신러닝 배포를 둘러싼 통념을 살펴봅니다. 온라인 예측과 배치 예측을 알아본 뒤 다양한 모델 압축 기술을 살펴봅니다. 에지 디바이스와 클라우드에서 모델을 배포하는 방법을 논의합니다.

 

[8장 데이터 분포 시프트와 모니터링]

프로덕션에 배포한 머신러닝 모델이 실패하는 이유를 논의합니다. 연구와 실무 양쪽에서 많은 논의가 이루어지고 있는 데이터 분포 시프트 문제를 살펴봅니다.

 

[9장 연속 학습과 프로덕션 테스트]

데이터 분포 시프트에 적응하기 위해 머신러닝 모델을 업데이트하는 방법을 살펴봅니다. 연속 학습이 무엇이며 어떤 어려움이 있는지 알아보고, 모델 재훈련 빈도와 프로덕션 테스트를 논의합니다.

 

[10장 MLOps를 위한 인프라와 도구]

프로덕션 규모와 상황에 따라 머신러닝 시스템에 적합한 인프라를 설정하는 방법을 알아봅니다. 인프라를 구성하는 네 가지 레이어인 스토리지와 컴퓨팅, 자원 관리 도구, 머신러닝 플랫폼, 개발 환경을 논의합니다.

 

[11장 머신러닝의 인간적 측면]

머신러닝 모델의 확률론적 특성에 따라 사용자 경험이 어떻게 영향받는지 논의합니다. 한 시스템을 개발하는 구성원들이 효과적으로 협업하기 위한 조직 구조를 알아보고, 머신러닝 시스템이 사회 전체에 미치는 영향을 들여다봅니다.

[서론]

 

이 책은 머신러닝 시스템을 실제로 프로덕션 환경에서 고려해야 하는 요소들을 전방위적으로 다룬다. 데이터, 피처, 모델 개발, 평가, 배포, 모니터링, 인프라 등을 종합적인 관점에서 다루며, 비즈니스 요구 사항과 이해관계자의 역할도 서술한다.

 

 

 

[1장 머신러닝 시스템 개요]

 

1장에서는 다양한 머신러닝 유스 케이스를 살펴보며 머신러닝을 적용하기에 적합한 경우와 그렇지 않은 경우를 비교한다. 또한 프로덕션용 머신러닝을 연구용 머신러닝 및 전통적인 소프트웨어와 비교하여 머신러닝 시스템 개요를 소개한다.

 

 

 

[2장 머신러닝 시스템 설계 소개]

 

2장에서는 비즈니스 목적에 따라 머신러닝 시스템의 요구 사항을 정하고, 이를 만족하는 시스템을 설계하기 위한 반복 프로세스를 소개한다. 또한 머신러닝 문제를 구조화하는 방법에 대해 논의한다.

 

 

 

[3장 데이터 엔지니어링 기초]

 

3장에서는 머신러닝 프로젝트에서 사용되는 다양한 데이터의 소스와 데이터를 저장하는 포맷을 살펴본다. 데이터 스토리지 엔진, 데이터 처리 유형, 데이터를 전달하는 다양한 모드 등에 대해 알아본다.

 

 

 

[4장 훈련 데이터]

 

4장에서는 양질의 훈련 데이터를 얻는 기술에 대해 다룬다. 샘플링 기술과 함께 레이블 다중성과 클래스 불균형 등 훈련 데이터 생성 시 자주 마주치는 문제를 논의한다.

 

 

 

[5장 피처 엔지니어링]

 

5장에서는 피처 엔지니어링 기법과 주요 고려 사항을 다룬다. 데이터 누수 감지 및 방지 방법과 효과적인 피처 설계에 대해 논의한다.

 

 

 

[6장 모델 개발과 오프라인 평가]

 

6장에서는 작업에 가장 적합한 알고리즘을 선택하는 팁과 디버깅, 실험 추적, 분산 학습, 오토ML 등 모델 개발의 다양한 측면을 다룬다.

 

 

 

[7장 모델 배포와 예측 서비스]

 

7장에서는 머신러닝 모델의 배포에 관한 통념을 살펴보고 온라인 예측과 배치 예측, 모델 압축 기술에 대해 알아본다. 또한 에지 디바이스와 클라우드에서의 모델 배포 방법을 논의한다.

 

 

 

[8장 데이터 분포 시프트와 모니터링]

 

8장에서는 프로덕션에 배포한 머신러닝 모델의 실패 원인을 다루며 데이터 분포 시프트 문제에 대해 논의한다.

 

 

 

[9장 연속 학습과 프로덕션 테스트]

 

9장에서는 데이터 분포 시프트에 대응하기 위해 머신러닝 모델을 업데이트하는 방법을 살펴본다. 연속 학습과 모델 재훈련 빈도, 프로덕션 테스트에 대해 논의한다.

 

 

 

[10장 MLOps를 위한 인프라와 도구]

 

10장에서는 MLOps를 위한 인프라 설정 방법과 네 가지 레이어(스토리지와 컴퓨팅, 자원 관리 도구, 머신러닝 플랫폼, 개발 환경)에 대해 알아본다.

 

 

 

[11장 머신러닝의 인간적 측면]

 

11장에서는 머신러닝 모델의 확률론적 특성에 따른 사용자 경험의 영향과 협업을 위한 조직 구조, 머신러닝 시스템의 사회적 영향을 다룬다.

 

 

 

[편집 및 번역]

 

칩 후옌 저자는 자신의 경험과 지식을 바탕으로 전문적이고 실용적인 내용을 전달한다. 책은 전문적으로 편집되었으며, 번역은 정확하고 자연스럽게 이루어졌다. 내용을 이해하기 쉽고 숙련된 기술 용어를 적절하게 사용하여 독자들에게 부담 없이 전달된다.

 

 

 

[장점]

 

현업에서 실제로 발생하는 문제와 상황에 대해 깊이 있는 이해를 제공한다. 다양한 측면을 다루어 주어서 현실적인 관점에서 머신러닝 시스템을 접근할 수 있다. 비즈니스 관점에서 머신러닝을 고려하고 적용하는 방법을 강조하여 실제 비즈니스 모델에 머신러닝을 효과적으로 적용할 수 있도록 도와준다. 머신러닝 시스템의 전체 생명주기를 다루어 엔드-투-엔드로 설계하고 운영하는 방법을 제시한다. 실무에 필요한 모범 사례와 경험을 공유하여 실용적인 가이드라인을 제공한다.

 

 

 

[단점]

 

초보자를 위한 입문서보다는 실무자를 대상으로 한 전문서이기 때문에 머신러닝에 대한 기본적인 지식이 부족한 독자들에게는 난이도가 높을 수 있다. 일부 내용이 기술적이고 복잡한 부분이 있어 이해하기에 어려움을 겪을 수도 있다.

 

 

 

[결론]

 

이 책은 스탠퍼드의 '머신러닝 시스템 설계' 강의를 기반으로 하며, 저자인 칩 후옌은 다양한 기업에서의 머신러닝 배포 및 운영 경험을 바탕으로 여러 가지 질문에 대한 접근법을 제시한다. 실제 비즈니스 모델에 머신러닝을 적용하고자 하는 독자들에게 유용한 지침을 제공하는 책이다. 각 장마다 실무에 필요한 내용과 관련된 예시와 모범 사례를 제시하여 머신러닝 시스템을 구축하고 운영하는 데 도움이 된다. 단점으로는 초보자를 위한 입문서보다는 전문가를 대상으로 한 책이기 때문에 기본적인 지식이 부족한 독자들에게는 난이도가 높을 수 있다. 하지만 현업에서 실제로 발생하는 문제와 도전을 다루는 이 책은 머신러닝 분야에서 실무 경험을 갖고 있는 독자들에게 많은 도움을 줄 것이다.

 

5월 리뷰어 신청을 했을 때 많은 고민을 한 것 중 하나가 머신러닝 시스템 설계를 받게 되면 잘할 수 있을까 하는 고민이 먼저 되었는데 해당 도서를 받게 되어 정독을 한 도서입니다.

머신러닝이란 주제는 몇 년 전부터 관심이 있었지만 실무에서는 다른 업무를 담당하고 있어 잘 모르는 영역이지만  Iot 프로젝트를 수행하면서 수집 테이터를 통해 머신러닝의 기초가 되는 데이터를 모으고 분류하는 전처리 단계 프로세스의 다음 단계에 대한 관심으로 이 도서를 읽게 되었습니다.  다음은 머신러닝 시스템 설계의 구성입니다.

Chapter 1: 머신러닝 시스템 개요 : 머신러닝을 왜 사용해야 하는지 유스케이스틀 통해서 이야기하고 있으며 연구용과 프로덕션용 머신러닝 및 전통적인 소프트웨어 설계와 머신러닝 시스템 설계의 차이점을 초보자도 쉽게 이해할 수 있도록 설명하고 있습니다.

Chapter 2: 머신러닝 시스템 설계 소개 : 머신러닝 설계 시 고려 사항에 대해서 이야기하고 있는데 전통적인 소프트웨어 설계에서도 가장 중요한 요구사항을 어떻게 충족을 해야 하는지에 대해서 여러 관점으로 살펴보고 있으며 데이터의 역할에 대해서 다양한 접근 방법을 이야기하고 있습니다. 머신러닝의 기초는 어떻게 데이터를 보유하는 것인데 이 부분에서 아이디어를 얻을 수 있을 것입니다.

Chapter 3: 데이터 엔지니어링 기초 :  머신러닝에서 사용할 데이터를 어떻게 분류하고 어떤 포맷으로 저장할 것인가에 대해 설명한 부분으로 실무에서 많이 고민한 부분에 논하고 있어서 많은 부분이 적립된 곳입니다. 관계형 모델, 문서 모델, 그래프 모델에 대한 설명부터 트랜젹션 처리, 분석 처리. 실시간 처리를 위한 메시지 큐 그리고 배치 처리, 스트림 처리 등 데이터를 어떻게 처리하는 방법에 대한 아이디어를 얻을 수 있습니다.

Chapter 4: 훈련 데이터 : 머신 러닝 알고리즘에서 수집된 데이터를 요구 사항에 충족하는 데이터를 샘플링하는 방법에 대해서 설명하고 있고 레이블을 부족에 대한 지도 학습, 준지도 학습, 전이 학습,  능동적 학습등에 대해서 설명하고 있습니다,

Chapter 5: 피처 엔지니어링 : 머신 러닝에서 가장 중요한 피처에 대한 설명으로 피처 엔지니어링 관련 기법과 고려사항과 좋은 피처를 설계하는 방법에 대해서 설염 하고 있습니다.

Chapter 6: 모델 개발과 오프라인 평가 : 모신 러닝에서 모델을 선택하는 병법에 대해서 개별 모델 아키덱쳐의 장단점과 모델 앙상블을 설명하고 있으며 요구 사항에 적합한 모델을 생성하기 위한 고려 사항에 대해서 이야기하고 있습니다. 또한 모델 생성과정의 버전관리가 왜 필요한지, 많은 데이터를 처리하기 위한 분산 훈련 기술에 대한 방법 또한 설명하고 있습니다. 마지막으로 선택한 모델에 대한 다양한 평가 기술을 설명하고 있습니다.

Chapter 7: 모델 배포와 예측 서비스 : 머신러닝 엔지니어링의 배포를 온라인, 베치 , 클라우드에서 배포하는 방법에 대해서 네트워크 레이턴시와 클라우드비용, 엣지의 리소스에 따른 프로덕션 배포 전략에 대한 아이디어를 얻을 수 있습니다.
 
Chapter 8: 데이터 분포 시프트와 모니터링 : 배포 아후 프로덕션 환경에서 시스템 장애와 머신러닝 관련 장애애 중 머신 러닝 장애에 대한 장애를 시스템 설계 측면과 연결해서 설명하고 있으며 머신러닝 모니터링의 어려움을 설명하고 있으면 어떤 지표로 모니터링을 해야 할지 아디디어를 얻을 수 있습니다.

Chapter 9: 연속 학습과 프로덕션 테스트 : 프로덕션 환경에서 변하는 데이터에 대해서 지속적으로 모델에 반영하는 방법과 실시간 기술과의 병합에 대한 아이디어 및 솔류션을 확인할 수 있습니다.

Chapter 10: MLOps를 위한 인프라와 도구 : 머신러닝 시스템에 필요한 인프라 영역의 리소스에 대한 설명과  모신러닝 시스템의 인프라 구성을 어떤 관점에서 해야 할지 가이드를 제공합니다.

Chapter 11: 머신러닝의 인간적 측면 : 머신러닝 시스템을 조직과 연관되고 각 기술과 조직이 융합되어야 하는지 사례 연구를 통해서 살펴볼 수 있습니다.

머신러닝 시스템 설계 도서는 데이터 수집 및 전처리, 훈련데이터 생성, 피치 엔지니어링, 모델 및 평가, 배포, 모니터링등 머신 러닝 시스템의 전체 적인 개념을 익힐 수 있었습니다. 또한 머신러닝을 담당하고 있는 현업 담당 관리자가 이 도서를 통해서 머신러닝에 대한 전반적은 개념을 습득하여 실무에 적용할 수 있는 지침서로 활용할 수 있으며, 인프라 담당자에게 어떤 도구를 사용할지 가이드로, 머신러닝 기획자에게는 어떤 뷰로 대시보드를 작성하고 활용할 수 있는 지침이 될 수 있어 머신러닝을 학습하는 학생과 실무에 적용하는 모든 관련 분들에게 추천합니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

이 책은 ML에 대한 개념이나 ML 알고리즘 등에 대한 책은 아닙니다.

책 제목에서와 같이 ML 시스템 설계를 위한 지침서 입니다.

일반적인 ML 시스템 개발 관련 책과는 다르게 ML 시스템 개발을 위한 처음부터 배포까지에 대한 최대한 실무적인 부분을 느끼고 학습할 수 있도록 도움을 주고자하는 책 입니다.

그렇기에, 책에서 제시하는 대상 독자 또한 제한적 입니다.

 

[ 대상 독자 ]

책에서 필자가 바라보는 대상 독자는 아래와 같습니다.

 * 도구 개발자 : ML 프로덕션에서 서비스가 부족한 영역을 찾아내 생태계에 맞는 도구를 만들어 넣을 방안을 파악하려는 경우

* 구직자 : ML 관련 직무로 취업하려는 경우

* 기술 및 비즈니스 리더 : 제품 및 비즈니스 프로세스를 개선하기 위해 ML 솔루션 채택을 고려하는 경우

 

ML 개론서가 아니기에 ML 개론에 대해서 대략적으로 이해하고 있다는 가정에서 집필된 책이라고 명시하고 있습니다.

그래서, 아래의 내용들에 대해서 먼저 학습하기를 권하고 있습니다.

하지만, 1장과 2장의 경우에는 ML 시스템 개요와 ML 시스템 설계에 대해서 다루고 있는데,  상기 내용에 대해서 선행 학습이 없이도 어느정도 이해하는데 큰 무리는 없습니다.

하지만 4장 부터는 ML에 대해 최소 용어등에 대한 기본 개념이 있어야 좀더 쉽게 접근 가능합니다.

 

[ 책 구성 ]

이 책은 총 11개의 장으로 구성되어 있습니다.

 

1장, 머신러닝 시스템 개요

   머신러닝을 사용해야 하는 경우에 대해서 머신러닝은 무엇을 해결할 수 있을까요? 라는 질문으로 9가지로 나뉘어 정리하고 있으며, Use Case 예시를 통하여 머신러닝을 사용해야 하는 경우가 어떤게 있는지 보여주고 있습니다.

머신러닝 시스템 이해하기에서는 연구용 머신러닝과 프로덕션용 머신러닝을 비교하여 설명하고 있는 것은 신선하였으며 다양한 이해관계자와의 요구사항 부분은 전체 시스템을 바라보는 경우에는 한번즈음 고려해볼만한 부분인것 같습니다.

2장, 머신러닝 시스템 설계 소개

    이 장에서는 머신러닝 시스템 설계에 대해서 소개하고 있습니다.

머신러닝 시스템을 개발하기 전 어떤 요구사항을 충족 하여야 하는지, 케이스 마다 어떠한 것이 다른지부터 머신러닝 시스템에서의 데이터에 대한 철학적 논쟁까지 학습할 수 있습니다.

3장, 데이터 엔지니어링 기초

    데이터 소스, 데이터 포맷, 데이터 모델, 데이터 스토리지 엔진 및 처리, 데이터플로 모드, 배치처리 vs. 스트림처리 에 대해서 논의하고 있으며, 머신러닝에서 데이터에 대해서 그 종류 및 여러 처리 방법에 대해서 학습할 수 있습니다.

개론 및 소개이며 각각에 대한 자세한 부분들은 구글 또는 다른 책들을 참고 하여야 합니다.

4장, 훈련 데이터

    3장에서 소개한 데이터에 대해서 ML 모델을 개발하고 개선하는데 필요한 훈련 데이터에 대해서 설명하고 있습니다.

샘플링, 레이블링, 클래스 불균형 문제, 데이터 증강에 대해서 알 수 있습니다.

5장, 피처 엔지니어링 (Feature Engineering)

    피처 엔지니어링이란, 원시 데이터로 부터 피처 (Feature)를 추출하고 이를 머신러닝 모델에 적합한 형식으로 변환하는 작업입니다.

이 장에서는 피처 엔지니어링 관련 기법과 중요한 고려 사항에 대해서, 그리고 데이터 누수를 감지하고 방지하는 방법에 대해서, 그리고 피처 중요도와 피처 일반화를 함께 고려해 좋은 피처를 설계하는 방법에 대해서 알 수 있습니다.

6장, 모델 개발과 오프라인 평가

    작업에 가장 적합한 알고리즘을 선택할 때 유용한 여섯가지 팁에 대해서, 그리고 디버깅, 시스템 추적과 버전 관리, 분산 학습, 오토ML 모델 등의 모델 개발에 대해서, 그리고 모델 성능을 비교 및 평가 하는 방법에 대해서 설명하고 있습니다.

이 장을 통해서 ML 시스템의 ML 알고리즘에 대해서 알아보고 여러 가설에 대해서 평가하고 가장 적합한 ML 모델을 선택하는 방법에 대해서 알 수 있습니다.

7장, 모델 배포와 예측 서비스

   온라인 예측과 배치 예측, 에지에서의 ML과 클라우드에서의 ML을 비교해 모델을 배포하는 다양한 방법에 대해서 설명하고 있습니다.

8장, 데이터 분포 시프트와 모니터링

   모델이 언제 프로덕션에서 실패하는지, 모델을 지속적으로 모니터링 하여 문제를 감지하고 신속하게 해결하는 방법이 무엇인지에 대해서 설명하고 있습니다.

특히, 장애 유형인 데이터 분포 시프트를 다루면서 공변량 시프트, 레이블 시프트, 개념 드리프트라는 세 가지 시프트 유형에 대해서 알 수 있습니다.

9장, 연속 학습과 프로덕션 테스트

   연속 학습이 무엇이며, 어떤 난제가 있는지 알아보고, 연속 학습을 현실화 하기 위한 4단계 계획(수동 훈련, 자동 재훈련, 자동 상태 유지 훈련, 무상태 연속 학습)을 세웁니다.

그리고, 모델을 얼마나 자주 재 훈련 해야 하는지 알아 봅니다.

10장, MLOps를 위한 인프라와 도구

   이 장에서는 ML 시스템에 필요한 다양한 인프라 레이어를 다루고 있습니다.

스토리지와 컴퓨팅 레이어, 데이터 과학자가 코드를 작성하고 프로덕션 환경과 상호 작용하는 개발 환경, 자원관리에 대해서 논의 합니다.

11장, 머신러닝의 인간적 측면

    1장과 2장에서 이해관계자와 그들의 목표에 대해서 논의했다면, 이 장에서는 사용자와 시스템 개발자가 ML 시스템과 상호 작용하는 방법에 대해서 알아 봅니다.

이전 까지는 기술적 주제에 대해서 다루었다면, 이 장에서는 인간적 측면에서의 ML에 대해서 다루고 있습니다.

그리고, "11.3의 책임 있는 AI" 에서는 사례를 통하여 "무책임한 AI" 와 "책임있는 AI" 라는 주제를 통해 무책임한 AI의 사례로 ML시스템을 공정하고 윤리적으로 만들지 못하면 치명적인 결과를 얻을 수 있다는 것을 알리고, 데이터 과학자와 ML 엔지니어가 ML 시스템을 책임 있게 만드는데 가장 유용한 도구와 지침을 선택할 수 있는 예비 프레임 워크를 소개하고 있습니다. 

 

책 내용 중간중간에 박스 메모를 통해 알아두면 좋을 내용들에 대해서 정리하고 있습니다.

 그리고, 부연 설명이 필요한 경우 "Note" 를 통해서 정리하고 있습니다.

각 장마다 마지막에는 정리를 통하여 해당 장에서 알려주고자한 내용에 대해 간략하게 보여주고 있습니다.

 

[ 결론 ]

머신러닝 시스템 설계 책은 머신러닝에 대한 학습을 위한 책은 아닙니다.

머신러닝에 대해 용어나 알고리즘등에 대해 어느 정도 알고 있어야 학습이 가능합니다.

아쉬운 점은 대상 독자를 머신러닝에 대해서 기본 적인 것은 알고 있는 사람을 대상으로 하고 있다고 하여도 각 장에서 기본 용어나 필요한 부분들에 대해서 간략하게 나마 정리를 해주었으면 좀 더 좋았을 것 같다는 생각이 듭니다.

머신러닝에 대해서 모르는 상태에서 학습 하여도 전체는 다 알기는 힘들지만 어느정도는 이해 할 수 있도록 설명 되어있긴 하지만, 기본적인 내용들에 대해서는 우선 학습하고 본 책을 학습하면 좋을 것 같습니다.

그리고 일부 장들은 (1, 2, 3, 11장) 머신러닝을 처음 접하더라도 읽어보면 좋을 내용 인것 같습니다.

이 책은 머신러닝과 밀접하게 일하시는 분들이라면 반드시 읽어봐야 할 책이라 생각합니다. 예를 들면 ML Engineer 혹은 ML Ops 하시는 분들은 당연하며 Product Owner (PO) 와 User Experience (UX)를 담당하시는 분들도 머신러닝의 적용과정 몇 결과에 대한 이해를 위해 읽어보시면 좋은 책 입니다.


ML이라고 하면 최신 모델과 기법만을 생각하기 쉬운데 서비스 적용 시 현실적으로 겪어야 하는 내용들에 대해 잘 정리하고 있습니다. 예를 들면 머신러닝이 해당 서비스에서 왜 필요한지 그리고 어떤 비지니스의 목표를 달성해야 하는지부터 알아야 한다는 점을 강조하고 있습니다. 


카카오에서 다양한 서비스에 추천시스템을 적용해본 경험을 바탕으로 이 책을 보았을 때, 제가 겪었던 다양한 상황이 이 책에 녹아있어 놀라웠습니다. 겪어본 것 뿐 아니라 그보다 더 다양한 상황을 쉽고 체계적으로 정리하고 있습니다. 서비스의 비지니스 성과 달성을 머신러닝을 통해 하고자 분들의 경우 이 책을 꼭 추천드립니다. 실전 머신러닝의 정수를 담고 있기에 많은 도움이 될 것이라 생각합니다.


좀 더 자세한 리뷰는 아래 링크에 적어두었습니다.

https://altari.io/2023/05/27/Designing-ML-Systems.html

B1811121220_l.jpg

 

비즈니스 문제를 해결하기 위한 머신러닝 시스템 설계 전 과정을 다루고 있는 책이다. 스탠포드 대학의 CS239S 강의를 책으로 재 구성한 것으로, 머신러닝 실무자인 저자의 다양한 노하우가 담겨져 있다.

 

시스템 설계 시 고민해야 할 점과 발생할 수 있는 문제들을 미리 짚어주기 때문에, 기존의 시스템을 이해할 때도, 새로운 시스템을 구성할 때도 큰 도움이 될 수 있는 책이다. 특히 책 속에 언급되는 예시들이 현실에 가깝고 직관적이라서 좋았다.

 

책은 우선, 머신러닝 시스템 및 시스템 설계 과정을 개괄적으로 다룬다. 이후엔 데이터 처리, 모델 개발, 배포 및 서비스 구축, 모니터링, 연속 학습 등의 순으로 설계 과정을 차례로 다루면서, 다양한 팁과 문제 해결 방법들을 알려준다.

 

각 단계를 CHAPTER로 구분했기 때문에, 필요한 단계만 따로 확인할 수 있다는 점도 장점이다. 따라서 책 전체를 보며 머신러닝 설계 과정을 이해하고 싶은 사람과, 부족한 일부 단계만 확인하고 싶은 사람 모두에게 추천하고 싶은 책이다.

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

책을 다 읽고 난 지금 '참 친절한 책을 읽었다'라는 생각이 든다. 머신러닝 시스템에 대해 여태까지 달려온 저자의 노력을 알 수 있었으며, 그동안의 성과를 성심성의껏 전달하고자 하는 진심이 나에게도 전달된 것 같다.

 

 이 책은 ML 시스템 설계(모델, 알고리즘이 아니다)에 대한 거의 모든 내용을 다루고 있다. 만약 내가 지금 ML 프로덕트 개발에 고민이 있고 헤매고 있다면, 이 책은 나에게 지도이며, 나침반이 될 것이다.

머신러닝 개발자, 데이터 전문가, ML 아키텍트, DevOps 엔진니어등 모두가 꼭 읽었으면 하는 바람이다. 꼭 ML 시스템이 아니더라도 설계에 대한 인사이트를 늘려줄 것이라 확신한다.

 

서점에 많은 ML 관련 기술서를 읽으면서 항상 궁금증이 있었다.

학습과 추론은 알겠는데, '어떻게 제품화를 하지?', 분명 전통적인 소프트웨어(웹 기반 서비스)와는 차이가 있을 텐데 '제품화할 때 무엇을 고려해야 하지?', '잘못된 추론이 나오면 어떡하지?'처럼 말이다.

위와 같은 질문에 관한 거의 모든 것에 대한 해답이 이 책에 있다. 그것이 정답이 아니더라도 다음에 내가 무엇을 하면 되는지에 대한 답을 알려줄 것이다. 분명 초급자를 위한 책은 아니다, 하지만 반드시 거쳐야 하는 책임에는 분명하다.

 

분명 이론 위주의 책인데, 왜 난 실용서라고 느낄까? 이건 혼자만 그렇게 생각하는 것일까? ㅎㅎ

 

책의 구성은 크게 4개의 파트로 되어 있는데, 1장~2장은 기초 개념 소개하고,

3장~6장은 ML 프로덕트의 배포 전 단계에서 고려할 내용을 설명하며, 7장~9장은 배포와 배포 이후에 고려할 내용을 다룬다. 10장은 MLOps를 위한 도, 11장은 시스템이나 성능보다 중요한 AI 프로덕트의 윤리적인 측면, 책임 있는 AI에 대한 고찰이다.

 

각 장을 설명하면 아래와 같다.

Chapter 1은 머신러닝(ML, 알고리즘)이 아닌, 머신러닝 시스템에 대한 개요를 설명하며, 머신러닝 시스템과 전통적인 소프트웨어의 차이점을 자세히 알려준다.

Chapter 2는 머신러닝 시스템 설계에 필요한 독특한 특성을 주제 자세히 설명한다.

Chapter 3은 ML 시스템의 입력에 해당하는 데이터에 관하여 소스, 포맷, 모델, 툴, 배치 vs 스트림 처리 방식에 관한 장단점까지 설명하고,

Chapter 4는 훈련 데이터에 관한 샘플링, 레이블링, 불균형 문제, 증강 시 고려할 사항에 관해 다룬다.

Chapter 5는 피처에 대하여 설계 기법과 고려 사항에 관해 설명하고,

Chapter 6은 ML 모델 개발과 평가 방법에 관해서 설명한다.

Chapter 7은 ML 모델의 배포 시 고려할 업데이트 주기, 압축, 클라우드 서비스와 모바일 서비스에 관해 설명하고

Chapter 8은 배포 이후 데이터 모니터링의 필요성, 모니터링 도구에 관한 내용과 이상 감지 및 해결 방안,

Chapter 9는 배포 이후 추가 학습(연속, 배치, 온라인)과 학습 결과에 대한 테스트 방안을 설명한다.

Chapter 10은 최신 MLOps를 위한 인프라 및 도구 및 최신 동향에 대해서 알아본다.

마지막으로, Chapter 11은 머신러닝에서 인간과 함께 고려되어야 할 내용, 사용자 경험과 프로젝트 팀 구성, 책임 있는 AI를 다룬다.

 

각 장의 시작은 이전 장의 요약을 시작으로 이번 장에서 설명할 내용의 개략적인 설명과 기대효과, 주의할 점을 알려줍니다. 그리고 본론으로 들어가서 개념 설명은 표와 적절한 그림, 예시를 통해 설명하고자 하는 내용을 친절하게 안내해 주며, 추가로 필요한 사항은 각주를 통해 보충합니다. 특히 설명하고자 하는 내용은 성격에 따라 트레이드오프, 장단점 비교 설명, 구체적인 예시가 있어서 지루하지 않았으며, 마지막은 정리를 통해 본 장에서 설명한 내용을 다시 상기시키고, 다음 장에서 설명할 내용을 알려준다.

 

428페이지의 분량에 텍스트가 빼곡하지만, 말 그대로 알찬 내용으로 가득하다. 각주의 양을 보더라도 저자의 열정이 얼마나 대단한지 알 수 있으며, 요약에 요약했다는 것을 알 수 있다. 다만 각주를 볼 능력이 안 되는 저를 자책하면서 ㅠㅠ

 

전통적인 소프트웨어 아키텍트와 달리 머신러닝 시스템은 계속 연구 중이며, 주류의 알고리즘이 계속 변경된다. 말 그대로 정답이 없다. 알파고 등장 이후로 딥러닝이 대세였다면, 지금은 ChatGPT를 필두로 생성형 트랜스포머 알고리즘이 향후 2~3년을 주도할 것으로 예상한다. 하지만 연구실에서는 지금도 전통적인 ML 알고리즘을 사용하고 있다. 즉, 데이터에 맞게 알고리즘을 선택하는 것이다. 

 

결론은 원칙을 알고 있어야 응용을 할 수 있다는 말인데, 이 책은 데이터 구축, 배포, 버저닝, 모니터링, 테스트, 연속 학습이라는 ML 프로젝트의 원칙 기반으로 알고리즘에 맞게 시스템을 응용하는 다양한 방법들을 제시함과 동시에 방법들의 장단점, 트레이스오프, 최신 기술 동향까지 알려주는 현재까지 가장 완벽한 MLOps 지침서가 아닌지 조심스레 얘기하고 싶다.

 

개인적으로는 번역하시느라 고생이 꽤 많았을 것 같은데(글이 많아서), 어색한 부분은 조금도 없었으며, 재미있게 잘 읽었습니다.

 

디자인은 오라일리 전문서답게 군더더기 없는 디자인에 폰트와 강조 표시, Note 등, 개인적으로 가장 맘에 들었으며 심플하면서도 눈에도 잘 읽혔습니다.

 

마지막으로 ML 시스템이 시스템이나 서비스, 비즈니스 이전에 인간에게 이롭게 하기 위한 것임을 상기시키는 인용 문구로 마무리하고자 합니다.

 

 

ML 솔루션은 기술적인 것이지만 MS 시스템 설계는 기술 영역에 국한되지 않습니다. ML 시스템을 개발하고 사용하는 것은 인간이며, 시스템은 사회에 흔적을 남깁니다.

 

"한빛미디어<나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

한빛미디어의 '머신러닝 시스템 설계'는 머신러닝 모델의 개발과 서빙에 관한 다양한 이슈 포인트와 관리에 대한 내용을 다루는 책입니다. 이 책은 O'Reilly의 'Designing Machine Learning Systems'의 번역본으로, 모델의 개발, 평가, 배포에 대한 상세한 부분을 다룹니다.

 

이 책은 최근 Google의 Bard나 Microsoft의 Bing에 탑재된 다양한 GPT(Generative Pre-trained Transformer) 서비스들과 Few-shot 또는 Zero-shot Learning을 다루고 있지만, 여전히 기업에서는 모델의 개발과 활용에 대한 요구가 많고 빠르게 변화하고 있습니다. 따라서 모델의 개발은 여전히 중요한 과정입니다.

이 책은 독자들이 어떻게 문제를 해결할지에 대한 막막함을 해소하기 위해 실마리를 제공하며, MLOps(Machine Learning Operations)에 대한 이해를 돕습니다. 또한, 이 책은 실무적인 측면에 집중하고 있어 ML 개론을 알고자 하는 독자보다는 기본적인 ML 모델과 아키텍처, 통계에 대한 이해가 있는 독자들을 대상으로 합니다. 예측이나 이상 탐지와 같은 튜토리얼 정도를 한 번 해보신 독자들에게 큰 도움이 될 것입니다.

 

한빛미디어의 '머신러닝 시스템 설계'는 실무적인 경험을 공유하고, 머신러닝 모델의 개발과 운영에 대한 이해를 넓힐 수 있는 책입니다. 이 책은 ML 모델을 활용하는 독자들에게 중요한 지침과 실용적인 통찰력을 제공하여 머신러닝 시스템 설계에 대한 전문적인 이해를 돕습니다.

 

머신러닝 시스템 설계를 어떻게 해야할지 감이 잘 안 잡히는 사람에게 어느정도 청사진을 그려줄 수 있는 책!

1.jpg

​​

요즘 대기업에서는 A.I 및 IoT를 위해 머신러닝에 대해 개발을 추진하는 추세입니다. 머신러닝이란 기술은 인간의 뇌구조를 묘사한 뉴럴 네트웍에 기반한 기술이고 굉장히 다양한 일들을 하고 있는데 예전에는 단순히 로봇에 학습을 시켜서 사람을 따라하게 만들었지만 이제는 로봇뿐만 아니라 스피커, 청소기등등이 자신들이 가지고 있는 학습 데이터에 기반해서 판단을 내리고 행동하는 초연결시대로 나아가기 위한 기술이기 때문입니다. 그래서 구글, 삼성같은 IT관련 대기업들은 이미 머신러닝에 관련된 기술자들을 교육해서 키워내는 등 첫번째 선두로 등장하기 위해 엄청난 경쟁을 벌이고 있을 정도로 21세기의 핵심 기술중 하나입니다.

제가 이 책을 선택한 이유는 저자 분이 인공지능 관련 이론 지식에서 나아가 어떻게 하면 서비스를 효율적으로 배포할 수 있을지에 대해 심도있게 고민한 내용을 담고 있고 원시 데이터부터 인공지능 결과물을 사용하게 될 사용자 입장까지 고려하며, 데이터에서 찾은 가치를 사용자에게 효과적으로 전달하기 위한 머신러닝 시스템 설계 방법을 설명하고 있기 때문입니다.

이 책의 특성은 머신러닝 시스템을 만들 때 고려해야 하는 모든 요소를 저자 분이 스탠퍼드 강의에서부터 축적해온 연구 및 다양하게 경험한 내용으로 이해하기 쉽게 설명할 뿐 아니라 그동안 업계에 공유된 유용한 자료들을 언급해 독자가 더 넓은 시야를 가질 수 있도록 도와주고 산업계에 꼭 필요한 여러 기술들과 꿀팁들을 머신러닝의 End-to-End 개발 플로와 함께 이해하기 쉽게 모든 과정을 실무적인 관점에서 다루기 때문에 빠르게 실무에 적용할 수 있다는 점입니다.


구성

Chapter 1: 머신러닝 시스템 개요

Chapter 2: 머신러닝 시스템 설계 소개

Chapter 3: 데이터 엔지니어링 기초

Chapter 4: 훈련 데이터

Chapter 5: 피처 엔지니어링

Chapter 6: 모델 개발과 오프라인 평가

Chapter 7: 모델 배포와 예측 서비스

Chapter 8: 데이터 분포 시프트와 모니터링

Chapter 9: 연속 학습과 프로덕션 테스트

Chapter 10: MLOps를 위한 인프라와 도구

Chapter 11: 머신러닝의 인간적 측면


파트별로 나누어 봤을때 1~3장은 프로젝트 목표를 잘 선택하고 간결한 솔루션에 도달하기 위해 문제를 구성하는 방법에 대해 설명하고 있고, 4~6장은 학습 데이터를 생성하고 피처 엔지니어링을 수행하는 일부터 개발 환경에서 모델을 개발하고 평가하는 과정에 대해, 7~9장은 배포한 모델을 지속적으로 모니터링하면서 변화하는 환경과 비즈니스 요구 사항에 맞춰서 업데이트 하는 방법에 대해, 10~11장은 MLOps를 위한 개발환경 및 도구, 저자분의 협업했었던 사례와 실제로 있었던 사례에 대해 설명하고 있습니다.


개인적인 생각으로 학습은 머신러닝 프로그래밍을 처음 배우는 초보자, ML 엔지니어, 데이터 과학자, 데이터 엔지니어, ML 플랫폼 엔지니어, 엔지니어링 관리자 등 ML 관련 직무로 취업 및 이직을 희망하시는 분들께서는 우선 ML 모델, 신경망 아키텍쳐, 지표, 통계 같은 기초 개념과 기본 ML 기술, 일반적인 ML 작업 등 기술적인 요소에 대해 학습하신 다음에 1장부터 시작하시면 좋을 것 같고 어느정도 경험이 있으신 분들(2년차~ 또는 ML 플랫폼 및 ML 서비스를 구축 및 관리한 경험이 있음)부터는 2장까지는 쭉 훓으시면서 머신러닝 시스템에 대해 파악한다는 방식으로 보시고 3장부터 학습하시는 것이 좋을것 같습니다.


개인적으로 약간의 단점이 어쩌면 욕심일수도 있는게 좀더 많은 실습 예제 및 비즈니스 케이스가 담겨있으면 더 좋았지 않았을까라는 아쉬움이 있습니다.


저의 리뷰를 읽어주셔서 감사합니다. 다음에는 좀더 유용하고 좋은 책으로 더 나은 리뷰를 통해 여러분께 책을 소개시켜드릴 수 있도록 더 노력하겠습니다.


감사합니다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

기술과 실무의 완벽한 조화를 담은 필독서

한마디로 이 책은 기계 학습 시스템을 설계하고 구축하는 데 필요한 핵심 개념과 실무적인 지침을 제공한다.

이 책은 기계 학습 시스템 설계의 전반적인 흐름과 원칙을 소개하며, 기계 학습 파이프라인의 다양한 단계 및 데이터 수집과 전처리, 특성 공학, 모델 선택, 학습 및 평가, 배포 등의 주요 단계에서의 고려 사항을 다루고 있다. 이러한 개념적인 부분을 통해 독자들은 전체적인 프로세스를 이해하고, 효율적이고 안정적인 시스템을 구축하는 데 필요한 기술과 도구를 배울 수 있을 것이다.

그리고 이 책은 기계 학습 시스템을 구현하기 위한 다양한 기술과 아키텍처를 다룬다. 즉 실무에서 자주 사용되는 다양한 기계 학습 알고리즘, 분산 시스템, 스케일링 및 성능 향상을 위한 최적화 방법, 모델 해석 및 공정성 등 다양한 주제를 다루는데, 이러한 내용은 독자들이 자신의 문제에 가장 적합한 도구와 기술을 선택하고 적용할 수 있도록 돕는데 큰 도움이 될 것 같다.

이 책의 가장 큰 장점은 현실적인 시나리오와 실제 사례 연구를 통해 실무적인 통찰력을 제공한다. 즉 저자가 실제로 많은 프로젝트를 진행하면서 마주했던 과제와 해결책을 공유하고 있으며, 이를 통해 독자들은 현실적인 문제에 대한 이해를 높이고, 적용 가능한 전략을 배울 수있을 것이다.

또한 MLOps 관점에서도 기계 학습 시스템 설계와 운영에 대한 종합적인 가이드를 제공하며, 실무적인 내용을 설명하므로 MLOps를 고려한 기계 학습 시스템을 구축하고자 하는 독자에게 도움이 될 것이다.

“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”



이 책의 저자인 칩 후옌은 클레이폿 공동 창립자이자 CEO로서 실시간 머신러닝을 위한 인프라를 개발하고 있으며 엔비디아, 스노클 AI, 넥플릭스에 재직하며 머신러닝 시스템을 개발하고 배포하는 일을 도왔으며 학생들도 가르치고 있습니다.

 

 

현재 스탠퍼드에서 이 책의 토대가 된 CS 3295 머신러닝 시스템 설계를 강의하고 있습니다.

 

 

이 책의 대상 독자는 ML를 활용하여 문제를 해결하는분들을 위한 책입니다. ML은 딥러닝과 고전적인 알고리즘 모두를 의미합니다.

 

 

ML 개론서는 아니며 ML의 실무적인 측면에 중점을 두고 쓰여진 책이기때문에 개론서가 필요하신분들은 다른 입문서를 보시는 것을 추천드립니다.

 

 

 

대표이미지 삭제

대표이미지 삭제

대표이미지 삭제

사진 설명을 입력하세요.

 

 

CONTENTS

 

 

머신러닝 시스템 개요

 

머신러닝 시스템 설계 소개

 

데이터 엔지니어링 기초

 

훈련 데이터

 

피처 엔지니어링

 

모델 개발과 오프라인 평가

 

모델 배포와 예측 서비스

 

데이터 분포 시프트와 모니터링

 

연속 학습과 프로덕션 테스트

 

MLOps를 위한 인프라와 도구

 

머신 러닝의 인간적 측면

 

 

 

머신러닝 시스템 개요

 

출처 입력

 

2016년 11월 구글은 다국어 신경만 기계 번역 시스템 MNMT 를 구글 번역에 통합했다고 발표하였습니다.

 

 

이런한 딥러닝의 성공은 머신러닝 ML 에 대한 관심을 촉발했습니다.

 

 

ML은 불과 5년만에 우리 삶 대부분의 영역에 들어와 정보에 접근하는 방식부터 의사소통하는방식까지 대부분에 영향을 미치게 되었습니다.

 

 

머신러닝 시스템이라고 하면 로지스틱 회귀나 다양한 유형의 신경망 ML 알고리즘만 떠올리는데요

 

 

프로덕션 환경에서 알고리즘은 ML시스템의 일부분일 뿐입니다.

 

 

 

머신러닝을 사용해야 하는 이유?

 

 

다양한 업계에서 ML을 도입하는 사례가 지속적으로 늘고 있는데요 ML이 광범위한 문제를 해결할 수 있는 도구이지만 만능의 도구는 아니기때문에 ML이 반드시 필요한지에 대해서 스스로 질문해야 합니다.

 

 

그렇다면 ML은 어떤 문제를 해결할 수 있을까요?

 

 

ML은 기존 데이터로부터 복잡한 패턴을 학습하고 이런 패턴을 사용해 본 적 없는 데이터에 대해서 예측을 수행하는 접근 방법입니다.

 

 

학습 : 시스템에 학습 능력이 있습니다.

 

복잡한 패턴 : 학습할 패턴이 존재하며 복잡합니다.

 

기존 데이터 : 사용 가능한 데이터가 있거나 데이터 수집이 가능합니다.

 

예측 : 예측에 대한 문제입니다.

 

본적 없는 데이터 : 본적 없는 데이터가 훈련 데이터와 동일한 패턴을 갖습니다.

 

반복적입니다.

 

잘못된 예측으로 발생하는 비용이 낮습니다.

 

8.대규모로 수행됩니다.

 

 

 

머신러닝 시스템 이해하기

 

 

ML 시스템을 이애하면 시스템을 설계하고 개발하는데 도움이 됩니다.

 

 

연구용 머신러닝 VS 프로덕선용 머신러닝

 

 

연구용 ML 과 프로덕선용 ML은 요구사항이나 계산 우선순위 데이터, 공정성, 해석 가능성에 대해서 모두 다르게 판단해야 합니다.

 

 

ML 시스템은 다양한 요소로 구성된 복잡한 시스템입니다. 프로덕션에서 ML시스템을 작업하는 데이터 과학자와 ML언제니어는 ML알고리즘에만 집중하는 걸로는 절대 충분치 않다는 사실을 깨달을 걸입니다.

 

 

알고리즘 외에 시스템의 다른 측면, 예컨대 데이터 스택, 배포, 모니터링, 유지 관리, 인프라에 관해 아는 것이 중요합니다.

 

 

 

ML은 많은 문제를 훌룡히 해결하지만 모든 문제를 해결할 수 없으면 모든 문제 해결에도 적합하지도 않습니다.

 

 

다만 ML이 해결할 수 없는 문제일지라도 ML이 해결책의 실마리가 될 수 는 있습니다.

 

 

이 책을 읽은 제가 느낀점은 프로덕선 환경에서 머신러닝을 다룰 때 무수히 생겨나는 물음표를 해결해줄 MLOps지첨서라고 느껴졌습니다.

 

 

비즈니스 관점에서 ML 시스템을 설계하고 운영할 때 맞닥뜨리는 모든 문제를 이 책을 통해서 해결 할 수 도 있을 것 같습니다.

 

 

책에서 소개하는 다양한 접근법과 사례연구는 ML시스템을 성공으로 이끌기 위한 인사이트를 제공하기때문에 이 책을 통해서 성공적인 ML 비즈니스 모델을 만들 수 있습니다.

 

 

ML을 통한 비즈니스에 관심이 많은분들에게 이 책은 꼭 한번 읽어보면 좋을 것 같습니다.

 



 

이 리뷰는 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.서평을 작성하기 위해 책을 끝까지 정독하고, 제 주관적인 의견을 담아 작성하였습니다.

들어가며

요즘 AI는 정말 핫한 주제다. 불과 10년 전만 하더라도 학자들이나 연구하던 AI라는 분야였지만, 지금은 일반 개발자도 알아야 할 기본 소양이 되어 버렸다. 게다가 최근 시작된 ChatGPT 열풍은, 아예 일반 사무직 직원들이 AI를 얼마나 잘 활용하는지에 따라 소위 ‘일잘러’의 타이틀을 가지게 된다.

이처럼 세상 속에서 AI는 점점 일상적인 영역으로 내려오고 있다. 이러한 대세에 따라, 기업들은 AI를 도입하는데 적극적이다. 그러나 AI는 과연 만병통치약일까? 그건 아닐 것이다. 그렇다면 AI를 통해 어떤 문제를 해결할 수 있을까? 그리고 우리 회사의 문제를 해결하기 위한 적절한 AI 시스템은 어떻게 구축할 수 있을까? 이 책을 통해 알아보자.

이 책의 주요 내용

이 책은 AI 시스템을 무엇인지 그리고 어떻게 구축하고, 운영하는지에 대한 내용을 담고 있다.

  • 1~2장에서는 AI 시스템을 개략적으로 소개하고, 비즈니스에 어떻게 적용해야 하는지 설명한다. 어떤 경우에 AI를 도입해야 하고 말아야 하는지도 알려준다.
  • 3장은 데이터 엔지니어링에 대해 소개한다. 데이터는 어떤 포맷으로 다룰 수 있는지, 어떤 방식으로 저장하고, 가공할 수 있는지를 알려준다.
  • 4~9장은 데이터 수집과 학습, 품질 평가와 배포까지 프로세스 전반을 다룬다. 가장 기술적이며 실무적인 내용이 담겨있다.
    • 데이터를 수집하고 전처리 하는 과정
    • 좋은 피처(변수)들을 걸러내고 학습에 사용하는 방법
    • 만든 모델을 어떻게 평가하고 개선하는지
    • 모델을 어떤 방식과 주기로 배포할지
    • 모델에 장애가 발생한것을 어떻게 인지할지
  • 10장은 MLOps, 머신러닝을 개발하고 운영하는 팀을 구성하는 요소와 환경에 관해서 설명한다.
  • 11장은 AI와 인간이 영향을 받을 수 있는 영역들에 대해 알아본다. 기술적인 영역 뿐만 아니라 사회적인 영역에서 어떻게 영향을 미치는지도 알려준다.

이 책을 읽으면 좋을 사람

참고로 이 책은 기본적인 내용을 다루지 않는다. 실무적인 관점에서 깊이 있는 내용을 풀어낸다. 만약 AI에 대한 기본 지식이 없다면, AI 기본서를 한두 권 정도 정독한 다음 읽는 걸 권한다.

  • AI를 도입하려고 고려 중인 테크리더
    • AI를 처음 도입하려고 하는 팀, 혹은 본부의 테크 리더라면 읽어보면 좋아할 책이다.
    • AI 개발 프로세스와 그 과정에서 고려해야 할 것들을 미리 알 수 있을 것이다.
  • AI를 개발하는 팀으로 가려고 하는 개발자 / 혹은 그런 팀에서 일하고 있는 개발자
    • AI를 개발하는 팀으로 이직하려고 할 때 알아야 할 지식을 미리 공부할 수 있다.
    • 실무적인 내용이 많으므로 일하는 데 많은 도움이 될 수 있을 것이다.
  • AI 모델을 개발하는 데이터 사이언티스트
    • AI 모델에만 한정된 내용이 아닌, 하나의 AI 개발 프로세스에 관해 설명하므로 넓은 인사이트를 가질 수 있을 듯하다.
  • IT 기업의 CTO
    • 우리 회사의 제품에 어떻게 AI를 적용할 수 있을지, 또한 팀에 어떻게 AI를 녹여낼지 고민해 볼 수 있을 듯하다. 꼼꼼하게 읽어두면 필요한 순간 응용할 수 있을 만한 지식을 쌓을 수 있다.

나가며

AI 개발은 아주 많은 회사에서 관심을 두고 있지만, 실상 제대로 하는 곳은 몇 군데 없다. 이런 시대 속에서 AI 개발 과정을 제대로 알고 있지 않다면 무리한 도입으로 큰 손실을 볼 수 있다.우리 팀에 AI 기술을 적용하려면 어떤 역량을 가지고, 있어야 하는지, 또 어떤 프로세스로 개발해야 하는지 이 책을 읽고 한 번 고찰해 보는 건 어떨까?

 

머신러닝의 개요와 기초 데이터 엔지니어링 기술부터 다양한 유즈케이스와 필수 지식들을 전체적으로 잘 종합한 책입니다. 관심 있으신 분은 책장에 두시고 자주 읽어보시면 데이터 처리에 상당한 도움이 될 것으로 예상됩니다.

 

 

 

 

 머신러닝 시스템 설계는 머신러닝 분야에 대한 깊은 이해를 제공하며, 머신러닝 시스템을 구축하는 과정을 체계적으로 안내하는 훌륭한 책입니다. 저자는 자신의 경험과 전문지식을 바탕으로 이 책을 통해 독자들에게 폭넓은 시스템 설계 관점을 제시하고 있습니다.

 

 

 

 실제 저자는 클레이폿 AI의 공동 창립자이자 CEO로 풍부한 실전 경험과 스텐퍼드 대에서의 강의를 통한 지식으로 머신러닝의 전체적인 개념을 책 한 권에 담아내고 있습니다. 이 책은 머신러닝 시스템 설계의 주요 단계를 이해하기 쉽게 설명하고 있습니다. 데이터 수집과 전처리, 모델 선택과 훈련, 시스템 평가 및 배포에 이르는 과정을 상세하게 다루고 있습니다. 이를 통해 독자는 각 단계에서 고려해야 할 사항과 함께 실제 문제에 대한 해결책을 구축하는 방법을 배울 수 있습니다. 

 

 

 

 CSV, JSON과 같은 데이터 타입부터 이진 데이터 타입에 대한 설명까지 머신러닝의 이해에 필요한 세심한 설명들도 들어있어 전문적인 지식이 많지 않더라도 차근차근 읽으면 큰 도움이 될만한 내용들로 가득 차 있습니다. 

 

 

 

 다양한 산업 분야와 실제 사례를 다루며, 머신러닝 시스템 설계의 실용적인 측면을 강조하고 있는데 책의 예시와 유즈 케이스스터디를 통해 독자는 실제 문제에 대한 해결법을 이해하고, 자신의 프로젝트에 적용할 수 있는 아이디어를 얻을 수 있습니다. 사실상 머신러닝 시스템을 설계하는 거대한 프로젝트를 진행하는 일이 흔치는 않겠지만 기존의 관계형 시스템에 약간의 응용된 모듈을 추가하는 식의 접근은 충분히 가능해 보입니다. 

 

 

 

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

한빛미디어 <나는 리뷰어다>활동을 위해서 책을 제공받아 작성된 서평입니다.

장점

1. 데이터를 다루는 일(데이터사이언티스트, 머신러닝 개발자 등)을 하는 사람이라면 해당데이터의 문제 해결능력(데이터 수집, 데이터 랭글링, 모델 설계 등)을 키울 수 있음

2. 연구 분야에 쓰이는 또는 실시간에 쓰이는 머신러닝 분야에 따른적합한 데이터 학습 방법을 볼 수 있어 적합 ML파이프라인을 설계할 수 있음

3. 전체적인 데이터 처리 방법과 학습 방법 저자의 노하우를 간략하게볼 수 있을 뿐만 아니라 레퍼런스 논문들도 잘 참조가 되어 디테일 하게 찾아볼 수 있음

단점

1. 없음

후기

1. 데이터를 다루다 보면 데이터의 종류에 따라 처리 방법이 달라지고학습 방법이 달라져 많은 최적의 경우를 찾기 위해 흔히 말하는 노가다가 발생하게 된다. 해당 서적을읽으면서 다른 분야에서는 이러한 방식으로 최적화를 시키는지 엿볼 수 있으며 이렇게도 적용해 볼 수 있겠다와 같은 도전 정신도 생겨서 좋았던거 같다.

 

 

KakaoTalk_20230426_001040678.jpg

 

 

KakaoTalk_20230425_223730546.jpg

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

이 책은 머신러닝 알고리즘의 메커니즘이나 모델의 구성을 다루는 것이 아닌, 

모델을 둘러싼 시스템을 다룹니다.

 

과거 저도 현업에서 대다수의 시간을 이 시스템의 설계와 개발에 많은 시간을 투자했었습니다.

데이터가 입력되는 형태를 배치와 스트림 시나리오에 따라 나누어서 설계.

입력 데이터의 분포가 달라질 때를 가정한 (책에서는 Covariance Shift) 상황에서 어떻게 해야할지 등

 

이 책에서 다루고 있는 내용의 일부가 포함되어있는 걸 실제로 고민했던걸 보면

이 책이 얼마나 괜찮은 책일지 상상이 가실 겁니다.

무엇보다 제 업무에선 중요도가 떨어진다고 우선순위에 밀렸던 모델압축, 프로덕션 환경에서의 테스트에

대해서도 폭넓게 다루고 있으니 이 책을 본다면 ML시스템을 설계하고 개발하는데에 큰 힘이 되어줄 것 입니다.



머신러닝 시스템 설계!

책이 엄청 어려워보이지만 결국 웹개발에 머신러닝을 적용한다는 것이다. 구글 번역 사이트를 예로 들 수 있는데, 번역이라는 머신러닝 알고리즘을 웹사이트에서 구동할 수 있게 만들어주는 머신러닝 시스템의 대표적인 예라고 할 수 있을 것 같다. 추천시스템도!? 머신러닝은 그 의미에 따라 학습 능력이 있어야하고 복잡한 패턴이 있는 경우 사용하며 기존 데이터가 충분히 존재해야 하고 예측할 수 있어야한다.

설계의 파이프라인에 따라서 목차도 굉장히 상세하다. 실제로 한 기업이나 스타트업의 입장에서 머신러닝 시스템을 설계할 때 하나의 매뉴얼같다는 느낌도 들었다. 웹개발을 위한 개인 프로젝트에 참고하기에도 너무 좋은 책!!

  • 각 작은 장마다 '자세히 알아보려면 논문 ~을 참고하기 바랍니다'로 각주와 함께 심화학습을 위한 안내까지 잘 되어있다. 내용이 어려운 만큼 짧고 간략하게만 책에서 소개하고, 참고자료를 따로 배치하는게 좋았다!

  • 따라서 내용만 보면 크게 어렵지 않고, 예시 위주로 구성되어있어서 굉장히 이해가 쉽다.

  • 기본에 충실! 최첨단만 추종하지 않고 가장 단순한 모델부터 시작하기로 기본에 충실한 마치 정석같은 느낌이다.

  • 머신러닝 시스템 설계지만 기본적으로 머신러닝과 관련된 용어나 과정이 모두 포함되어 있어 머신러닝 자체를 공부하기 위한 책으로도 추천한다!

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.



이 책은 머신러닝이 연구와 제품 수준에서 어떤 차이가 있는지 잘 설명합니다. 특히 저자가 스탠포드 대학교에서 배우고 연구하고 강의한 경험과 엔비디아 등의 회사에서 근무한 경험을 토대로 적절한 MLOps의 방향을 제시하는 점이 인상깊습니다. 이 책의 대상독자는 중대규모의 머신러닝 시스템 설계와 관련된 업무를 하려고 하는자입니다. 책의 내용을 이해하기 위해서는 수학 및 통계지식과 컴퓨터공학지식이 필요합니다. 이 책은 컴퓨터 시스템을 구현해본 경험이 없는 경우 다소 생소한 내용일 수 있습니다. 하지만 쓸만한 제품 개발을 위해서는 꼭 수행해야하는 중대규모 머신러닝 시스템 구축 관련 지식이므로 저는 이 책을 필독서라고 생각합니다.

MLOps 책은 몇 권 읽었던 터라 제목만 봤을 때에는 비슷한 내용일까 했으나, 차례를 보니 독특할 정도로 많은 주제를 다룬다는 생각이 들었습니다. 다른 책이 부족하다는 게 아니라 이 책의 다루는 주제 범위가 상당히 넓습니다. 머신러닝 개요, 머신러닝에 앞서 작업해야 하는 데이터 엔지니어링, 운영을 감안한 모델 개발의 여러 요소, 모니터링과 개선에 AI 윤리까지 정말 머신러닝을 활용한 '서비스 전반'에 대해 다룹니다.


머신러닝 분야에서 시니어로 성장하거나, 인공지능과는 별 상관없이 일해왔더라도 아키텍트로서 성장하고프다면 이 책이 두고두고 도움이 될 겁니다. '두고두고'라는 어휘를 쓴 이유는 7~8년차 이상 경험을 쌓지 않았거나 데이터 파이프라인과 무관했던 경력이라면 낯선 이야기가 많기 때문입니다. 세부적인 기술과 도구는 바뀌더라도 이 책이 다루는 아젠다는 로드맵으로 삼을 만합니다. 이 책에서 다루는 아젠다를 섭렵하거나 최소한 실습해 본다면 저자만큼 이 분야에서 산전수전을 다 겪게 되는 셈입니다.


저는 지난 몇 년 간 빅데이터와 AI 분야에서 굴러온 경험을 반추하게 되면서, 단중기적으로 뭘 더 해야 하겠구나 계획을 세워 보게 되었습니다. 지금 이 시점에 이 책을 만나서 참 다행입니다.

 

 


해당 ​도서는 머신러닝의 모델을 생성하기 위한 데이터 수집, 정제, 모델 학습, 평가 등의 절차 뿐만이 아니라, 실제 서비스를 하기 위한 시스템을 설계하기 위한 배포과정까지의 모든 라이프사이클을 다루고 있다는 점이 다른 도서와의 큰 차별점인 것 같다.

 

 

 

 

 

도서를 읽는 내내 방향성을 잃지 않도록 현재 어느 지점에서 수행해야 하는 업무인지를 명시하고 있으며, 어려운 설명일 수록 도식화를 통해 이해하기 쉬운 그림으로 설명해 준다는 점이,

 

 

독자들이 쉽게 책을 따라갈 수 있도록 해주는 큰 장점이라 생각한다.

 

 

 

 

 

1. 책의 전체 내용을 아우르는 도식화

ML 시스템에 대한 설계 및 사용자에게 서비스를 제공하기 까지의 전 과정을 해당 도서에서 다루고 있으며, 각 챕터마다 어떤 단계의 내용을 범위로 정하고 있는지를 책의 앞부분에 제시해 준다. 해당 도식화 및 그림에 대한 설명을 계기로 전체 ML 시스템에 대한 그림을 그릴 수 있으며, 나아가 해당 도서에서 어느정도의 분량을 갖고 어디에 중점을 두어서 설명할 것인지를 가늠할 수 있는 부분이었다.

 

 

2. ML 시스템 개발과정의 도식화

 

전체를 아우르는 도식화 뿐만 아니라, ML 시스템의 개발 과정에 대한 절차를 도식화를 통해 독자의 쉬운 이해를 도와 주고 있다. 각 단계별 설명 및 어떻게 절차의 순환을 하는지 등에 대한 설명이 이후에 나와있다.

 

 

 

 


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

국내에 많이 없는 MLOps 치침서 중 하나.​

단순히 MLOps 관련 종사자 뿐만 아니라 개발 및 엔지니어 인력, 비즈니스 담당 인력 및 pm, ML 팀 리더 등등 다양한 분들이 옆에 두고 틈틈이 읽어도 좋을 책이 아닐까 싶다.

사실 본인의 업무만 잘하면 장땡이지 않느냐 하는 것도 있겠지만 나 같은 경우는 생각보다 남 일에 관심이 많고, 원만한 협업을 위해서 협업하는 사람들의 업무는 디테일하게는 아닐지라도 어느정도 이해는 필요하다고 생각한다.물론 이건 직급이 올라갈 수록 더욱 중요하겠지만, 주니어급에서부터 가능만 하다면 장점이 되지 않을까 싶기도 하다.

​MLOps는 문화다라는 말이 있듯이 혼자선 문화를 만드는게 불가능한 것 처럼, ML을 도입하고자 하는 기업이라면 조금만 다른 이해관계자들의 업무에 관심을 갖어주고 악순환이 아닌 선순환의 ML 시스템을 구축하는게 현재로써의 내 목표이다.​

이 블로그에서 책에 대한 리뷰는 그렇게 많이 담겨있지는 않다. 하지만 책을 읽다보면 도움되는 내용도 많았고, 입문하는 사람, 혹은 위에서 언급했던 이해관계자, 팀장 등등 다양한 직급의 사람들이 자신의 회사에 ML을 도입하고 싶다, 서비스를 해야한다라고 한다면 한번 쯤 읽어봤으면 하는 책이다.

 

자세한 내용은 블로그를 참고해주세요

https://blog.naver.com/ab415/223082921508

 

 

 

딥러닝 등을 통해 AI 모델을 만드는 것 자체는 요즘 어려운 일은 아닙니다.

그냥, python 의 경우, scikit-learn 모델을 import 한 뒤, 적당한 모델을 골라, fit 해버리면 학습이 되어버립니다.

pytorch나 tensorflow를 이용하는 경우도 마찬가지죠.

모델을 선언 한 뒤, compile 하고, fit 해버리면 됩니다.

하지만, 그 다음에는 무엇을 해야 할까요?

아니, 그리고 그 전에는 또 무엇을 해야 할까요?

우선, 학습하려고 하는 데이터를 어떻게 모아야 할까요?

사이킷런에서 준비한 데이터를 그냥 가져다 사용하는 것만 해 보면 (e.g. from sklearn.datasets import load_iris) , 그렇게 학습을 위해 준비되지 않은 원 데이터에서 학습을 위한 준비를 어떻게 해야 하는지를 알지 못합니다.

fit과 predict를 해 보고 난 이후에, 학습된 모델을 어떻게 사용해서 실제 서비스를 만들어야 하는지를 모르게 됩니다.

기존의 AI 관련 책들이,

1) 어떤 학습 방법을 선택할 것인가?

2) 선택한 학습 방법을 적용하기 위한, fit과 predict방법

3. 그 결과에 대한 evaluation을 confusion matrix로 만들어서 학습된 모델을 평가하는 방법

에 관해 집중했다면,

이 책은, 학습을 하기 위한 전처리 과정과 후처리 과정에 대해 이야기를 합니다.

소위 말하는 학습의 파이프라인을 만들어서 하나의 체계를 만드는 방법에 대한 것 말이죠.

그렇기에 이 책은 코드 자체를 이야기하는 것 보다는, "입력 - 처리 - 출력" 과정에서의 "입력"과 "출력"에 관해 이야기를 해 줍니다.

최종적인 결과물을 만들기에 꼭 필요한 내용은 아니지만, 학습된 인공지능 모델을 사용하는 서비스를 만들기 위해서는 꼭 필요한 내용에 대한 소개 및 안내서입니다.

학교에서 회사로 넘어가기 위한 필수 내용을 친절하게 설명해주는 책이기 때문에, 실무에 들어가기 전, "땅바닥에 헤딩해가면서 배우는 거지" 라는 생각을 하시는 것이 아니라면, 꼭 미리 한번 읽어볼 것을 추천합니다.

-----

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

-----

한 줄 요약 : 시스템 설계를 위해 수많은 선택지를 두고 고민하고 있다면 일독을 권하고 싶은 책

 


머신러닝에 대한 연구가 활발해지고, 적용 사례가 많아지면서 머신러닝 시스템 설계도 표준안과 같은 형태가 만들어지고 있다.
《머신러닝 시스템 설계》가 그런 내용을 담고 있는 책이다.

주로 담당한 웹 백엔드 서버 개발을 예로 들자면 어떤 언어를 사용하고, 코드를 작성할 때 규칙은 어떤 규칙을 적용할지, 개발된 코드는 어떤 프로세스에 따라 배포를 할 것인지, 웹 서버는 무엇을 사용할지 등 수많은 선택의 기로에 놓이게 된다.

시스템 설계가 중요한 이유는 여러 프로세스의 집합인 시스템이 없다면 해당 기술/시스템을 운용하는 담당자의 역량에 따라 결과물이 판이하게 달라질 정도로 결과물 품질의 편차가 커진다. 하지만 잘 설계된 프로세스는 항상 최상의 품질을 내지는 못할지언정 신뢰할만한 품질의 결과물을 만들어 낼 수 있게 해준다.

이번에 읽어본 《머신러닝 시스템 설계》가 이런 가이드라인이 되는 책이다.
책은 11개의 챕터로 구성되어 있으며 머신러닝 프로젝트 시스템에 대해 폭넓게 다루고 있다. 예제코드와 실습형태로 구성된 것이 아니라 시스템 설계시 고민할만한 내용을 질문으로 던지고, 그와 관련된 이론 및 지식을 설명해준다. 그리고 저자의 제안으로 처음에 이야기를 꺼낸 주제에 대해 요약정리하며 마무리하는 형식으로 구성되어 있다.

1. 머신러닝 시스템 개요
2. 머신러닝 시스템 설계 소개
3. 데이터 엔지니어링 기초
4. 훈련 데이터
5. 피처 엔지니어링
6. 모델 개발과 오프라인 평가
7. 모델 배포와 예측 서비스
8. 데이터 분포 시프트와 모니터링
9. 연속 학습과 프로덕션 테스트
10. MLOps를 위한 인프라와 도구
11. 머신러닝의 인간적 측면


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
리뷰를 위해 한빛미디어에서 책을 제공받았지만 주관적인 생각을 그대로 적었습니다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


 

머신러닝 시스템 설계

 

이번에 리뷰할 책은 "머신러닝 시스템 설계" 입니다.

한동안 일부분을 구성하는 기술에 대해서만 공부했다면,

전체를 구성하는 방법도 공부해야겠다고 생각이 들어서

시스템 설계 관련 도서를 선택하게 되었습니다.

(나무를 심을줄 알게되었으니.. 숲에 대해서도 할 필요가 있다고 생각해서..)

 

숲의 포지션을 갖는 책이니, 나무의 포지션에 대한 부분은 어느정도 알고 읽을 필요가 있습니다.

ex) ML, NN, Evaluation Method, Statistics...

 

완벽하게 나무의 포지션을 알고 읽은 것은 아니지만, 크게 어려움이 없었다는 점 참고해주시면 좋을 것 같습니다.

 

책의 특징으로는

 

1. 실무에 초점이 맞춰져 있다.

앞에서도 말씀드렸다시피 숲의 포지션을 갖는 책이라고 했습니다.

그러다 보니 연습이나 학습 보다는 실무에 대해 초점이 맞춰져 있습니다.

배포용 ML과 연구용 ML의 차이, 비즈니스 ML의 목적에 대한 내용 등이 이에 대한 내용으로 볼 수 있습니다.

 

2. 숲에 대해서만 얘기하지는 않는다.

제가 숲을 예시로 말씀을 드려서 오로지 전체 시스템에 대한 내용으로 구성이 되어있다고 오해하실 수 있다고 생각합니다.

책에 Class 불균형 처리, 좋은 Feature를 선정하는 법, 데이터 증강 등 

실무에서 나무를 어떻게 테크니컬하게 사용할 수 있는지 내용을 함께 다루고 있습니다.

 

3. 역시나 구성 자료가 최고다.

매번 책을 볼 때 중요하게 보는 것 중 하나인 예시, 자료 등의 퀄리티는 최고였습니다.

이 책의 깃허브에는 ML 기본 개념에 대한 복습, 참고자료, 코드 스니펫, Workflow 오류 해결에 사용되는 Tool 등 

다양한 자료가 함께 제공되었습니다.

대부분 자료는 업데이트가 안되는 편이 많은데 잘 되는 것 같고요.


총평

계속 특정 기술들에 대해 공부하다가 전체적인 부분에 대한 책을 읽으니 머리가 환기되는 기분이었습니다.

물론 책 하나에 모든 실무적인 내용을 담기는 어렵겠지만 최대한 많이 중요한 내용을 담으려한 것이 보입니다.

기술에 대한 부분이 어느정도 다져진 분이라면 이 책을 통해 실무적인 부분도 함께 공부하시면 좋을 것 같습니다.

이론적인 공부만 하기보다는 이렇게 실무적인 부분도 함께 하면 테크니컬한 개발, 연구 능력을 갖출 수 있지 않을까

싶습니다... ㅎㅎ

이 책은 첫 장부터 비즈니스에 대한 관점을 애기하면서 ML에 관해서 실무적인 관점에 대해 설명합니다.

 

그러면서도 넓게 실제 모델 배포 운영까지 사례와 경험 기반으로 다뤄서 유익했습니다.

 

머신러닝을 비지니적인 관점에서 어떻게 운영 배포 개발하는지 궁금하는 분께 추천합니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

GPT 인터넷에 존재하는 모든 지식을 습득해 궁금한 질문에 대한 의견을 생성하는데요. ML(머신러닝) 사용하는 데이터를 기반으로 학습 성능 향상을 지원하는 시스템을 구축하는 초점을 맞춥니다. ML 실제 적용 사례가 늘어나고 관련 산업이 익숙해집니다.

 

많은 기업에서 ML 모델을 활용한 비즈니스를 시도하기 시작하면서 모델을 빠르게 개발, 훈련, 배포, 운영할 자동화 프로세스를 고민하며 이에 머신러닝 운영의 줄임말인 MLOps 대두되었습니다.

 

이번에 소개할 머신러닝 시스템 설계 저서는 ML 시스템을 전체적인 관점으로 바라보고 접근합니다. 시스템의 다양한 구성 요소와 이해관계자들의 목표를 고려해 다양한 사례 연구를 바탕 내용을 설명하고 있습니다.

 

MLOps 분야의 대표 강의인 스탠퍼드 CS329S: 머신러닝 시스템 설계를 기반된 내용을 담고 있습니다. 저자인 후옌은 넷플릭스부터 스타트업까지 다양한 기업에서 ML 배포하고 운영한 경험들도 만날 있습니다. 답을 찾기 어려웠을 법한 질문에 대한 접근법과 특정 도구 사용법보단 ML기법의 개념 장단점과 트레이드오프에 집중합니다.

 

MLOps Ops Developments Operations 줄임말인 DevOPs에서 유래합니다. 무언가를 운영함은 그것을 프로덕션 환경에 적용함을 의미해 여기엔 배포, 모니터링, 유지관리가 포함됩니다. MLOps ML 프로덕션 환경에 적용하기 위한 도구와 모범 사례의 집합입니다.

 

ML이라고 하면 보통 모델 개발과 알고리즘을 떠올리지만 실제로 프로덕션 환경에서 ML 운영할 때는 외에 생각해야 하는 부분들이 많습니다. 프로덕션용 ML 대부분 비즈니스를 중심으로 하는 만큼 비즈니스 문제에 따른 요구사항과 이해관계자 또한 중요한 점을 자세하게 말합니다.

 

책에서 ML 딥러닝과 고전적인 알고리즘을 모두 의미하며, 중견 기업이나 빠르게 성장하는 스타트업에서 있는 대규모 ML 시스템에 중점을 둡니다. 소규모 ML 시스템은 상대적으로 복잡하기에 책에 제시하는 포괄적인 접근법에서 얻는 이점이 담겨 있습니다.

 

머신러닝 시스템 설계는 데이터 과학자가 ML 프로젝트 수명 주기의 단계를 진행하면서 맞닥뜨린 문제를 반영합니다. 1~2장에는 가장 기초적인 질문, 프로젝트 목표를 선택하고 간결한 솔루션에 도달하기 위해 문제를 구성하는 방법을 다룹니다.

 

4~6장은 ML 프로젝트의 배포 단계인 학습 데이터를 생성하고 피처 엔지니어링을 수행하는 일부터 개발 환경에서 모델을 개발하고 평가합니다. 부분에서는 ML 문제 도메인 모두에 대한 전문성이 필요합니다.

 

7~9장은 ML 프로젝트의 배포와 배포 단계로 모델 배포가 배포 프로세스의 끝은 아닙니다. 배포한 모델은 지속해 모니터링하면서 변화하는 환경과 비즈니스 요구 사항에 발맞춰 업데이트합니다.

 

ML 시스템 구축하려면 각기 다른 배경의 이해관계자들이 협업해야 합니다. 3장은 데이터 시스템에 10장은 컴퓨팅 인프라와 ML 플랫폼에 원활한 협업에 필요한 인프라에 중점을 둡니다.

 

11장은 ML 모델의 확률론적 특성에 따라 사용자 경험이 어떻게 영향받는지 논의합니다. 시스템을 개발하는 구성원들이 효과적으로 협업하기 위한 조직 구조를 알아보고, ML 시스템이 사회 전체에 미치는 영향을 들여다봅니다.

 

머신러닝 시스템 설계는 MLOps 시스템으로 접근하며, 시스템의 요소와 이해관계자가 협업함으로써 정해진 목표와 요구사항을 충족하도록 ML 시스템을 총체적으로 고려합니다.

 

책은 특정 개념과 솔루션을 설명하면서 현재 사용되는 도구를 언급하지만, 튜토리얼은 아닙니다. 기술을 점점 진화하며, 도구는 새로운 것이 나오면 유행에 뒤처지지만, 문제에 대한 근본적인 접근법은 더욱 길게 지속되는데요. 유스케이스에 어떤 도구가 가장 적합한지 판단하는 도움이 되는 정보를 제공합니다. 코드 스니펫이 거의 없으며 트레이드오프, 장단점, 구체적인 예시를 논의하는 중점을 둡니다.

 

이제는 오프소스 생태계의 활성화,  ML 프레임워크의 급격한 발전 그리고 수많은 개발 도구의 등장으로 ML 진입 장벽이 많이 낮아졌는데요. 머신러닝 시스템 설계는 MLops에서 가장 중요한 요소를 다루는 실용 책이라고 정도로 ML 시스템을 만들 고려해야 하는 모든 요소를 다룹니다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

칩후옌의 유명 강의 원서가 번역되어 나온다는 소식을 들었을 때부터 엄청 기대했던 책이 번역이 되었다. 얼마전 칩후옌의 Building LLM applications for production 블로그 포스트도 인상적으로 봤었는데 앞으로 저자의 다른 글도 책으로 나오길 기다려질 만큼 저자분의 노하우가 엄청나다.

그간 주로 봐왔던 머신러닝 책이 보통 알고리즘에 대한 수식과 라이브러리를 활용한 핸즈온 튜토리얼이었다면 이 책은 좀 다른 접근의 책이다.

일단 코드 없이 머신러닝 모델을 설계하고 배포하는 것까지 전단계에서 고려해야 하는 사항에 대해 꼼꼼하게 정리되어있다. 그래서 이 책을 읽으면 매우 꼼꼼한 실력있는 사수가 하나하나 짚어주는 느낌의 책이기도 하다.

머신러닝, 딥러닝 아키텍처가 어떻게 나뉘며 이 때 고려해야하는 측정지표나 알아두어야할 통계 개념들에 대해 정리하고 있다.

또 ML 모델은 누구 한 명의 작업으로 이루어지기 보다는 여러 사람의 협업을 통해 이루어지는 오케스트라와 같은데 이 때 각 직군 별로 고려하는 사랑을 정리해 두었는데 관리자의 의견이 매우 인상적이었다.

머신러닝을 책, 영상, 코드, 경진대회 다양한 경로로 배우게 되는데 현업에서 직접 업무를 하지 않는 이상 경진대회 등을 주로 활용하게 된다. 경진대회를 통해 모델을 개선하다보면 우승을 위한 알고리즘이나 방법을 찾아 쓰게 되는데 이런 방법이 실제 현업과는 동떨어진 방법일 때가 종종 있다. 그래서 리더보드에 대한 비판 등에 대해 언급한 점도 인상적이다.

특정 작업 태스크에 따라 어떤 방법으로 태스크를 진행해야 하는지 현업에서 통하는 방법에 대한 팁을 최대한 녹여낸점이 좋았다.

ML엔지니어가 되기 위해 공부할 때로 돌아간다면 우선적으로 공부할 것들이 인상적이었고 실제로 공감되었다. 깃을 통한 버전관리, SQL, NoSQL, 파이썬/다스크, 데이터 구조, 확률 및 통계, ML 알고리즘, 병렬 컴퓨팅, REST API, 쿠버네티스+에어플로, 단위/통합 테스트까지 현업에서 필요한 것들을 잘 나열해 주었다.

처음 이 분야를 배우는 사람이라면 이 많은 키워드에 언제 저 키워드를 다 배우나 싶을 수도 있다. 만든 모델의 성능 뿐만 아니라 현실세계에서 해당 모델이 동작하고 동작하는 모델을 통해 더 나은 세상을 만들 수 있는 좋은 팁이 담겨있다. ML엔지니어를 희망하는 사람들 뿐만 아니라 현업자에게도 전반적인 팁을 정리할 수 있는 주변에 강추하고 싶은 정말 좋은 책이다.

이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다

“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”

 

팀원들과 스터디할 때 보고, 지금은 1회독 더 준비하면서 프로젝트 해볼 것을 찾아보고 있습니다.

 

ML 풀스택이 무엇인지에 대해 가늠해 볼 수 있게 영감을 주는 책이고, 개인적으로 MLOps 엔지니어로 근무한다는 것은 ML 업무 전반에 투입되는 모든 요소를 어느 정도는 다 이해하고 있어야한다는 생각이 듭니다.

 

팀원들과 스터디 만족도도 높아서, 업무 볼 때도 꾸준히 옆구리에 끼고 보게 되지 않을까 싶습니다.

최근 들어 MLOps 시장은 급성장하고 있습니다. 마켓앤마켓에 의하면 2027년까지 MLOps 시장이 연간 41%의 성장률을 달성할 것이라고 예측하였습니다. 

특히 로코드, 노코드 시장이 늘어나고 대규모 AI 모델이 나오면서 모델 개발에서 머신러닝 및 딥러닝 모델을 서비스에 효과적으로 적용시키는 것에 많은 기업의 관심이 쏠리면서 MLOps에 대한 관심은 점차 늘어나고 있는 것 같습니다. 


그런데 보통 머신러닝을 공부한다고하면, 모델의 알고리즘을 배우거나 모델의 성능을 높이는데 초점을 맞추기 십상입니다. 캐글, 데이콘과 같은 대회의 목표 역시 모델의 성능을 높이는 것이죠. '머신러닝 시스템 설계'에서는 이 점을 언급하면서 MLOps를 설명합니다.  

 

MLOps(Machine Learning Operations)는 개발과 운영을 통합하는 머신러닝 엔지니어링 방식을 의미하는 것으로, 머신러닝 및 딥러닝 모델의 개발, 배포, 모니터링, 유지 관리 등을 포함한 젠체적인 모델 운영 라이프 사이클입니다. 


'머신러닝 시스템 설계' 에서는 단순히 ML 엔지니어(개발자, 데이터 과학자 등을 모두 포함한 개념) 입장에서의 모델 운영 라이프 사이클뿐 아니라 비즈니스 관점을 포함한 MLOps를 설명하고 있습니다. 아래의 그림과 같이 ML 사용자, 비즈니스 요구사항, 그리고 ML 시스템 개발자의 입장을 모두 포함한 것이 ML 시스템이라고 할 수 있습니다.

 

'머신러닝 시스템 설계'에서도 언급하듯 모델의 성능만을 높이는 연구용 머신러닝과 프로덕션용 머신러닝은 큰 차이가 있습니다. 연구용 머신러닝은 모델의 성능을 높이기 위해 모델을 너무 복잡하게 만들거나 모델의 공정성이나 해석 가능성을 무시하기도 합니다.


그러나 프로덕션용 머신러닝은 많은 것을 고려해야 합니다. 다양한 이해관계자들의 상이한 요구 사항을 최대한 고려해야 하고, 모델의 배포와 유지 관리를 생각해야 하며, 공정성과 모델의 해석 가능성도 잊어서는 안됩니다. 


'머신러닝 시스템 설계'는 실제 기업에서 일하거나 취업하기를 원하는 머신러닝 엔지니어를 위한 책이며, 머신러닝을 서비스에 도입하면서 경험할 수 있는 다양한 시나리오를 통해 MLOps의 처음부터 끝까지 상세히 설명하고 있습니다. 


'머신러닝 시스템 설계'는 머신러닝 개론서가 아니기 때문에 이 책의 예상 독자는 머신러닝 모델, 신경망 아키텍처, 하이퍼파라미터 조정 등을 포함한 머신러닝 기술, 성능 평가, 통계 개념 등을 이미 알고 있는 사람입니다. 물론 책에서 간단히 설명하는 개념도 있지만 머신러닝을 처음 접하는 사람들에게는 이해하기 어려운 책일 수도 있습니다. 

 

하지만 다양한 예시, 실험, 그림을 통해 친절히 알려주기 때문에 머신러닝의 기본 개념을 아는 사람은 누구나 쉽게 이해할 수 있습니다. 

 

이 책은 MLOps의 단계를 실제 기업에서 일하는 머신러닝 엔지니어가 마주칠 수 있는 다양한 상황과 업무를 다양한 시나리오와 예를 통해 다루고 있습니다. 그래서 책을 읽는 독자도 기업에서 일어날 수 있는 상황을 시뮬레이션하고 해결 방법을 찾을 수 있도록 합니다. 


그래서인지 이전에 들었던 다른 MLOps 강의와는 달리 MLOps에 대한 기본 개념이 부족한 저도 MLOps를 쉽게 이해할 수 있었습니다. 인공지능을 배우고 처음으로 MLOps 강의를 들었을 때는 데이터 엔지니어링이나 모델 배포 등에 대한 기본 지식이 없다보니 무슨 이야기를 하는지 알 수 없었지만 '머신러닝 시스템 설계'는 기본 개념부터 하나씩 상세히 설명해 주기 때문에 머신러닝과 딥러닝 모델 알고리즘만 배운 사람들도 MLOps에 쉽게 접근할 수 있을 것 같습니다.

 

뿐만 아니라 MLOps의 기술적인 부분 외에도 비즈니스 관점에서의 머신러닝 모델 적용과 실제 프로덕트를 배포하면서 겪을 수 있는 일들도 다루기 때문에 MLOps 개발자, 머신러닝 엔지니어 외에도 머신러닝/딥러닝을 이용한 서비스를 만들고 싶어하는 창업자, PM, 서비스 기획자 등 다양한 분야의 사람들에게도 도움이 될 것 같습니다. 


다만 이 책은 MLOps를 실제로 어떻게 수행하는지를 알려주는 튜토리얼이 아니기 때문에 MLOps의 세부 기술의 배우고 싶은 분에게는 맞지 않습니다. 하지만 MLOps의 세부 기술을 배우고 싶은 사람도 이 책을 먼저 읽는다면 MLOps의 큰 그림을 미리 파악할 수 있기 때문에 큰 도움이 될 것입니다.  

오늘 리뷰하는 책은 [머신러닝 시스템 설계] 입니다.

머신러닝은 제가 개인적으로 관심 많은 분야이고, 예전에 추천 시스템 개발 경험도 있습니다.

그리고 베타 리더를 보니 제가 커뮤니티 활동을 통해 아는 분도 있군요 ㅎㅎ

https://www.hanbit.co.kr/store/books/look.php?p_code=B1811121220

위 표지에도 보이지만 이 책은 스탠퍼드 강의 기반이라고 하네요.

그래서 책 전체를 보면 MLOps의 모든 분야에 대해서 설명을 하고 있습니다.

사실 저는 이 책이 강의 기반이라는걸 나중에 알았는데,

책을 보면서 "이 책은 주로 아카데믹한 내용을 다루는구나, 강의할때 사용하면 적당하겠네..." 라는 생각을

하고 있었는데 저렇게 표지에 저렇게 떡 하니 표시 되어 있드라구요.

혹시 강의에 관심 있는 분들은 아래 링크를!

https://stanford-cs329s.github.io/syllabus.html?fbclid=IwAR2yudH-cNXfB2N1m7edbecWF3ScV5AKwzzLSYQEc_yIXITWdqjephcqD84https://www.youtube.com/channel/UCzz6ructab1U44QPI3HpZEQ

이 책은 430여 페이지의 분량에 머신러닝에 대한 모든 것을 담아내려고 노력했습니다.

목차를 봐도, 책 곳곳에 내용들을 봐도 다양한 내용들을 다루고, 기본적인 개념 설명들도 잘 되어 있습니다.

아래 왼쪽 그림에서도 ROC의 선의 형태에 따른 의미를 잘 설명하고 있습니다.

 

ROC설명 IMG_20230423_181348.jpg

 

 

 

초보자들은 이런 내용을 그냥 알기란 쉽지 않습니다. 그래서 이 책은 초급 대상이 아닙니다.

책 소개에도 중급용이라고 나와 있고, 머신러닝에 대한 어느 정도 기본 지식이 있어야 이 책을 보는데 수월합니다.

이 책에서 특히 관심 있었던 챕터는 5장 피쳐 인지니어링과 10장 MLOps를 위한 인프라와 도구 였습니다.

그러나 책의 분량상 어쩔 수 없었는지 5장에서는 이미 대부분 알고 있는 내용들만 있었고, 10장에서는

제가 예상했던 유명한 도구들에 대한 소개는 아쉽게도 언급이 없었네요.

그리고 또 하나, 이 책에서 볼 수 없었던 것은 뭔가 실행하고 결과를 볼수 있는 소스 코드가 없습니다.

특정 소스 코드의 일부분을 소개하고는 있지만, MLOps 관련하여 실행 가능한 소스가 없는 점은 좀 아쉽네요.

이 책은 몇가지 아쉬운 점이 있지만, ML 관련한 모든 부분을 다루고 설명하는 충분히 좋은 책입니다.

저처럼 기본적인 머신러닝 지식을 좀 더 업그레이드 하려는 분들에게 꼭 추천하고픈 책입니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

서론

몇 년 전부터 전세계적으로 MLOps는 AI 개발에서 큰 화제가 되고 있다. 스탠퍼드 대학의 ‘앤드류 응(Andrew Ng)’ 교수는 MLOps에 대해서 다음과 같이 말했다.

 

IMG_7819.jpg

 

"머신 러닝 시스템 디자인"은 효과적이고 견고한 머신 러닝 시스템을 구축하는 데 관심이 있는 사람들을 위한 종합적인 책입니다. 

 

이 책은 머신 러닝 실무자, 엔지니어, 데이터 과학자들이 디자인 프로세스에 대한 이해를 깊게 하는 데 특히 유용합니다.

 

책은 머신 러닝의 기본 개념 소개로 시작하여, 해결할 수 있는 문제 유형, 데이터 전처리 및 피쳐 엔지니어링을 포함합니다. 그 다음, 모델 선택, 평가 지표, 최적화 기법 등 머신 러닝 시스템 디자인의 다양한 측면에 대해 다룹니다.

 

이 책의 강점 중 하나는 머신 러닝의 실용적인 측면에 초점을 맞춘 것입니다. 책에서는 비즈니스 문제와 데이터를 이해하고 머신 러닝 모델을 선택하고 배포하기 전에 중요성을 강조합니다. 이 실용적인 접근 방식은 독자들이 정보에 기반한 결정을 내릴 수 있도록 도와주며, 설계된 시스템이 원하는 결과를 낼 수 있도록 도움을 줍니다.

 

또 다른 주목할 만한 측면은 머신 러닝 시스템 배포, 모니터링 및 유지 관리에 대한 내용입니다. 칩 후엔은 모델 배포 중 마주칠 수 있는 다양한 문제를 해결하는 방법을 제공합니다. 

 

결론적으로, 칩 후엔의 "머신 러닝 시스템 디자인"은 성공적인 머신 러닝 시스템을 구축하는 데 필요한 복잡한 부분들을 이해하고자 하는 모든 이들에게 훌륭한 책입니다. 이 책은 실용적인 접근법, 명확한 설명을 제공하여 머신 러닝 분야의 초보자와 경험이 풍부한 실무자 모두에게 귀중한 안내서가 될것입니다.

 

**"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."**

· 책의 난이도 있습니다. 단순히 Ops 입장의 책은 아니고 MLOps를 잘하기 위한 책이라는 생각이 들었습니다.

  머신러닝 알고리즘 개발자 분들도 이책을 보면, 많은 도움을 받으실수 있다고 생각이 들었습니다.

  알고리즘 개발시 필요한 요소들이 크게 시스템적으로 접근했을때 어떻게 접근하는지는 비슷한 부분이 많았습니다.

· 저자분의 다양한 경험 및 이론을 잘 뒷받침 하는 자료 및 근거가 제시되어 있어서 참고할 내용이 많이 있습니다.

· MLOps를 구축하기 위해서, 기준이 되는 바이블 같은 책입니다.

· 언급되는 항목이 꼭 MLOps가 아니여도 곳곳에 전체적인 시스템적으로 도움을 받을만한 내용이 있습니다.

· 책의 서문에 나온 대상독자 글에서도 명확히 이책의 장점이 나타납니다. 아래와 같은 시나리오는 한번쯤은 고민해봤을 부분이라고

생각이 되고, 지면을 통해서 순차적으로 설명되어 집니다.

 

 

 

 

■ 언제 머신러닝을 도입해야 할까? 우리 프로젝트에 머신러닝이 더 적합한 것인가?

· 약간 근본적인 질문입니다. 머신러닝 시스템을 구성하기 전에 한번더 머신러닝에 대해서 정의하고, 일반 솔류션과의 차이점을 환경적인 부분에서 재 정의 해보면 좋을것 같습니다.

· 책에서는 총 9가지 항목으로 정의합니다.

  1. 학습 : 시스템에 학습 능력이 있습니다. (RDBMS는 ML시스템이 아님)
  2. 복잡한 패턴 : 학습할 패턴이 존재하며 복잡합니다.
  3. 기존 데이터 : 사용가능한 데이터가 있거나, 데이터 수집이 가능합니다.
  4. 예측 : 예측에 대한 문제입니다.
  5. 본적 없는 데이터 : 본적없는 데이터가 훈련 데이터와 동일한 패턴을 갖습니다.
  6. 반복적입니다.
  7. 잘못된 예측으로 발생하는 비용이 낮습니다.
  8. 대규모로 수행됩니다.
  9. 패턴이 지속적으로 변합니다.

위의 사항을 보면, DBMS에 저장된 기존 아키텍처를 사용해서 정보를 제공하는것 말고, 예측, 패턴을 제공하는 서비스에는 머신러닝이 검토하는 과정이 필요해 보입니다.

 

 

■ 머신러닝 시스템 vs 전통적인 소프트웨어

분명 다르다고 알고 있고, 차이점이 있다는 것을 알고 있는데 정확히 표현을 못할수 있습니다.

· 가장큰 차이는 데이터 관점입니다.

· 기존 소프트웨어 SWE는 코드와 데이터가 분리돼 있다고 가정하에 설계되어있고, 가능한 코드와 데이터를 모듈화 하는것에 우선하는 경향이 있는데, ML 시스템은 코드, 데이터, 그리고 이것으로 생성된 아티팩트로 구성되어 있습니다.

· ML알고리즘은 데이터를 개선하는데 매우 큰 비중을 둡니다. 이렇게 다양한 데이터 샘플을 유연하게 처리 할수 있는 구조가 되어야 합니다.



■ 머신러닝 시스템의 핵심 : 반복 프로세스

· 보통 반복인 batch성 작업으로 처리됩니다. 하지만, ML에서는 조금 더 다르게 반복 프로세스가 더욱 중요한 부분을 차지합니다. 

그 이유는 워낙 많은 다양한 모델을 학습해야 하고, 그 중심에는 지속적으로 변경되는 데이타가 있습니다.

 

· 책에서 나온 광고 사례입니다.
· 책에서 언급된 처리는 사람이 할수 없는 시스템화 되어 이어야 하는 부분입니다.

 

 

 

 

 

 

■ 데이터의 중요성

· 우리는 DB에 많은 데이터가 저장되어 있다고 하지만, 데이터의 종류는 정형화된 데이타 말고, 더 많은 비정형화된 데이타가 있습니다.

데이터의 형태는 매우 다양하고, MLOps에서도 이러한 부분이 고려되어야 하고 

이러한 관점은 알고리즘 개발자입장에서도 매우 관심이 많습니다. 연구를 하려는 데이터가 다양한 포맷으로 제공되고

보통 상업적인 데이터를 제외하고는 그 형태가 매우 다양하기 때문입니다.

사용자의 로그를 기준으로 보아도, 년월일의 포맷이 다 다르고 그 data의 생성되는 위치도 모두 일치하지 않습니다.

이러한 Pre-Handling 하는 입장에서 어떻게 그 사항을 다루어야 하는지 설명합니다.

· Json, CSV, 넘파이, 판다스를 통한 설명이 있고, 데이터를 행과 열의 입장에서 제공하는 예시도 좋았습니다.

· 우리가 많이 사용하는 관계형 데이타베이스, RDBMS를 통한 데이터 접근법도 참고하면 됩니다.

· NoSql은 Json,xml, bson등의 형태로 인코딩됩니다. 그래프 모델 등이 있습니다.

· 정형데이타, 비정형데이타가 있습니다.


■ 훈련데이터

훈련데이터는 머신러닝을 하기위해서 반드시 있어야 하는 매우 중요한 요소입니다.

이러한 훈련데이터의 속성을 아는것이 매우 중요합니다. 학습에 필요한 데이터는 모두 동일하지 않고

어떻게 분류하고, 구분지어서 관리하느냐, 어느 관점으로 Data-Set의 기준선을 정하는지 등에 따라서 많은 차이가 발생합니다.

· 다양한 샘플링 기법으로 비확율샘플링, 단순 무작위 샘플링, 계층적 샘플링, 가중 샘플링, 저수지 샘플링, 중요도 샘플링이 있습니다.

· 레이블링의 기법으로는 수작업 레이블, 자연 레이블등이 있습니다.

· 클래스의 불균현 문제를 해결하고, 올바른 지표를 추출해서 리샘플링 할수 있게 합니다.

 

■ 모델에 대한 평가

작성된 모델이 정상적인가, 잘 동작하는지 평가하고 확인하는 과정이 필요합니다.

· 모델 개발과 훈련은 머신러닝 모델이 많은데 어떠한 알고리즘을 사용해야 할지 정하는데 도움이 됩니다.

  1. 최첨단만 추정하는 함정에 빠지지 않기
  2. 가장 단순한 모델부터 시작하기
  3. 모델을 선택할때 사람의 편향을 주의하기
  4. 현재 성과와 미래 성과를 비교 평가하기
  5. 트레이드오프를 평가하기
  6. 모델의 가정을 이해하기

· 양상블을 이용해서 처음 적용하는 입장에서 모델을 예측해보면 좋습니다. 배깅, 부스팅, 스태킹 기법을 이용합니다.

· 평가를 하기 위해서 ML도 베이스라인을 정하고, 교란테스트, 불변성 테스트, 방향예상테스트, 모델보정, 신뢰도 측정, 슬라이스 기반평가 등을 수행합니다.

 

 

■ 배포하기, 장애는 어떠한 것이 있을까?

보통 이책의 가장 관심이 있는 부분이 7장 (모델배포와 예측서비스) 부분이라고 생각이 듭니다.

· 아래 통상적으로 알고 있는 질문은 ML배포관련된 현업의 충분한 의문해소를 제공합니다.

<아래 사항은 이렇다는 것이 아니고, 많이 통념으로 인지하는 그러한 제목글입니다.>

  1. 한번에 한두가지 머신러닝 모델만 배포합니다.
  2. 아무것도 하지 않으면 모델 성능은 변하지 않습니다.
  3. 모델을 자주 업데이트할 필요가 없습니다.
  4. 대부분 머신러닝 엔지니어는 스케일에 신경 쓰지 않아도 됩니다.

· 시스템이 배치처리를 해야 할지, 온리인 처리를 해야 할지, 파이프라인에 대한 구성

· 많은 모델에 대해서 어떻게 효율적으로 서비스를 할지, 압축에 대한 부분에 대한 해법

  이러한 모델도 지속적으로 업데이트 해야 하는 부분도 기존 시스템과 다른 부분입니다.

· 장애관련해서는 프로덕션 환경 데이타가 훈련데이터와 다른경우가 있습니다.

· ML 인프라를 위한 레이어는 아래와 같이 제시합니다.

일반적인 시스템과 같이 사용하는것도 있지만, ML을 위한 별도의 레이어가 제공됩니다.

 

 

20230423_000104.jpg

 

머신러닝(ML)이 다가온다

ML은 불과 얼마전까지만해도 특정 누군가들의 아주 특별한 기술분야로 생각되었었는데, 불과 몇년만에 많은 부분들에서 생각하는것보다 너무도 빠르게 세상을 변화시켜 가고 있는 중이다. 나만 해도 이전과는 일하는 방식에 있어서도 틈틈히 ChatGPT를 활용하여 업무에 적용하고 있는게 일상화 되었다. 이제는 예전처럼 일하라고 하면 절대 못 할거라 생각한다. 머신러닝이라고 하면 알고리즘만 떠올리기 쉬운데, '머신러닝 시스템' 책을 읽다보니 이건 ML 시스템의 작은 한 부분인 것을 알게 되었어다.

 

머신러닝 시스템

머신러닝이 ML시스템으로 구성될 때에는 배포, 모니터링, 로직 업데이트, ML 알고리즘, 평가, 데이터, 인프라, 피처 엔지니어링의 구성요소들 나뉠 수 있다. 현재 많은 책들에서 ML 알고리즘을 잘 다루고 있지만 ML시스템 전반에 대해 다루는 책은 많이 없었던 것 같다. 이 책은 알고리즘에 대한 것 보다 적합한 솔루션을 개발하도록 프레임워크를 설명하고 있다.

 

데이터 엔지니어링

머신러닝 이전에도 대규모 데이터링을 다루기는 했었다. 물론 아주 제한되고 느려터진 속도로 결과물을 제공해도 전혀 문제가 될 것이 없었는데, ML이 대두되면서 이전 방식은 비교 도마에 오른것 같이 느껴진다. 젊은 친구들에 밀린 나이든 부장님의 예전 드라마 장면 같다고나 할까? 걔다가 대규모 데이터 시스템은 정말 많은 과제와 문제들로 인해 매일 매일이 미션에 대한 솔루션 찾기이다. 이 책에서 데이터 엔지니어링의 기본인 관계형 모델, 트랜잭션 등에 대해 설명해놓고 있어서 기존에 알고 있던것들을 다시 리마인드하고 어떻게 ML에서 처리되는지 엿볼 수 있었다.

 

여전히 나에게는 넘어야 할 산

영어를 공부할 때도 그랬지만 어느정도 지식이 쌓이고 그 다음에 레벨업이 되는식이어서 중간에 참 더디고 힘든부분들이 있었다. 프로덕션 환경에서 ML을 적용하는 것도 많은 엔지니어링 시간이 투자되고 경험이 쌓여야 하리라 본다. 지금 이렇게 쌓아가는 지식들이 언제가 훗날 좋은 밑거름이 되리라 본다.

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 

도서 정보

  • 도서명 : 머신러닝 시스템 설계
  • 저자 : 칩 후옌 / 김대근, 김영민 옮김

 

[ ML 알고리즘만 다루지 않고 시스템의 모든 구성요소를 전체적으로 고려해야한다 ]

ML 시스템은 다양한 요소로 구성된 복잡한 시스템입니다. 프로덕션에서 ML 시스템을 작업하는 데이터 과학자와 ML엔지니어는 ML 알고리즘에만 집중하는 걸로는 절대 충분치 않다는 사실을 깨달을 겁니다. 알고리즘 외에 시스템의 다른 측면, 예컨대 데이터 스택, 배포, 모니터링, 유지 관리, 인프라에 관해 아는 것이 중요합니다. 

[ ML 시스템 설계는 MLOps에 시스템으로 접근한다 ]

비즈니스 요구 사항, 데이터 스택, 인프라, 배포와 모니터링 등 구성 요소와 각 요소에 속하는 이해관계자가 협업할 수 있도록 ML 시스템을 전반적으로 고려한다는 의미입니다.

[ 사용자가 검색어를 입력할 때 광고를 노출할지 예측하는 ML모델 개발 ] 

ML 시스템 개발은 반복적이며 대부분 끝이 없는 프로세스입니다. 시스템을 프로덕션 환경에 배포하면 지속적으로 모니터링하고 업데이트 해야합니다.

1. 최적화할 지표 선택(ex. 광고를 부여주는 횟수 즉, 노출 횟수를 최적화)
2. 데이터를 수집하고 레이블을 얻음
3. 피쳐 엔지니어링 작업 진행
4. 모델 훈련
5. 오류 분석 중에 오류가 잘못된 레이블 때문에 발생한다는 사실 깨달음. 데이터를 다시 모델링함
6. 모델 다시 훈련
7. 오류 분석 중에 모델이 항상 광고를 노출하지 말라고 예측한다는 사실 깨달음. 이는 보유한 데이터 중 99.99%에 음성레이블(광고를 노출하지 않음)이 있기 때문. 노출된 광고에 대해 더 많은 데이터 수집 필요
8. 모델 다시 훈련
9. 모델은 2개월 된 테스트 데이터에는 잘 작동하지만 어제 데이터에는 성능이 좋지 않음. 모델이 구식 데이터에 맞춰져있으므로 최신 데이터로 업데이트 해야함.
10. 모델 다시 훈련
11. 모델 배포
12. 모델이 잘 작동하는 듯 함. 그런데 담당 실무자가 수익이 감소하는 이유에 대해서 물어봄. 광고를 노출하고 있지만 클릭하는 사람이 거의 없어 모델을 변경해 노출 횟수 대신 클릭률을 최적화 하고자 함
13. 1단계로 돌아가며 반복

선행 지식

  • ML 모델 : 클러스터링, 로지스틱 회귀, 의사결정트리, 협업 필터링
  • 신경망 아키텍쳐 : 피드포워드 신경망, 순환 신경망, 합성곱 신경망, 트랜스포머
  • ML 기술 : 지도/비지도 학습, 경사 하강법, 목적 함수 및 손실 함수, 정규화, 일반화, 하이퍼 파라미터 조정
  • 지표 : 정확도, F1, 정밀도, 재현율, ROC, 평균 제곱근 오차, 로그 우도
  • 통계 개념 : 분산, 확률, 정규분포, 롱테일 분포
  • 일반적인 ML작업 : 언어 모델링, 이상 탐지, 객체 분류, 기계 번역 

대상 독자

  • 로컬 테스트 완료 후 프로덕션에서 모델 배포를 앞두신 분
  • 프로덕션에서 모델에 발생할 수 있는 문제를 신속해 감지해 디버깅하고 해결할 방법을 찾고싶으신 분
  • 모델 개발, 평가, 배포 및 업데이트하는 프로세스를 자동화하고 싶으신 분
  • ML 관련 직무로 취업을 희망하시는 분

 

 <<머신러닝 시스템 설계>>는 한달전에 나온 따끈따끈한 책입니다.다른 머신러닝 책과는 다르게 머신러닝 모델 생성에서 끝나는 것이 아니라 실제 프로덕션 환경에서 머신러닝을 다룰때 꼭 챙겨야하는 부분을 알려주고 그 과정에서 생기는 궁금증을 해결해주는 책입니다. 프로덕션 환경에 모델을 적용할 때 고려해야 것들이 많고 놓치기 쉬운 부분도 많아서 꼭 ML 관련 업무를 하시는 분들에게 추천해주고 싶은 책입니다. 믿고보는 OREILLY! 강추!

머신러닝 시스템 설계 

 

머신러닝 솔루션을 개발 하면서 

초기에는 성능 좋은 모델을 개발해서 서비스만 

런칭하면 끝인줄 알았습니다. 

 

하지만  첫 서비스 오픈을 위해서 학습된 모델을 운영환경에 

배포하는 방식 부터 서비스 런칭 이후에 

더 해야할 일이 많고 서비스 런칭이 또 다른 시작점 이라는 것을 

느끼게 되었습니다. 

 

최신 데이터를 반영해서 모델의 성능을 높여 줘야 하는 

부분이 주기적으로 필요하기에 

 

데이터 수집 모델 재 학습 성능 측정 운영환경 반영까지의  

파이프라인을 구축해야 하는 일이 

좋은 머신 러닝시스템을 개발하기 위해서 필요한 일이라는 것을 

많은 시행착오 끝에 알게 되었습니다. 

 

머신러닝 시스템 설계 이책은 제가 머신러닝 서비스를 개발하면서 

겪었던 시행착오를 얼마나 중요한지 알게 해주는 책 입니다. 

 

현업에서 반드시 필요한 전체적인 관점에서 머신러닝 시스템을 위해서 

고려해야 하는 설계방식을 머신러닝 시스템 구축의 end to end을 

(훈련 데이터, 피처 엔지니어링,  MLOps를 위한 인프라와 도구등)

저자의 오랜 경험을 바탕으로 쉽게 알려줍니다. 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

머신러닝 시스템 구축을 설계하고 운영을 

고려하고 있는 분들이라면 

큰 도움이 될것입니다. 

 

이 책을 한마디로 정의하면

"교과서다"

 

기존의 솔루션이나 서비스에 ML을 도입하고자 할 때

혹은 ML을 이용한 새로운 솔루션을 만들고자 할 때

내가 이쪽 필드에 완전 노베이스다 생각되면 교과서 처럼 활용할 수 있는 책이다.

 

그 만큼 전방위적으로 다양한 정보들을 정리해서 전달해 준다.

그말은 ML을 이용한 서비스에 대한 오버뷰는 정말 잘 보여주지만

반면 실제 솔루션을 제작하면서 필요한 디테일은 이 책에 담겨있지 않다.

즉, 코드 구성이나 실제 동작을 위한 팁을 알려주는 책은 아니다.

 

수식에 대한 언급도 가끔 등장하나 의미에 대한 간략한 설명일 뿐

깊이 있는 접근을 하지는 않는다.

20230422_141911.jpg

 

 

다만 이는 단점이라기 보다는 장점으로 생각되는 것이 불필요하게 수식을 나열해 봤자

큰 그림에서 시스템을 설계할 때 모든것이 다 중요하지는 않기 때문이다.

 

그리고 모델별 특징이나 ML 프로세스를 도식화해서 보여주고 설명을 진행하는 것은 참 좋았다.

군더더기 없는 깔끔한 이미지로 통일성있게 설명이 진행되어서 서로 비교해보고 특징을 파악할 수 있었다.

 

20230422_142022.jpg

 

 

도입에서도 말 했듯이 이 책은 실제 ML 시스템 및 솔루션을 실제 구현하는 책은 아니다.

구현을 위해서 알아야할 기본적인 지식을 기술 적인 것부터

 

운영적인 것 까지 총 망라 한 책이고

가장 도움이 될 사람은

지금까지는 기존의 룰베이스 솔루션에서 ML 기반으로 넘어가려 하는데 어떤 사람을 어떻게 배치하고

어떤 절차를 거쳐서 시스템을 구축해야 하는지 이해해야 하는 의사결정권자들에게 가장 큰 도움이 될 것이다.

20230422_141822.jpg

 

이는 팀장급부터 그 윗단.. 작은 회사에서는 CEO까지 읽고 이해할 만한 정도의 책이라고 본다.

물론 ML에 대해서 고려해보았다는 것은 이 책의 일부분은 알고 있는 내용이겠지만

미쳐 알지 못했던 다른 방식과 지식에 대해서 접하면서 조금 더 정확하고 효율적인 시스템 설계가 가능할 것이라고 본다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

머신 러닝에 대한 내가 갖고 있던 생각은 일단 "어렵다" 이다. 분명 트랜드이고 많은 부분에서 연구하고 공부하는 사람들도 많은데 이상하게 공부하기가 쉽지 않았다. 그렇게 느꼈던 것은 아마도 무엇부터 공부해야 할지 몰랐던것 같다. 그리고 프로그래밍 언어를 주로 공부를 했던 습관때문인지는 몰라도 언어의 기법, 또는 기능을 공부하는것 이외에 이론을 먼저 공부하는게 쉽지 않았다. 

머신러닝, 딥러닝 등등의 내용을 이해하기 위해서는 우선 이게 무엇인지 부터 알아야 하고 각각 사용하는 용어에 대해서도 익숙해질 필요가 있다. 

이책은 머신 러닝 시스템 설계를 하기 위해서 필요한 것들이 무엇인지 단계별로 설명해 주고 있다. 머신러닝이 무엇인지, 기초 적인 배경지식들은 무엇이 필요한지 설명을 해준다. 그리고 데이터를 수집하고 정제하고 모델을 만들고 평가하고 모니터링 하는 부분들에 대해서 전반적인 내용들을 살펴 볼수 있다. 

현재 책의 중간 정도 읽고 있는 시점인데 한가지 염두해둬야 할것이 있다. 이책을 이해하기 위해서는 책 이외에 따로 공부도 필요하다. 기존 머신러닝에 대한 지식이 있다면 괜찮지만 그렇지 않다면 중간중간 나오는 용어들이나 설명들이 이해가 안될 수 있다. 나 또한 그런 부분들이 있어서 인터넷을 검색해보면서 같이 읽어보고 있다. 

ML 을 공부하는 입장에서 단한권의 책으로 모든 것을 이해하고 적용해볼수 있는 수준으로 갈수 없다는 것은 잘 알고 있다. 하지만 이책을 통해서 기본적이고 중요한 요점들을 파악한후 추가적인 공부를 한다면 ML 을 이해하는데 도움이 될수 있을것 같다. 

   "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


머신러닝을 사용할려고 할 때 어떤식으로 시스템을 설계하고 구축해야하는지 읽어보면 좋은 책입니다 

회사 뿐만 아니라 요즘 세상은 AI가 큰 화두이다.

생성AI, ChatGPT 등 AI를 기반으로 한 트렌디한 서비스들이 생겨나고 있다. 그리고 많은 스타트업부터 대기업들이 이런 기술들을 이용해 새로운 부서를 만들기도 한다. (참 신기한 일이다. 예전부터 있었던 개념이 고도화되고 품질이 높아지면 다시 수면 위로 오르고 내리고를 반복하는 것같다. ) 

또한, 요즘에는 이런 기술을 이용하는데 진입장벽이 낮아졌다. 많은 부분에서 프레임워크 등 무료로 제공해주고 있고 입맛에 맞게 조정해서 가져다 쓰기 편한 구조이기 때문이다.

이런 추세에 맞추어 내가 존경하는 개발자 분은 AI기술을 어떻게 하면 빠르고 안정적으로 그리고 효율적으로 관리할 수 있는지에 방점을 두어 MLOps에 뜻을 담고 계셨다. 주변 환경이 이러니 당연히 MLOps가 무엇인지 궁금해질 수 밖에 없었다. 

그런 와중 이런 책을 볼 수 있게 되어 큰 도움이 되었다. 이 책은 MLOps에 실무적인 관점에서 고민하는 분들께 큰 도움이 될 것이다. 놓칠 수 있는 많은 관점을 다루고 있기 때문이다. 가령, 훈련데이터를 관리하는데 발생할 수 있는 각종 포인트들, 피처 엔지니어링을 하는데 고려해야 할 요소 등에서 실제 인프라와 도구 측면까지 다루기 때문이다.

물론, 그렇다고 해서 기반 지식을 완전히 무시하고 넘어가는 건 아니다. 머신러닝 시스템 개요와 기본적인 데이터 엔지니어링까지 다루기 때문이다.  

이런 MLOps를 고민 포인트들을 다루는 책은 아직 이 책 밖에 보지 못했다.이쪽으로 전향할 예정이거나 머신러닝 시스템을 설계를 해야 하는 분이 계신다면 추천을 드린다.

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

"나는 리뷰어다 2023 4월"의 선정도서로

머신러닝 시스템 설계를 받았다.

데이터 엔지니어라면 알아야할 시스템 설계 프로젝트 범위 산정부터 MLOPs 배포까지의 전반적인 내용을 다루며 현직에서도 사용할 내용들과 비즈니스에 적용할 수 있는 모델까지의 소개까지 나와있다.

문제를 구조화하는 다양한 방법에 대해서도 배우고,

신뢰도 측정하는 방법이나 보정된 모델에 대한 비교까지의 내용을 다룬다.

이에 ML 개발자로 시작하는 이들에게 필요한 책이라고 볼 수 있다.

엔지니어 관점에서 어렵지 않고 초급자들이 쉽게 이해할 수 있도록 구성된 책이라고 볼 수 있다.

나 또한 개인적으로 더욱 깊게 공부가 시급하지만, 이해되지 않는 부분들을 다시 읽으면서 재정리할 수 있는 책이라고 볼 수 있다고 생각한다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

 

 

머신러닝이 요즘 핫하다. 그래서 관심이 아예 없진 않고, 멀리서 살짝 두고 있는 편인데 당장 시작하기엔 해야할 공부와 일들이 많아서 우선순위는 저 멀리에 있다가 잠깐 쉬면서, 이 책을 읽게 되었다.

 

 

이 책은 인공지능 관련 이론 지식에서 나아가 어떻게 하면 서비스를 효율적을 배포할 수 있을지에 대해 심도 있게 고민한 내용을 담고 있다고 한다

 

어떤 프로그래밍을 하더라도 요즘 단순 구현이상의 시스템 설계에 대한 고민을 많이 하고 있지만 쉽지 않긴하다.

 

그런면에서 이 책은 머신러닝의 설계에 대해 알려주고 있다.

 

 

이 책은 챕터11까지 있는데 머신러닝의 구성요소에 대해 전반적으로 아래와 같이 11챕터를 전부 소개해주고 있다는 느낌에 흥미로웠다.

 

 

재밌었던 부분은 챕터1 머신러닝 시스템 개요부분에서 '1.2 머신러닝 시스템 이해하기' 부분인데, 여기서 연구용 머신러닝과 프로덕션 머신러닝에 대해 알려준다.

 

머신러닝은 다양한분야에서 활용 할 수 있는데 요구사항도 그만큼 다양해질수 있다는 것이다.

 

 

2020년에 기업에서 사용하는 머신러닝 현황


이밖에도 머신러닝 시스템 설계에 대한 디테일하게 자세히 설명해주고 있다 .

 

 

머신러닝의 비즈니스 측면에서도 잘 이해시켜주려고하고 있고, 이후에는 이런 부분들에 대해 설계 방법론 등에 대한 설명을 해주고 있다.

 

이 책은 그래도 머신러닝에 대한 어느정도 기본기를 인지하고 있고, 그 이후에 비즈니스 측면과 설계에 관해 고민하는 분들이 읽으면 좋을 것같다. 난 아직 머신러닝에 대한 기본기가 없기도하고 당장 사용을 할일이 없긴해서, 추후에 기회가 된다면 이책을 읽어 볼게 될거같다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

머신러닝, 특히나 ML을 프로젝트에 적용하고 싶었던 사람들에게 도움이 될 책입니다. 머신러닝에 대한 지식을 바탕으로 기초적인 시스템 설계, 그리고 이를 위한 작업들을 제시합니다. 데이터 처리, 그리고 엔지니어링까지 다루고 있습니다. 이후에는 모델을 평가하고 배포, 테스트까지 프로젝트적인 부분에서 프로덕션으로 만들어지는 순간까지 전체적인 내용을 책 한권에 알차게 담았습니다.  MLOps에 관심이 있었다면 이 책 한권으로 기본적인 지식을 쌓을 수 있고 각 목적에 맞는 방법들을 적용하여 사용할 수 있도록 도와줍니다. 그림, 그래프 등과 상세한 설명을 통해 이 책을 구성하고, 독자들에게 도움이 되는 코드까지, MLOps를 이해하기 위한 모든 것을 갖추고 있다고 생각합니다.  ML에 대해 관심이 있고 적용하고자 하는 현직자분들에게 추천합니다.

 

-한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

머신러닝 시스템 설계

프로젝트 범위 산정부터 프로덕션 배포 후 모니터링까지, MLOps 완벽 해부하기

칩 후옌 / 김대근 , 김영민 / 한빛미디어

현업에서 ML을 비즈니스에 접목하고자 준비하거나, ML개발자로 참여자 모두에게 꼭 필요한 준비와 ML 알고리즘 적용과 검토 분석, 배포 과정을 이해하기 쉽게 사례를 들어 설명하고 있다.

저자의 업무에 대한 해박한 지식과 ML에 대한 전문적인 지식이 어울어져 독자들의 이해도를 높이는 데 많은 기여를 하고 있다고 본다.

역자들 또한 ML 개발과정에서 경험한 과정들을 독자들이 쉽게 이해할 수 있도록 자세한 해설을 추가하여 설명하고 있다.

아마존 인공지능, 기계 이론, BI도구 분야 1위라는 문구가 증명해 주는 것 같다.

오랜만에 좋은 책을 읽을 수 있도록 제공해 준 한빛미디어에 감사들 드린다.

현업에서 필요했던 ‘진짜’ 머신러닝 이야기

머신러닝이라고 하면 보통 모델 개발과 알고리즘을 떠올리지만 실제로 프로덕션 환경에서 머신러닝을 운영할 때는 그 외에도 고려할 것이 많습니다. 머신러닝 시스템을 이루고 있는 데이터, 피처, 모델 개발·평가·배포, 모니터링, 인프라 등을 전체적인 관점에서 고려해야 합니다. 프로덕션용 머신러닝은 대부분 비즈니스를 중심으로 하는 만큼 비즈니스 문제에 따른 요구 사항과 이해관계자 또한 중요합니다.

이 책은 떠오르는 MLOps 분야의 대표 강의인 스탠퍼드 ‘CS329S: 머신러닝 시스템 설계(Machine Learning Systems Design)’를 기반으로 합니다. 저자인 칩 후옌은 넷플릭스부터 스타트업까지 다양한 기업에서 머신러닝을 배포하고 운영한 경험을 바탕으로, 여러분이 그동안 궁금했지만 답을 찾기 어려웠을 법한 질문에 대해 여러 가지 접근법을 제시합니다. 특정 도구 사용법보다는 각 머신러닝 기법의 개념 및 장단점과 트레이드오프에 집중하며, 더 필요한 정보는 바로 찾아볼 수 있도록 풍부한 참고 자료 링크를 제공합니다.

대상 독자

- 머신러닝 관련 실무자: 머신러닝 엔지니어, 데이터 과학자, 머신러닝 플랫폼 엔지니어, 엔지니어링 관리자 등

- 도구 개발자: 머신러닝 프로덕션에서 서비스가 부족한 영역을 찾아내 생태계에 맞는 도구를 만들어 넣을 방안을 파악하려는 경우

- 구직자 및 학생: 머신러닝 관련 직무로 취업하려는 경우

- 기술 및 비즈니스 리더: 제품 및 비즈니스 프로세스를 개선하기 위해 머신러닝 솔루션 채택을 고려하는 경우

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

#머신러닝_시스템_설계 #프로젝트_범위 #산정부터 #프로덕션 #배포_후 #모니터링까지, #MLOps #완벽)해부하기 #칩_후옌 #김대근 #김영민 #한빛미디어

MLOps 측면에서 중요한 요소에 다루는 정말 실무적인 책입니다.

ML을 통해 시스템을 구축하고 배포하고 모니터링하는 데 까지 걸리는 모든 일련의 작업들을 수행하는데 어렵지 않도록 엔지니어의 관점에서 적혀진 책이였습니다. 

첫 장에서 첨부한 사진처럼 각 장표에 대해서 어떤 단계에 해당하는 내용을 학습하는지 설명되어 있어서 이해도 잘 갔습니다.

 

앤지니어 관점에서는 어렵게 쓰여지지 않게 이해도 잘되면서도 궁금해할만한 부분을 잘 건드리고 있는 좋은 책입니다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원 무료배송
닫기

리뷰쓰기

닫기
* 상품명 :
머신러닝 시스템 설계
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
머신러닝 시스템 설계
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
머신러닝 시스템 설계
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1