Top

쿠버네티스로 구현하는 머신러닝 [오픈소스 기반 머신러닝 플랫폼 구축과 활용]

  • 원서명Machine Learning on Kubernetes: A practical handbook for building and using a complete open source machine learning platform on Kubernetes (ISBN 9781803241807)
  • 지은이파이살 마수드(Faisal Masood), 로스 브리골리(Ross Brigoli)
  • 옮긴이최준
  • ISBN : 9791161758183
  • 35,000원
  • 2024년 01월 30일 펴냄
  • 페이퍼백 | 424쪽 | 188*235mm
  • 시리즈 : 클라우드 컴퓨팅

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/ml-kubernetes

요약

머신러닝은 더 이상 일부 전문가들의 영역이 아니며, 머신러닝의 구현과 운영 모두 여러 분야에서 축적된 경험을 바탕으로 생산적으로 발전해왔다. 이 과정에서 MLOps(Machine Learning Operations)는 기존의 소프트웨어와 시스템의 통합 운영 기술을 도입하고, 머신러닝을 위한 표준 프로세스를 적용해서 최적화해왔다. 쿠버네티스를 포함한 오픈소스 도구들을 통해 이 변화를 탐험해보자.

이 책에서 다루는 내용

◆ 머신러닝 프로젝트의 여러 단계별 이해
◆ 쿠버네티스 기반의 머신러닝 플랫폼 제작을 위한 오픈소스 소프트웨어 사용
◆ 머신러닝 플랫폼을 사용한 전체 머신러닝 프로젝트 구현
◆ 기업의 머신러닝을 위한 향상된 협업 과정
◆ 데이터 엔지니어, 머신러닝 엔지니어 또는 데이터 과학자 역할에 맞는 플랫폼 사용 방법
◆ 실제 업무 문제의 해결을 위한 머신러닝 적용 방법

이 책의 대상 독자

데이터 과학자, 데이터 엔지니어, IT 플랫폼 운영자, 인공지능 제품 서비스 책임자와 오픈소스 구성 요소로 머신러닝 플랫폼 제작을 원하는 데이터 설계 책임자를 위한 책이다. 파이썬(Python)과 쿠버네티스에 대한 이해와 데이터 사이언스 및 공학에 대한 기본 개념을 갖고 있다면 이 책이 다루는 주제를 파악하는 데 큰 도움이 될 것이다.

이 책의 구성

