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