머신러닝 시스템 설계

Book description

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

Table of contents

  1. 베타리더 후기
  2. 추천사
  3. 한국 독자들에게
  4. 지은이 소개
  5. 옮긴이 소개
  6. 옮긴이의 말
  7. 이 책에 대하여 (1/2)
  8. 이 책에 대하여 (2/2)
  9. 감사의 말 (1/2)
  10. 감사의 말 (2/2)
  11. CHAPTER 1 머신러닝 시스템 개요
    1. 1.1 머신러닝을 사용해야 하는 경우 (1/2)
    2. 1.1 머신러닝을 사용해야 하는 경우 (2/2)
      1. 1.1.1 머신러닝 유스 케이스
    3. 1.2 머신러닝 시스템 이해하기
      1. 1.2.1 연구용 머신러닝 vs. 프로덕션용 머신러닝
      2. 1.2.2 머신러닝 시스템 vs. 전통적인 소프트웨어
    4. 1.3 정리
  12. CHAPTER 2 머신러닝 시스템 설계 소개
    1. 2.1 비즈니스와 머신러닝의 목적
    2. 2.2 머신러닝 시스템 요구 사항
    3. 2.3 반복 프로세스
    4. 2.4 머신러닝 문제 구조화하기
      1. 2.4.1 머신러닝 작업 유형
      2. 2.4.2 목적 함수
    5. 2.5 지성 vs. 데이터
    6. 2.6 정리
  13. CHAPTER 3 데이터 엔지니어링 기초
    1. 3.1 데이터 소스
    2. 3.2 데이터 포맷
      1. 3.2.1 JSON
      2. 3.2.2 행 우선 포맷 vs. 열 우선 포맷
      3. 3.2.3 텍스트 포맷 vs. 이진 포맷
    3. 3.3 데이터 모델
      1. 3.3.1 관계형 모델
      2. 3.3.2 NoSQL
      3. 3.3.3 정형 데이터 vs. 비정형 데이터
    4. 3.4 데이터 스토리지 엔진 및 처리
      1. 3.4.1 트랜잭션 처리와 분석 처리
      2. 3.4.2 ETL: Extract, Transform, Load
    5. 3.5 데이터플로 모드
      1. 3.5.1 데이터베이스를 통한 데이터 전달
      2. 3.5.2 서비스를 통한 데이터 전달
      3. 3.5.3 실시간 전송을 통한 데이터 전달
    6. 3.6 배치 처리 vs. 스트림 처리
    7. 3.7 정리
  14. CHAPTER 4 훈련 데이터
    1. 4.1 샘플링
      1. 4.1.1 비확률 샘플링
      2. 4.1.2 단순 무작위 샘플링
      3. 4.1.3 계층적 샘플링
      4. 4.1.4 가중 샘플링
      5. 4.1.5 저수지 샘플링
      6. 4.1.6 중요도 샘플링
    2. 4.2 레이블링
      1. 4.2.1 수작업 레이블
      2. 4.2.2 자연 레이블
      3. 4.2.3 레이블 부족 문제 해결하기 (1/2)
      4. 4.2.3 레이블 부족 문제 해결하기 (2/2)
    3. 4.3 클래스 불균형 문제
      1. 4.3.1 클래스 불균형 문제의 어려움
      2. 4.3.2 클래스 불균형 처리하기 (1/2)
      3. 4.3.2 클래스 불균형 처리하기 (2/2)
    4. 4.4 데이터 증강
      1. 4.4.1 단순 레이블 보존 변환
      2. 4.4.2 교란
      3. 4.4.3 데이터 합성
    5. 4.5 정리
  15. CHAPTER 5 피처 엔지니어링
    1. 5.1 학습된 피처 vs. 엔지니어링된 피처
    2. 5.2 피처 엔지니어링 기법
      1. 5.2.1 결측값 처리
      2. 5.2.2 스케일링
      3. 5.2.3 이산화
      4. 5.2.4 범주형 피처 인코딩
      5. 5.2.5 피처 교차
      6. 5.2.6 이산 및 연속 위치 임베딩
    3. 5.3 데이터 누수
      1. 5.3.1 일반적인 원인
      2. 5.3.2 데이터 누수 검출
    4. 5.4 좋은 피처를 설계하는 방법
      1. 5.4.1 피처 중요도
      2. 5.4.2 피처 일반화
    5. 5.5 정리
  16. CHAPTER 6 모델 개발과 오프라인 평가
    1. 6.1 모델 개발과 훈련
      1. 6.1.1 머신러닝 모델 평가
      2. 6.1.2 앙상블 (1/2)
      3. 6.1.2 앙상블 (2/2)
      4. 6.1.3 실험 추적과 버전 관리 (1/2)
      5. 6.1.3 실험 추적과 버전 관리 (2/2)
      6. 6.1.4 분산 훈련
      7. 6.1.5 오토ML (1/2)
      8. 6.1.5 오토ML (2/2)
    2. 6.2 모델 오프라인 평가
      1. 6.2.1 베이스라인
      2. 6.2.2 평가 방법 (1/2)
      3. 6.2.2 평가 방법 (2/2)
    3. 6.3 정리
  17. CHAPTER 7 모델 배포와 예측 서비스
    1. 7.1 머신러닝 배포에 대한 통념
      1. 7.1.1 통념 1: 한 번에 한두 가지 머신러닝 모델만 배포합니다.
      2. 7.1.2 통념 2: 아무것도 하지 않으면 모델 성능은 변하지 않습니다.
      3. 7.1.3 통념 3: 모델을 자주 업데이트할 필요 없습니다.
      4. 7.1.4 통념 4: 대부분의 머신러닝 엔지니어는 스케일에 신경 쓰지 않아도 됩니다.
    2. 7.2 배치 예측 vs. 온라인 예측
      1. 7.2.1 배치 예측에서 온라인 예측으로
      2. 7.2.2 배치 파이프라인과 스트리밍 파이프라인의 통합
    3. 7.3 모델 압축
      1. 7.3.1 저차원 인수분해
      2. 7.3.2 지식 증류
      3. 7.3.3 가지치기
      4. 7.3.4 양자화
    4. 7.4 클라우드와 에지에서의 머신러닝
      1. 7.4.1 에지 디바이스용 모델 컴파일 및 최적화 (1/2)
      2. 7.4.1 에지 디바이스용 모델 컴파일 및 최적화 (2/2)
      3. 7.4.2 브라우저에서의 머신러닝
    5. 7.5 정리
  18. CHAPTER 8 데이터 분포 시프트와 모니터링
    1. 8.1 머신러닝 시스템 장애 원인
      1. 8.1.1 소프트웨어 시스템 장애
      2. 8.1.2 머신러닝 한정 장애 (1/2)
      3. 8.1.2 머신러닝 한정 장애 (2/2)
    2. 8.2 데이터 분포 시프트
      1. 8.2.1 데이터 분포 시프트 유형
      2. 8.2.2 일반적인 데이터 분포 시프트
      3. 8.2.3 데이터 분포 시프트 감지 (1/2)
      4. 8.2.3 데이터 분포 시프트 감지 (2/2)
      5. 8.2.4 데이터 분포 시프트 해결
    3. 8.3 모니터링과 관찰 가능성
      1. 8.3.1 머신러닝 관련 지표
      2. 8.3.2 모니터링 도구
      3. 8.3.3 관찰 가능성
    4. 8.4 정리
  19. CHAPTER 9 연속 학습과 프로덕션 테스트
    1. 9.1 연속 학습
      1. 9.1.1 무상태 재훈련 vs. 상태 유지 훈련
      2. 9.1.2 연속 학습의 필요성
      3. 9.1.3 연속 학습의 난제
      4. 9.1.4 연속 학습의 네 단계 (1/2)
      5. 9.1.4 연속 학습의 네 단계 (2/2)
      6. 9.1.5 모델 업데이트 빈도
    2. 9.2 프로덕션에서 테스트하기
      1. 9.2.1 섀도 배포
      2. 9.2.2 A/B 테스트
      3. 9.2.3 카나리 배포
      4. 9.2.4 인터리빙 실험
      5. 9.2.5 밴딧
    3. 9.3 정리
  20. CHAPTER 10 MLOps를 위한 인프라와 도구
    1. 10.1 스토리지와 컴퓨팅
      1. 10.1.1 퍼블릭 클라우드 vs. 프라이빗 데이터 센터
    2. 10.2 개발 환경
      1. 10.2.1 개발 환경 설정
      2. 10.2.2 개발 환경 표준화
      3. 10.2.3 개발 환경에서 프로덕션 환경으로: 컨테이너
    3. 10.3 자원 관리
      1. 10.3.1 크론, 스케줄러, 오케스트레이터
      2. 10.3.2 데이터 과학 워크플로 관리 (1/2)
      3. 10.3.2 데이터 과학 워크플로 관리 (2/2)
    4. 10.4 머신러닝 플랫폼
      1. 10.4.1 모델 배포
      2. 10.4.2 모델 스토어
      3. 10.4.3 피처 스토어
    5. 10.5 구축 vs. 구매
    6. 10.6 정리
  21. CHAPTER 11 머신러닝의 인간적 측면
    1. 11.1 사용자 경험
      1. 11.1.1 사용자 경험 일관성 보장하기
      2. 11.1.2 ‘대부분 맞는’ 예측에 맞서기
      3. 11.1.3 원만한 실패
    2. 11.2 팀 구조
      1. 11.2.1 크로스-펑셔널 팀 협업
      2. 11.2.2 엔드-투-엔드 데이터 과학자
    3. 11.3 책임 있는 AI
      1. 11.3.1 무책임한 AI: 사례 연구 (1/2)
      2. 11.3.1 무책임한 AI: 사례 연구 (2/2)
      3. 11.3.2 책임 있는 AI의 프레임워크 (1/2)
      4. 11.3.2 책임 있는 AI의 프레임워크 (2/2)
    4. 11.4 정리
  22. 에필로그
  23. 찾아보기 (1/2)
  24. 찾아보기 (2/2)

Product information

  • Title: 머신러닝 시스템 설계
  • Author(s): 김대근, 칩 후옌, 김영민
  • Release date: March 2023
  • Publisher(s): Hanbit Media, Inc.
  • ISBN: 9791169210850