1장에서는 머신러닝 도입의 도전 과제를 다룬다. 기업이 머신러닝을 도입하면서 만나게 될 문제점과 머신러닝의 도입 취지를 계획대로 달성하지 못하는 이유를 논의한다. 또한 기업이 이러한 문제를 만나게 되는 몇 가지 이유를 살펴본다.
2장에서는 MLOps가 무엇인지 이해한다. 1장에서 다룬 머신러닝 도입의 문제점들에 이어서 머신러닝 도입에 어려움들을 어떻게 극복할 수 있는지 논의한다. 이 장에서는 MLOps란 무엇인지 정의하고, 기업이 MLOps 도입 취지를 달성할 수 있도록 돕는다. 또한 기업이 머신러닝 프로젝트를 통해 MLOps를 어떻게 도입하는지 청사진을 제시한다.
3장에서는 쿠버네티스를 살펴본다. 이 책에서 왜 쿠버네티스를 MLOps의 플랫폼으로 선택했는지 설명한다. 또한 쿠버네티스의 핵심 개념을 정의하고 코드를 테스트하기 위한 환경을 만들 수 있도록 도와준다. 세상이 빠르게 변하는 만큼 빠른 변화에 대한 대응도 클라우드와 클라우드 기반 솔루션의 일부다. 쿠버네티스 기반의 플랫폼을 통해 독자의 솔루션이 어디서나 동작하게 만드는 유연함을 어떻게 갖추는지 알아본다.
4장은 머신러닝 플랫폼의 구조를 다룬다. 머신러닝 플랫폼이 어떤 모습을 갖고 있는지 먼 발치에서 살펴볼 것이다. 4장은 기술의 이론적인 관점에서 MLOps 플랫폼 구성 요소를 정의한다. MLOps플랫폼의 핵심 구성 요소를 기초를 튼튼하게 익힐 것이다.
5장에서는 데이터 엔지니어링에 대해 살펴본다. 머신러닝 프로젝트에서 중요하지만 가끔 놓치기 쉬운 부분이다. 상당수의 머신러닝 입문서가 CSV 파일과 같이 자신만의 모델을 만들기 위한 깔끔한 데이터셋으로 시작하지만 현실은 다르다. 데이터는 다양한 모양과 크기를 갖고 있으며, 데이터 규모에 맞게 수집, 처리, 준비가 가능한 잘 정리된 전략이 중요하다. 이 장에서는 성공적인 머신러닝 프로젝트의 데이터 엔지니어링 역할을 정의한다. 데이터 엔지니어링의 기초가 되는 OSS 도구들을 논의할 것이다. 그리고 이러한 도구들을 쿠버네티스 플랫폼에 설치하는 방법을 다룬다.
6장에서는 머신러닝 엔지니어링에 대해 알아본다. 이제 머신러닝 개발 과정에서 모델을 제작하고 배포하는 작업으로 논의를 이어간다. 6장에서는 같은 플랫폼에서 데이터 과학자들이 더 효율적으로 데이터 엔지니어링 팀과 동료들이 협업할 수 있게 돕는 셀프서비스 솔루션을 논의한다. 또한 모델 개발을 위한 OSS 도구들을 다룬다. 그리고 이러한 도구들을 어떻게 쿠버네티스 플랫폼에 설치하는지 설명한다.
7장에서는 머신러닝 프로젝트 중에서 배포 단계를 다룬다. 직접 만들어 본 모델은 만든 사람이 제공한 데이터를 이미 알고 있다. 하지만 현실에서는 데이터가 변화한다. 이 장에서는 모델의 성능을 모니터하기 위한 도구와 기술을 논의한다. 성능 데이터를 사용해 새로운 데이터셋에 대한 재학습이 필요한지 또는 주어진 문제에 대한 새로운 모델이 필요한 시점인지 판단할 것이다.
8장에서는 플랫폼을 활용한 머신러닝 프로젝트 완성하는 방법에 대해 이야기한다. 전형적인 머신러닝 프로젝트에서 각각의 플랫폼 구성 요소를 프로젝트 단계별로 어떻게 활용하는지 정의한다. 이러한 프로젝트의 산출물과 요구 사항도 이 장에서 정의하고, MLOps가 어떻게 프로젝트를 용이하게 만드는지 주로 살펴본다.
9장에서는 스파크(Spark) 클러스터로 데이터를 어떻게 수집하고 처리하는지 보여줄 것이다. 또한 플랫폼이 어떻게 어느 저장소에서도 원시 데이터를 읽을 수 있도록 데이터 엔지니어를 돕는지 보여준다. 핵심은 스파크 클러스터가 필요시 어떻게 생성되며, 작업이 어떻게 공유된 환경에서 구분되는지 설명하는 것이다.
10장에서는 주피터허브(JupyterHub) 서버를 활용해서 어떻게 모델을 플랫폼을 기반으로 제작, 학습, 조정하는지 보여준다. 또한 이러한 플랫폼이 데이터 과학자가 스스로 동작하는 모델을 구현하는 과정을 어떻게 지원하는지 보여준다. 모델을 시험하고, 등록하는 구성 요소인 MLflow도 10장에서 소개한다. 잘 동작하는 모델이 있을 때, 이 모델을 어떻게 다른 팀에서 활용할 수 있게 만들까? 10장에서 셀돈 코어(Seldon Core) 구성 요소로 모델을 REST API 형태로 접근해 개발자가 아니어도 사용할 수 있게 만드는 방법을 보여줄 것이다. 또한 배포한 API에 대해서 쿠버네티스의 기능을 활용해 자동으로 용량을 확장하는 방법을 알아본다.
11장에서는 쿠버네티스 기반의 머신러닝에 대해 독자가 더 깊이 알아야 할 핵심적인 개념을 소개한다. 11장에서 머신러닝 플랫폼과 머신러닝의 안정화, 쿠버네티스 운영에 대한 실제 사례들을 다룬다.

저자/역자 소개

지은이의 말

머신러닝(Machine Learning)이 다시 유행하고 있다. 각 기업은 머신러닝을 채택하고 기능을 향상시켜 새로운 제품을 만들거나 고객 응대 능력을 개선한다. 이 책의 주제는 머신러닝의 갖가지 장점을 통해 기업이나 팀에서 사업적 가치를 얻어낼 수 있도록 돕는 것이다. MLOps를 쿠버네티스(Kubernates)로 구현해 데이터 과학자와 IT 운영 전문가 그리고 데이터 엔지니어가 협업해 업무에 실제로 도움이 되는 머신러닝 솔루션을 만들 수 있을 것이다. 이 책은 머신러닝 프로젝트 전반에 걸쳐서 소프트웨어 공학적인 규칙을 가지고 팀이 협업할 수 있도록 실용적인 접근을 시도한다.
먼저 MLOps가 왜 중요하고, 머신러닝 프로젝트 구성 요소의 차이점이 무엇인지 알아보는 것으로 시작할 것이다. 이 책의 후반부에는 가장 인기 있는 OSS(Open Source Software) 구성 요소를 사용해 실용적인 머신러닝 프로젝트를 전체적으로 설계하고 제작해볼 것이다. 이 책을 따라가면서 MLOps의 기본과 머신러닝 프로젝트가 제공하는 장점에 더 익숙해질 것이고, 오픈소스와 쿠버네티스 클러스터로 구성된 머신러닝 플랫폼을 만들어 설정하고, 사용해보는 경험을 얻을 것이다. 결국 데이터를 어떻게 준비하고, 모델을 빠르게 빌드해 배포하고, 일반적인 플랫폼에서 효율적으로 머신러닝 파이프라인을 구성하기 위한 작업을 자동화하는 방법을 배울 것이다. 이 책의 예제를 통해 쿠버네티스를 기반으로 주피터허브(JupyterHub), MLflow, Airflow 등의 OSS와 통합하는 실습을 해볼 것이다.
이 책을 마치고 나면 직접 제작한 머신러닝 플랫폼으로 머신러닝 모델을 효과적으로 제작해 학습, 배포할 수 있을 것이다.

지은이 소개

파이살 마수드(Faisal Masood)

레드햇의 수석 설계자다. 지금까지 오픈시프트와 레드햇의 기업용 쿠버네티스 서비스를 활용해 데이터 사이언스, 앱 플랫폼을 설계하고 제작하는 일을 지원했다. 소프트웨어 제작에 20년이 넘는 경험이 있고, 쿠버네티스가 등장하기 전부터 마이크로서비스를 만들었다.

로스 브리골리(Ross Brigoli)

레드햇의 책임 설계자다. 다양한 분야에서 18년 이상 소프트웨어를 설계하고 제작해왔다. 데이터 플랫폼과 워크플로우 자동화 플랫폼을 설계하고 제작했다. 레드햇에 오기 전에는 금융 서비스 분야에서 데이터 엔지니어링 팀을 책임지는 설계 담당자로 일했다. 현재는 오픈시프트를 기반으로 마이크로서비스 아키텍처와 머신러닝 솔루션을 설계, 제작하는 일을 하고 있다.

옮긴이의 말

한두 가지 공부해서 잘해도 살아가는 데 별 어려움이 없다면, 얼마나 더 삶이 여유로울까? 적어도 IT 분야에서 20년 넘게 일하면서 이미 오래전에 이 질문에 관한 결론을 봤다. 20년 전에 알고 있던 여러 지식과 기술 대부분은 이제 프로필에 적지도 않는다. 그때를 기억해보면, 윈도우 NT부터 윈도우 2003 서버의 제어를 위한 레지스트리 키와 배치 스크립트가 많지만, 기억의 저편에서 사라지고 있다. 그리고 여전히 다양한 기술이 앞서 변화하는 모습을 보며 뒤에서 따라잡고 있다.
지금의 데브옵스(DevOps)는 앱의 개발, 테스트, 배포, 운영 과정을 매끄럽게 관리하는 중요한 플랫폼이고 머신러닝 또한 코드와 데이터, 모델 등이 동작하는 플랫폼에서 다양한 소프트웨어와 데이터 처리 기술을 활용한다. 갑자기 팀원 누군가에게 위의 두 가지 플랫폼의 운영을 맡긴다면 어떤 표정을 볼 수 있을까? 머신러닝, 앱 관리, 클라우드 인프라, 운영 지식 모두를 배워서 만들어야 한다면, 이 책은 몇 배 더 두꺼워야 하며, 기꺼이 배우고 운영할 마음도 쉽게 생기지 않을 것이다.
정신적으로 그리고 시간적으로도 여유 있는 삶을 아직도 고민하는 입장에서 생각해보면 결국 작업의 생산성을 높이는 것이 해답에 가까운 것으로 보인다. 머신러닝 분야에서는 이 책에 등장하는 MLOps가 생산성을 높이는 운영 방식으로서 조금 더 구체적인 실마리를 준다. 또한 고맙게도 이런 고민에 공감한 수많은 개발자의 노력으로 많은 도구가 심지어 오픈소스로 등장했다. MLOps를 실현하기 위한 인프라는 쿠버네티스에게 우리가 원하는 인프라를 특정 형식으로 표현해주면 그 인프라를 쿠버네티스가 구현해준다.
여러 소프트웨어 기술 이외에도 생산성을 높이는 또 하나의 핵심 요소는 소통이다. 손발이 잘 맞는 팀들은 서로에게 무엇을 요구해야 하는지, 요구사항을 받으면 어떤 선택지를 제시해야 하는지 잘 이해하고 있다. 이러한 조직의 팀 사이 어딘가에 존재하는 애매한 부분을 세련된 도구로 채울 수 있다면, 밝은 표정으로 출근할 수 있는 날이 많아질 것이다. MLOps가 머신러닝 시스템을 설계, 개발 또는 운영하는 팀, 데이터 과학자에게 이러한 존재다. 시스템의 완성을 위해 무엇을 서로 채워야 할지 이 책에서 제시하는 내용을 참고하길 바란다.

옮긴이 소개

최준

기계공학을 전공했던 학창시절에 누구에게나 매력 덩어리였던 컴퓨터로 기계의 데이터를 처리하고 동작을 제어하는 과정에서 흥미를 갖게 돼 정보기술 분야에 뛰어들었다. 2001년부터 마이크로소프트 한국, 싱가폴 지사에서 근무하고 아시아 지역 200여 개의 글로벌 기업 현장에서 기술 지원을 수행하면서 다양한 기업용 IT 솔루션의 문제를 이해하고, 해결 방안을 찾는 소중한 경험을 갖게 됐다. 이후에는 여러 프로젝트에서 .NET 기반의 C# 개발자로서 상용 프로그램을 공급하는 즐거움도 누릴 수 있었다. 현재는 캐나다에 IT 컨설팅 회사를 설립하고, 기업 고객에게 필요한 소프트웨어 개발과 컨설팅 서비스를 제공하고 있다.

목차

목차
  • 1부. 머신러닝 도입의 문제점과 MLOps의 이해(정의와 근거)
  • 1장. 머신러닝의 도전 과제
    • 머신러닝 이해하기
    • 머신러닝 가치의 실현
    • 올바른 접근법 선택
      • 데이터의 중요성
    • 머신러닝 도입의 도전 과제
      • 큰 그림에만 집착하기
      • 사일로 살펴보기
      • 빠른 실패 문화
    • 머신러닝 플랫폼 개요
    • 요약
    • 더 알아보기

  • 2장. MLOps 이해하기
    • 머신러닝과 기존 프로그래밍의 비교
    • DevOps의 장점 알아보기
    • MLOps 이해하기
      • 머신러닝
      • DevOps
      • 머신러닝 프로젝트 라이프사이클
      • 빠른 피드백 루프
      • 프로젝트 라이프사이클에서의 협업
    • 머신러닝 프로젝트에서의 OSS 역할
    • 쿠버네티스에서 머신러닝 프로젝트 운영
    • 요약
    • 더 알아보기

  • 3장. 쿠버네티스 탐험
    • 기술 요구 사항
    • 쿠버네티스 주요 구성 요소 살펴보기
      • 제어 영역
      • 작업자 노드
      • 앱의 실행을 위한 쿠버네티스 객체
    • 쿠버네티스로 클라우드 사용자되기
    • 오퍼레이터 이해하기
    • 로컬 쿠버네티스 환경 설정하기
      • kubectl 설치
      • minikube 설치
      • OLM 설치
    • 구글 클라우드 플랫폼의 가상머신 준비하기
    • 요약

  • 2부. MLOps 플랫폼의 작업 영역과 쿠버네티스로 만드는 방법
  • 4장. 머신러닝 플랫폼의 구조
    • 기술 요구 사항
    • 셀프서비스 플랫폼 정의
    • 데이터 엔지니어링 구성 요소 알아보기
      • 데이터 엔지니어 워크플로
    • 모델 개발 구성 요소 알아보기
      • 데이터 과학자의 워크플로 이해하기
    • 보안, 모니터링과 자동화
    • ODH 소개
      • 쿠버네티스에 ODH 오퍼레이터 설치
      • 쿠버네티스 클러스터에 인그레스 제어기 활성화
      • 쿠버네티스에 Keycloak 설치
    • 요약
    • 더 알아보기

  • 5장. 데이터 엔지니어링
    • 기술 요구 사항
    • 인증을 위한 Keycloak 설정
      • ODH 구성 요소에 대한 Keycloak 설정 가져오기
      • Keycloak 사용자 생성
    • ODH 구성 요소 설정
      • ODH 설치
    • 주피터허브의 이해와 활용
      • 주피터허브 설치 확인하기
      • 첫 번째 주피터 노트북 실행
    • 아파치 스파크의 기초 이해
      • 아파치 스파크 작업 실행 이해하기
    • ODH로 아파치 스파크 클러스터를 필요할 때 제공하는 방법
      • 스파크 클러스터 생성
      • 주피터허브로 스파크 클러스터를 생성하는 방법
    • 주피터 노트북에서 스파크 앱을 만들어서 실행하기
    • 요약

  • 6장. 머신러닝 엔지니어링
    • 기술 요구 사항
    • 머신러닝 엔지니어링 이해
    • 사용자 노트북 이미지 사용
      • 사용자 노트북 컨테이너 이미지 만들기
    • MLflow 소개
      • MLflow 구성 요소 이해
      • MLflow 설치 확인하기
    • 시험 추적 시스템용 MLflow
      • 시험 실행에 사용자 데이터 추가
    • 모델 레지스트리 시스템으로서 MLflow
    • 요약

  • 7장. 모델 배포와 자동화
    • 기술 요구 사항
    • 셀돈 코어를 사용한 모델 추론의 이해
      • 파이썬을 사용한 모델 래핑
      • 모델을 컨테이너로 만들기
      • 셀돈 코어 컨트롤러로 모델 배포하기
    • 셀돈 코어를 사용한 모델의 패키징, 실행, 모니터링
    • 아파치 Airflow 소개
      • DAG 이해
      • Airflow 기능 탐험
      • Airflow 구성 요소 이해
      • Airflow 설치 확인하기
      • Airflow DAG 리포지터리 설정
      • Airflow 런타임 이미지 설정
    • Airflow에서 머신러닝 모델 배포의 자동화
      • 파이프라인 편집기로 파이프라인 생성하기
    • 요약

  • 3부. MLOps와 새로운 플랫폼을 사용한 전체 프로젝트 빌드
  • 8장. 우리의 플랫폼을 사용한 전체 머신러닝 프로젝트 만들기
    • 머신러닝 플랫폼의 전체 그림 보기
    • 사업적 과제의 이해
    • 데이터 수집, 처리, 정제
      • 데이터 소스, 경로, 형식의 이해
      • 데이터 처리와 정제의 이해
    • 예비 데이터 분석 수행
      • 데이터 샘플 이해
    • 피처 엔지니어링의 이해
      • 데이터 증강
    • 머신러닝 모델의 빌드와 평가
      • 데이터 평가 기준
      • 모델 빌드
      • 모델 배포
    • 재현 가능성
    • 요약

  • 9장. 데이터 파이프라인 만들기
    • 기술 요구 사항
    • 개발을 위한 스파크 클러스터 자동 제공
    • 스파크 데이터 파이프라인 작성
      • 실행 환경 준비
      • 데이터 이해하기
      • 파이프라인 설계와 제작
      • 데이터 파이프라인을 모니터하는 스파크 화면 사용
    • Airflow를 사용한 데이터 파이프라인 제작과 실행
      • 데이터 파이프라인 DAG 이해
      • DAG 제작과 실행
    • 요약

  • 10장. 모델의 제작, 배포와 모니터링
    • 기술 요구 사항
    • 주피터허브를 사용한 데이터 시각화와 탐색
    • 주피터허브로 모델을 만들고 조정하기
    • 모델 시험 추적과 MLflow를 사용한 버전 관리
      • 모델 시험 추적
      • 모델 버전 관리
    • 모델을 서비스로 배포
      • 모델 호출하기
    • 모델 모니터하기
      • 모니터링 구성 요소의 이해
      • 그라파나와 대시보드 설정
    • 요약

  • 11장. 쿠버네티스 기반의 머신러닝
    • 머신러닝 플랫폼 사례 검토
      • AutoML 검토하기
      • 상업적 플랫폼
      • ODH
    • 머신러닝 운영 최적화
      • 업무 기대치 설정
      • 지저분한 실제 데이터 처리
      • 부정확한 결과 처리
      • CD 관리
      • 보안 관리
      • 규정 준수
      • 거버넌스 적용
    • 쿠버네티스 실행
      • 벤더 의존성 방지
      • 다른 쿠버네티스 플랫폼 검토
    • 로드맵
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[ p.90: 9단계 ]
9. 다음은 nimikube 설치 과정의
->
9. 다음은 minikube 설치 과정의

[ p.120: 1행 ]
1. minikube를 사용해 카프카 클러스터가 실행 중인지 확인한다.
->
1. minikube를 사용해 쿠버네티스 클러스터가 실행 중인지 확인한다.