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

한빛출판네트워크

머신러닝 엔지니어링 인 액션

머신러닝 엔지니어링 개념부터 프로덕션까지 성공적인 머신러닝 프로젝트 구축하기

한빛미디어

번역서

판매중

  • 저자 : 벤 윌슨
  • 번역 : 김대근 , 심대열
  • 출간 : 2023-12-04
  • 페이지 : 692 쪽
  • ISBN : 9791169211758
  • 물류코드 :11175
  • 초급 초중급 중급 중고급 고급
4.8점 (28명)
좋아요 : 12

성공하는 머신러닝 프로젝트의 비밀

순서도와 그림으로 살펴보는 머신러닝 프로젝트 A to Z

 

이 책은 머신러닝 엔지니어링의 기본 개념부터 머신러닝 프로젝트에 필요한 설계 원칙, 좋은 ML 코드 작성법, 프로덕션 배포 전 고려해야 할 심화 주제까지 설명합니다. 수십 년간 축적된 훌륭한 소프트웨어 엔지니어링 경험 위에 세워진 머신러닝 엔지니어링은 ML 시스템의 복원력과 적응력, 프로덕션 환경에서의 성능을 보장합니다. 프로토타입으로 테스트하고, 모듈식 설계를 통해 탄력적인 아키텍처 구축 노하우를 배우고, 협업 시 일관된 커뮤니케이션을 제공하는 소프트웨어 엔지니어링 기술을 배워보세요. 성공적인 머신러닝 프로젝트의 비밀을 여러분의 기술로 만들어 안정적인 데이터 파이프라인, 효율적인 애플리케이션 워크플로, 유지 관리 가능한 ML 모델을 직접 구축해보길 바랍니다.

상세이미지700_머신러닝 엔지니어링 인 액션.jpg

벤 윌슨 저자

벤 윌슨

원자력 공학 기술자, 반도체 공정 엔지니어, 데이터 과학자 등을 역임한 머신러닝 엔지니어입니다. 10년 넘게 데이터와 오픈 소스 도구로 문제를 해결해왔으며, 지난 4년 동안 다른 사람들도 같은 방식으로 문제를 해결할 수 있게 돕고 있습니다. ML 프레임워크 코드를 빌드하고, 어려운 데이터 과학 문제 해결을 돕고, 유쾌한 웃음 짓기를 좋아합니다.

김대근 역자

김대근

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

 

심대열 역자

심대열

현재 클라우드 업계에서 다양한 고객의 비즈니스 문제 해결에 기술적인 도움을 주는 AI/ML 전문가로 일하고 있습니다. 산업 기능 요원으로 엔지니어 경력을 시작해 스타트업 창업을 경험하고, 국내 대기업에서 해외 영업과 프로젝트 관리, 설루션 개발과 데이터 과학자의 역할을 수행했습니다. 데이터 과학 석사 과정 수료 후 한양대학교 인공지능학과 ASML Lab에서 박사 과정 중입니다.

 [PART 1 머신러닝 엔지니어링 소개]

 

CHAPTER 1 머신러닝 엔지니어란

_1.1 ML 엔지니어링이라고 부르는 이유

_1.2 ML 엔지니어링 핵심 원칙 

_1.3 ML 엔지니어링의 목표

_1.4 요약 

 

CHAPTER 2 엔지니어링을 사용하는 데이터 과학 

_2.1 프로젝트 성공률을 높이는 방법: 프로세스를 적용해 복잡한 전문성 강화하기 

_2.2 단순한 토대의 중요성 

_2.3 애자일 소프트웨어 엔지니어링의 공동 채택 원칙 

_2.4 ML 엔지니어링의 기반

_2.5 요약 

 

CHAPTER 3 프로젝트 계획 수립 및 범위 설정 

_3.1 계획 수립: 무엇을 예측할까요? 

_3.2 실험 범위 설정: 기대치와 제한 

_3.3 요약

 

CHAPTER 4 의사소통과 프로젝트 규칙 논의 

_4.1 의사소통: 문제 정의 

_4.2 시간 낭비하지 않기: 크로스펑셔널 팀과의 회의 

_4.3 실험 한계 설정 

_4.4 비즈니스 규칙 혼돈에 대한 계획 수립 

_4.5 결과에 대해 말하기 

_4.6 요약 

 

CHAPTER 5 ML 프로젝트 계획 및 연구

_5.1 실험 계획 수립 

_5.2 실험 사전 준비 작업 

_5.3 요약 

 

CHAPTER 6 프로젝트 테스트 및 평가 

_6.1 아이디어 테스트 

_6.2 가능성 좁히기 

_6.3 요약 

 

CHAPTER 7 프로토타입에서 MVP로 

_7.1 튜닝: 지루한 일을 자동화합시다 

_7.2 플랫폼과 팀에 적절한 기술 선택

_7.3 요약 

 

CHAPTER 8 MLflow 및 런타임 최적화로 MVP 마무리

_8.1 로깅: 코드, 지표 및 결과 

_8.2 확장성 및 동시성 

_8.3 요약 

 

[PART 2 프로덕션 준비: 유지 관리 가능한 ML 만들기]


CHAPTER 9 ML 모듈화: 테스트 가능하고 읽기 쉬운 코드 작성 

_9.1 모놀리식 스크립트의 개념과 나쁜 이유 

_9.2 텍스트 벽으로 된 코드 디버깅 

_9.3 모듈화된 ML 코드 설계 

_9.4 ML에 TDD 방식 활용 

_9.5 요약 

 

CHAPTER 10 코딩 표준 및 유지 관리 가능한 ML 코드 작성 

_10.1 ML 코드 스멜 

_10.2 네이밍, 구조 및 코드 아키텍처 

_10.3 튜플 언패킹 및 유지 관리 대안 

_10.4 이슈에 눈 감기: 예외 및 기타 잘못된 관행 사용 

_10.5 전역 가변 객체 사용 

_10.6 과도하게 중첩된 로직 

_10.7 요약 

 

CHAPTER 11 모델의 측정과 그 중요성 

_11.1 모델의 기여도 측정 

_11.2 A/B 테스트를 활용한 기여도 계산 

_11.3 요약 

 

CHAPTER 12 드리프트 주시를 통한 상승세 유지 

_12.1 드리프트 감지 

_12.2 드리프트 대응 

_12.3 요약 

 

CHAPTER 13 ML 개발의 오만함 

_13.1 우아하게 복잡한 코드와 과도한 엔지니어링의 차이 

_13.2 의도치 않은 난독화: 남이 작성한 코드를 읽을 수 있을까요? 

_13.3 성급한 일반화와 최적화 그리고 자신을 드러내기 위해 사용하는 나쁜 방법 

_13.4 알파 테스트와 오픈 소스 생태계의 위험성 

_13.5 기술 중심 개발 vs. 설루션 중심 개발 

_13.6 요약 

 

[PART 3 프로덕션 머신러닝 코드 개발]


CHAPTER 14 프로덕션 코드 작성

_14.1 데이터를 만났나요? 

_14.2 피처 모니터링 

_14.3 모델 수명 주기의 나머지 항목 모니터링 

_14.4 최대한 단순하게 유지하기 

_14.5 프로젝트 와이어프레임 작성 

_14.6 카고 컬트 ML 행위 피하기 

_14.7 요약 

 

CHAPTER 15 품질과 인수 테스트 

_15.1 데이터 일관성 

_15.2 콜드 스타트와 대비책 

_15.3 실사용자 vs. 내부 사용자 테스트 

_15.4 모델의 해석 가능성 

_15.5 요약 

 

CHAPTER 16 프로덕션 인프라 

_16.1 아티팩트 관리 

_16.2 피처 스토어 

_16.3 예측 서빙 아키텍처 

_16.4 요약 

 

[PART 4 부록]


APPENDIX A 빅오 및 런타임 성능 고려 방법

_A.1 빅오란 무엇인가요? 

_A.2 예시별 복잡도

_A.3 의사 결정 트리 복잡도 분석 

_A.4 일반적인 ML 알고리듬 복잡도 

 

APPENDIX B 개발 환경 설정

_B.1 깔끔한 실험 환경의 예 

_B.2 컨테이너를 활용한 의존성 지옥 대응 

_B.3 컨테이너 기반의 깨끗한 실험 환경 만들기

머신러닝 프로젝트 종사자 필독서!

다양한 예시, 이해를 돕는 순서도, 좋은 코드 작성법, 함정 회피법까지

머신러닝 개발 현장에서 터득한 노하우 대방출

 

프로젝트에 머신러닝을 도입해 프로덕션 수준으로 끌어올리기까지는 수많은 시행착오가 필요합니다. 그 시행착오 과정에서 길을 이끌어주는 훌륭한 가이드가 있다면 얼마나 든든할까요? 저자 벤 윌슨은 수많은 머신러닝 프로젝트를 직접 경험하며 온몸으로 터득한 노하우를 여러분에게 선보입니다. 비즈니스에 머신러닝을 도입할 때 마주하기 쉬운 함정을 피하는 방법과 일을 두 번 하지 않게 하는 계획 수립 전략, 협업 부서와의 현명한 소통법, 장기적으로 유지 관리 가능한 프로젝트 구현 방법, 배포 시 유념해야 할 사항들까지 머신러닝 프로젝트 설계 전반에 걸친 유용한 내용을 소개합니다. 이 책은 머신러닝 개발 현장에서 고군분투하고 있는 엔지니어뿐 아니라 데이터 과학자, 소프트웨어 아키텍트 등 머신러닝 프로젝트에 발을 담고 있는 모든 분에게 유용합니다. 이 책을 읽고 나면 각자의 역할을 더 잘 이해하고 업무를 더 효율적으로 요청하고 수행할 수 있을 것입니다. 

 

주요 내용

  • 머신러닝 프로젝트의 계획 수립과 범위 설정하기
  • 설계에 적합한 기술 선택하는 방법 알아보기
  • 코드 기반의 이해도, 유지 보수, 테스트 가능성 높이기
  • 프로덕션의 품질을 높이는 고급 사항 살펴보기

 

장별 내용

  • 1부(1장~8장): 팀장, 매니저, 프로젝트 리더 관점에서 ML 프로젝트의 관리 측면을 살펴봅니다. 설루션 구축 시 빠지기 쉬운 함정을 피할 수 있도록 범위 설정, 실험, 프로토타이핑에 대한 청사진을 제시하고, 포괄적인 피드백을 전달합니다.
  • 2부(9장~13장): ML 프로젝트의 개발 프로세스를 다룹니다. ML 설루션 개발의 좋은 예시와 나쁜 예시를 비교하며 ML 설루션을 빌드하고 튜닝하는 방법, 그리고 로깅과 평가를 하는 검증된 방법을 안내해 가장 간단하고 유지 관리하기 쉬운 코드를 만드는 법을 소개합니다.
  • 3부(14장~16장): 프로젝트의 프로덕션 배포, 재훈련, 모니터링 및 기여도와 관련한 고려 사항을 다룹니다. A/B 테스트와 피처 스토어, 재훈련 시스템 예제와 함께 시스템 구축과 아키텍처를 제공하며, 이를 통해 여러분은 비즈니스 문제를 ML로 해결하는 데 있어 최소한의 복잡성을 가지는 설루션을 구축할 수 있습니다.

 

대상 독자

  • 머신러닝 엔지니어, 데이터 과학자, 소프트웨어 아키텍트 등 머신러닝 프로젝트 참여자
  • 머신러닝 엔지니어링 설계 과정에서 어려움을 겪고 있는 분
  • 머신러닝 엔지니어링을 활용해 무언가를 구축해보고 싶은 분
  • 머신러닝 엔지니어링에 관심 있는 누구나

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

머신러닝 프로젝트를 성공적으로 하기 위해서는 머신러닝 알고리즘을 잘 이해하는 것으로만은 힘들다. 프로젝트 관리 등 다양한 분야의 지식과 역량이 요구된다.
언어만 잘한다고 실무를 이해한다는 것은 다른 이야기인 것 같습니다.

머신러닝 엔지니어링의 기본 개념부터 시작하여 단계별로 꼼꼼하게 접근합니다. 저자는 수많은 경험을 바탕으로 작성이 되어 있어, 처음 공부하시는 분들에게도 많이 도움될 것 같습니다.

그림이 적절하게 들어가 있어서 이해하는데는 무리가 없었습니다.

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

 

머신러닝 붐이 일었을 때와 달리 점점 더 시간이 가면 갈수록 머신러닝 기법에 대한 강조보다는 어떻게 프로젝트를 구성하는지, 실무에서 어떤 점들을 고려해야 하는지, 재무적인 관점을 어떻게 어필해야 하는지와 같이 조금 더 실무와 가까운 내용의 책들이 나오고 있다. 

 

이 책도 그런 책 중 하나다. 챕터 4까지 코드 한 줄 안나온다. 

계속해서 문제 정의와 스코프 설정에 대한 내용을 강조한다. 

저자는 처음부터 현자였던 걸까? 

 

그렇게 포장할 수도 있겠지만, 저자는 포장하지 않고 자신의 아픈 상처를 드러낸다. 

 

66쪽을 보면 이런 구절이 나온다.

흥미로운 최신 알고리듬을 사용하고 싶은 열정이 프로젝트에서 형편없이 발휘된 사례를 여러 번 목격했습니다. 대표적인 예는 이미지 해상도 업스케일링을 위한 GAN 프로젝트로, 12명의 데이터 과학자로 구성된 팀이 10개월이 걸려서야 프로덕션 준비 및 확장 가능한 상태에 도달할 수 있었습니다. 제가 경영진과 대화할 때는 회사가 이탈 모델, 사기 탐지 모델, 수익 예측 모델을 구축하기 위해 컨설턴트를 고용한 상태였습니다. 경영진은 내부 팀이 R&D 프로젝트를 하느라 너무 바쁘기에 중요한 모델링 작업을 외부 컨설턴트에게 맡겨야 한다고 생각했죠. 결국 이 회사와 일한 지 12주 만에 데이터 과학 팀 전체가 해고되었고 회사는 이미지 프로젝트를 포기했습니다.

 

경영진과 대화를 한다고 하는 걸 봐서, 저자가 팀 리드였던거라고 추론해본다면 저자는 잘못된 프로젝트 선정과 잘못된 스코프 설정 등으로 인해 3개월만에 팀이 폭파되는 경험을 온전히 감내해야만 했다. 단순히 실무자도 아니고 책임자이니 팀원들의 비난까지 얼마나 받았을지 쉽게 상상해볼 수 있다.

 

그만큼 머신러닝 프로젝트는 예상외로 쉽지 않다. 아무리 ChatGPT가 나오고 코딩을 배워본 적 없는 초심자라도 크롤링도 하고 모든 걸 다 할 수 있는 세상이라고 하지만, 돈이 왔다갔다 하는 실무 환경에서 성과를 내기 위해선 그 이상의 뭔가가 있어야 하고, 그건 예전부터 강조되어왔던 문제정의와 커뮤니케이션 그리고 이를 뒷받침해 줄 적절한 시스템이다. 

 

XGBoost를 써서 Accuracy가 98.9%나왔느냐 99%가 나왔느냐는 캐글 컴피티션에서는 중요할지 몰라도, 실무에서는 중요할 수도 있고 중요하지 않을 수도 있다. 아니 오히려 전혀 중요하지 않을 수도 있다. 그렇기에 저자는 계속해서 오컴의 면도날 법칙, 즉 간단하게 문제를 처리할 수 있다면 간단하게 처리하는 게 최선이며, 복잡성은 차근차근 높여갈 것을 조언한다. 어느 정도 기법에 대해서 익히고 실무가 궁금한 사람에게 이 책은 적합할 듯 하다.

 

 

밑줄긋기

p.16

 

 

p.35

ML 프로젝트가 더욱 복잡해지는 이유는 전통적인 소프트웨어 개발 프로젝트와는 다른 두 가지 중요한 요소 때문입니다.

 

첫째는 프로젝트의 기대치에 대한 세부 사항이 부족하다는 점과

둘째로 ML을 활용함에 있어서 산업의 성숙도가 상대적으로 떨어진다는 점입니다.

 

1990년대 초반의 소프트웨어 엔지니어링의 상황을 떠올려 보면 이해하기 쉬울 겁니다. 그 당시 기업들은 소프트웨어 기술을 잘 활용하는 방법을 알지 못했고, 관련 도구 또한 턱없이 부족했습니다. 따라서 많은 프로젝트에서 소프트웨어 엔지니어링 팀이 업무 기대치를 충족시키지 못하는 상황이 발생할 수밖에 없었습니다. 과거를 비춰볼 때 현재 2020년대의 ML 업무는 30년 전 소프트웨어 엔지니어링 위치에 있다고 볼 수 있습니다.

 

p.37~38

잘못된 문제를 해결하기 위한 ML 솔루션 구축만큼 사기를 저하시키는 일은 없습니다.

 

프로젝트가 실패하는 다양한 원인 중에서 프로젝트 계획 수립 실패는 프로젝트가 무산되는 가장 큰 이유입니다. 여러분이 새로 입사한 데이터 과학자라고 생각해보세요. 첫째 주에는 마케팅 팀의 임원이 찾아와 심각한 비즈니스 문제를 그들의 용어로 설명합니다. 마케팅 팀에서는 고객과 소통할 수 있는 효율적인 방법을 찾아내 고객이 관심 있어 할 만한 행사를 이메일로 홍보해야 하는 상황입니다. 하지만 경영진은 세부적인 내용을 완전히 무시한 채 "이메일 열람 비율이 올라갔으면 좋곘다"라고만 말합니다.

 

이 상황에서 마케팅 팀의 팀원들에게 이메일 열람률 상승이라는 최종 목표에만 촛점을 두고 질문한다면 그들은 이를 달성할 무수한 방법을 이야기할 것입니다. 고객에게 맞춤화된 콘텐츠를 추천해주는 이메일을 작성하고 싶은가요? 자연어 처리 기반의 시스템으로 각 고객에게 적합한 제목을 찾고 싶은가요? 아니면 추천 시스템을 구축해 일별 판매 데이터를 기반으로 고객과 연관성이 높은 제품 목록을 예측하려고 하나요?

 

문제에 대한 가이드가 거의 주어지지 않은 채 선택할 수 있는 옵션이 매우 다양하고, 복잡성 또한 각기 다르기 때문에 경영진의 기대에 부합하는 솔루션을 만들기란 거의 불가능합니다. 하지만 적절한 계획 수립에 대해 논의해본다면 더 디테일한 부분을 파악할 수 있고, 경영진이 기대하는 바를 명확하게 정의할 수 있습니다. 즉, 경영진의 목적은 이메일을 읽을 가능성이 가장 높은 시간을 예측하는 것이었죠. 경영진은 단지 전 세계에 있는 사용자들의 출퇴근 시간과 수면 시간을 파악해 각 사용자의 시간대에 맞춰 읽을 가능성이 높은 고객에게만 이메일을 보내고 싶을 뿐입니다. 하루 종일 효율적으로 이메일을 발송하고 싶은 것이지요.

 

안타깝게도 대부분의 ML 프로젝트가 이런 식으로 시작되곤 합니다. 프로젝트 시작에 앞서 의사소통이 거의 이루어지지 않는 경우가 많으며, 보통은 데이터 과학 팀이 어떻게든 알아서 해줄 거라 기대하곤 합니다. 하지만 무엇을 구축해야 하는지, 어떤 기능을 해야 하는지, 최종 목표가 어떤 것인지에 대한 적절한 가이드가 없다면 프로젝트가 실패할 확률이 매우 높습니다.

 

사용자의 IP 주소로 알아낼 수 있는 접속 위치 기반으로 쿼리하고, 사용자의 시차를 간단히 분석만 해도 되는 작업이었는데, 수개월의 개발 시간과 노력을 들여 기능이 다양한 추천 시스템을 구축했다면 어떤 일이 발생했을까요? 프로젝트는 중간에 취소되었을 확률이 가장 높고, 만약 구축을 완료했다 하더라도 이렇게 거대한 시스템을 구축한 이유와 막대한 개발 비용이 어떻게 쓰였는지 추궁하는 역공에 시달렸을 것입니다.

 

p.39

 

 

p.41~42

 

 

 

p.49

 

 

p.50

배포 전략 중심으로 프로젝트를 계획하지 않으면 손님이 몇 명이나 올지 모르는 채로 디너파티를 여는 것과 같습니다. 돈을 낭비하거나 경험을 망칠 수도 있죠.

 

p.51

ML 아키텍처를 구축할 때는 가능한 한 가장 단순하게 설계하기 위해 노력하세요. 프로젝트의 추론 주기가 1주일인 경우 실시간 스트리밍이 아닌 배치 프로세스를 사용하는 것이 좋습니다. 데이터 볼륨이 메가바이트 단위인 경우, 데이터베이스와 간단한 가상 머신(VM)을 사용할 수도 있습니다. 여러 노드가 달린 아파치 스파크 클러스터까지는 필요 없습니다. 훈련 수행 시간이 몇 시간이 아니라 분 단위로 측정되는 경우 GPU가 아닌 CPU만으로도 충분합니다.

 

복잡한 아키텍처나 플랫폼, 기술을 한번 써보기 위해서 도입하려고 한다면 이미 충분히 복잡한 솔루션에 불필요한 복잡성이 추가될 뿐입니다. 새로운 것이 추가될 때마다 무언가 고장 날 가능성이 높아진다는 것을 잊지 마세요. 그리고 쉽게 해결되지도 않습니다. 솔루션을 안정적으로 일관되게 효과적으로 운영하기 위해서는 기술, 스택 및 아키텍처를 단순하게 유지하는 것이 권장하는 모범 사례입니다. 프로젝트의 시급한 비즈니스 요구 사항을 해결하는 데 딱 필요한 만큼만 있으면 됩니다.

 

p.55

"지난 분기 예산을 살펴보니 이 ML 프로젝트에 분기당 63,750달러(한화로 약 8천만 원)가 들었습니다. 그럼 이 프로젝트로 도대체 얼마를 벌고 있는 걸까요?"

-> 이 질문은 비용이 어느 정도 발생하는 상황에서 받을 수 있는 질문입니다. 프로젝트 비용이 매우 낮아 회사 예산에서 거의 눈에 띄지 않는 수준이라면 이런 질문을 받을 일이 없겠지만, 비용이 많이 든다면...

 

수익 기여도라니... 

 

당황스럽습니다. 

전년 대비 매출을 비교할까요?

손실 지표면 충분한 거 아닌가요?

매출이 늘고 있는데, 그럼 된 거 아닌가요?

프로젝트 계획 단계에서 기여도와 측정 방식에 대해 합의를 도출하지 못하고 모델의 효율성에 대한 철저한 통계 분석이 지속적으로 이뤄지지 않는다면 아무리 훌륭한 솔루션이라도 무용지물이 될 수 있습니다.

 

p.56

모델의 기여도를 정확하게 측정하는 유일한 방법은 A/B 테스트를 수행하고 적절한 통계 모델을 사용하는 것입니다. 모델에 의한 추가 매출이 얼마나 되는지 보여주는 매출 상승률을 추정 오차를 포함해서 계산하는 것입니다. 하지만 이미 모든 고객에게 솔루션이 배포되었기 때문에 A/B 테스트라는 버스는 이미 떠난 후입니다. 팀은 모델의 지속적인 존재를 정당화할 수 있는 기회를 잃었습니다. 이 프로젝트가 당장 중단되지는 않겠지만, 회사가 예산 지출을 줄여야 한다면 분명히 도마 위에 오를 것입니다.

 

이런 경우를 대비해 항상 미리 생각하고 계획하는 것이 좋습니다. 

 

p.65

 

p.66

최신 기법이 정교하지 않은 이유는 매우 간단합니다. 솔루션을 유지 관리해야 하기 때문이죠. 월별이든 매일이든 실시간이든 솔루션과 코드를 디버깅하고, 개선하고, 불일치 문제를 해결하고, 지속적으로 실행해야 합니다. 주어진 솔루션이 정교할수록 장애를 진단하는 데 시간이 오래 걸리고, 문제를 해결하기가 더 어렵고, 추가 기능을 위해 내부 로직을 변경하는 것이 난해합니다.

 

단순한 솔루션을 추구하는 방식(즉, 문제를 해결하는 가장 단순한 설계 및 접근 방식)은 이미 해결한 문제의 솔루션을 유지 관리하는 데 필요한 시간을 단축하는 것과 직결됩니다. 그러면 더 많은 문제를 해결하고 회사에 더 많은 가치를 제공하며, 더 많은 문제를 살펴볼 수 있게 됩니다.

 

흥미로운 최신 알고리듬을 사용하고 싶은 열정이 프로젝트에서 형편없이 발휘된 사례를 여러 번 목격했습니다. 대표적인 예는 이미지 해상도 업스케일링을 위한 GAN 프로젝트로, 12명의 데이터 과학자로 구성된 팀이 10개월이 걸려서야 프로덕션 준비 및 확장 가능한 상태에 도달할 수 있었습니다. 제가 경영진과 대화할 때는 회사가 이탈 모델, 사기 탐지 모델, 수익 예측 모델을 구축하기 위해 컨설턴트를 고용한 상태였습니다. 경영진은 내부 팀이 R&D 프로젝트를 하느라 너무 바쁘기에 중요한 모델링 작업을 외부 컨설턴트에게 맡겨야 한다고 생각했죠. 결국 이 회사와 일한 지 12주 만에 데이터 과학 팀 전체가 해고되었고 회사는 이미지 프로젝트를 포기했습니다.

 

때로는 회사에 엄청난 가치를 가져다주는 기본적인 업무를 수행하는 것이 일자리를 유지하는 데 도움이 됩니다(그렇다고 예측, 이탈, 사기 탐지 모델링이 특별히 흥미로워 보이지 않더라도 간단하다는 의미는 아닙니다).

 

p.67

 


ML 프로젝트를 성공 시키려면 어떻게 해야 할 것인가 ?

 

탐색적 데이터 분석을 잘 활용하고

지도(비지도) 학습. 딥러닝, 컴퓨터 비전 등의 알고리즘을 잘 만들고 검증해야 한다

또한

프로젝트 관리와 컴퓨터 아키텍처에 대한 해박한 지식을 우리는 공부하여야 한다.

나아가 데이터 엔지니어링 기술을 가지고 고도화 활 수 있는 기반 기술에 대한 전문성을 길러야 한다.

그리고 소프트웨어 개발과 테스트에 대한 일련의 과정을 잘 훈련하여 프로젝트의 성공과 안정성에 기여 하여야 한다.

 

이런 내용을 학습하고 경험을 쌓고 전문성을 길러 하나의 프로젝트에 나의 기여도를 ㄷ높일 수 있다고 생각하면 큰 오류를 범하게 된다.

내가 잘 하는 부분에 대해 최선을 다하고, 나아가 내가 좋아 하는 분야에 대해서는 차선으로 학습하고 주변의 지식을 이용하여 간접 경험을 쌓아야 한다.

 

머신러닝 엔지니어링 인 액션” 이 책은

위에서 서술한 내용에 대해 간접적 경험을 제공할 뿐 아니라, 자신이 잘하는 분야에 대해 좀 더 깊이 있는 지식 전달을 위해 매우 정성을 다한 책이라고 생각한다.

 

꼭 머신러닝인가 ? 에 대해 고민해 보고 이 책의 목차를 살펴 내가 잘하는 분야에 대해서 좋은 지식을 얻어 가기 바라며, 이 책을 추천한다.

 

 

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

 

 

 

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

 

목차를 보면서 놀랐다. 

 

내가 봤던 머신러닝 책들 중에서 이런 관점의 책들도 나오는 구나 싶었다.

 

누군가는 짚어줬어야 하고 누군가는 이런 관점으로도 봤어야 하지 않았나 싶었다.

 

학문의 영역과는 동떨어져있지만 결국 누군가는 머신러닝을 통해 상품화를 하고 이를 통해 돈을 벌어야 하기에 

 

그를 위헤 어떻게 상품화를 '잘' 할 수 있을까에 대해 생각하는 책이다.

 

하지만 그렇기 때문에 흥미가 떨어질수도 있다. 

 

머신러닝을 하는 사람들은 당연하게도 머신러닝 본질에 대한 탐구, 또 그것을 응용해서 어떤 문제를 해결하는데에 더 관심이 갖을테니까.

 

이 책은 그러고도 한스텝을 더 가서 어떻게 사람들에게 전달할 것인가에 중점을 두기에

 

관심을 가질 사람이 얼마나 존재할까 싶다

 

책 제목 처럼 머신러닝 엔지니어링에 관한 책.

 

IMG_2716.jpeg

 

실제로 이 책의 저자는 이전부터 많은 일을 해오셨고, 개발 뿐만 아니라, ML, 통계, 데이터 분석 등등 다양한 업무를 해왔기에 하나의 프로젝트에 대해서도 다양한 사항들을 고려하고 그 내용들을 어떻게 해결하는 지에 대해서 많은 경험이 쌓여있음이 느껴진다.

간간히 나오는 개발 코드들은 대부분이 파이썬이지만, 실제로 분산처리를 위한 아파치 스파크에 대한 내용도 잠깐 나오고, 통계모델을 통해서 원시 데이터에 대한 분석 및 전처리 방법 등 다양한 경우의 수와 프로세스에 대해서 상세하게 알려주고 있다.

마치 옆에서 (인강) 선생님이 하나하나 알려주는 듯한 느낌이다.

실제로 이런 시니어나 선배가 계셨었더라면 좀 더 많은 것을 배워갈 수 있지 않을까 싶은 내용들이기도 했다.

Databricks에서 일하시는 것을 느낄 수 있는, MLFlow에 대한 내용과 실제 아파치 스파크와 어떠한 프로세스로 프로젝트를 빌딩하는지에 대해서도 순서도로 깔끔하게 정리되어 있다.

하지만 너무 딥하게 받아들여서 문제인 것인지는 모르겠지만, 스파크에 대한 지식이 없기에 단박에 이해는 되지 않았다.

그 외에도 9장에서는 "테스트 가능하고 읽기 쉬운 코드 작성"처럼 기본적으로 파이썬을 활용해서 코드를 어떻게 작성해야 할지에 대한 라인별로 설명이 존재한다.

실제로 336페이지 ~ 341페이지에 걸쳐서 하나의 스크립트가 나오고 클래스에 대한 메서드 설명들 뿐만 아니라 메서드에서 사용되는 인자들에 대해서까지 디테일하게 설명해주고 있다.

이후에는 유닛 테스트, 파이썬 코드에서의 네이밍 규칙 및 구조, 캡슐화 및 모듈화, 에러 잡는 try/catch

ML 서비스에선 빼먹을 수 없는 드리프트 및 모니터링, 로깅 등 솔직히 이번 리뷰기간 동안에 받은 이 책을 반의 반의 반도 받아들이지 못한 것 같다.

자세한 리뷰는 블로그를 참고해주세요

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


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


 

머신러닝 엔지니어링 인 액션

 

 

 

이번에 리뷰할 도서는 "머신러닝 엔지니어링 인 액션" 입니다.

 

처음에 도서를 읽지 않고, 제목과 표지를 통한 내용을 유추했을 때는 이전에 읽었던 도서인

길벗 출판사의 "캐글 메달리스트가 알려주는 캐글 노하우" 의 도서에다가

약간의 세부적인 내용이 추가된 도서로 생각했습니다.

 

하지만 읽고난 뒤에 위의 생각은 완전히 잘못된 것을 느꼈습니다.

 

이전에 읽은 도서인 "AutoML 인 액션"과 마찬가지로 상당한 만듦새의 도서였습니다.

 

도서의 특징으로는

1. 머신러닝 프로젝트의 0부터 1까지를 담고 있다.

2. 퍼셉트론, 신경망과 같은 이론을 알려주는 도서가 아니다.

 

크게 위의 2개가 될 것 같습니다.

 

1번의 의미는..

ML 프로젝트를 시작하는 목표 수립, 방향 설정, 데이터 핸들링부터 평가와 프로덕션 개발까지 엄청난 양과 질의 내용을 담고 있다는 것입니다.

도서의 목차를 읽어보고, 도서를 읽어보았다면 드는 생각은 하나의 강의와 같은 느낌이 듭니다.

과제나 연구 등 프로젝트를 몇 차례 진행해본 사람이라면 읽었을 때 본인의 역량 강화와 자기 개발을 위한 최고의 도서가 될 것 같습니다.

 

2번의 의미는..

사실상 1번과 연관이 있습니다.

데이터 핸들링에 대한 부분과 방향 설정이라던가 하는 부분을 보았을때 바로 생각나는 것은 바로 "Pandas를 사용하는 방법이 나와있는가?", 라이브러리 사용법이 있나? 와 같은 것일겁니다.

하지만 그것은 아닙니다.

데이터 핸들링이라고 제가 표현했지만 분석 방법(?)이 더 가까운 표현 같습니다.

데이터에 평활화를 적용하고, 시그마를 적용하고 이러한 내용들이 들어가있으므로 라이브러리 사용법, 스킬에 대한 내용은 아닙니다.

 

위의 내용들을 보았을때 이 책이 누구한테 필요한 것인가 라는 생각이 들 수 있습니다.

 

확실히 초보를 위한 도서는 아닙니다. 초보분은 읽는데 시간도 오래 걸리고 멘붕이 오기 딱 좋은 도서 같습니다.

(바로 책 덮고 전공을 바꾸러 가지 않을까요^^?)

 

초보의 단계를 지나신 분들이라면 꼭 읽어봐야 하는 도서는 맞습니다.

 

모두가 프로젝트의 리더나 책임자는 아니겠지만, 전반적인 내용과 진행 과정 등의 내용은 알아야 하기 때문에

이 도서는 초보가 아닌 모든 인공지능 분야의 학생, 연구자, 개발자라면 읽어보는 것을 추천드립니다.

 

IT 분야에서 중급서는 인 액션 과 이펙티브 시리즈인데요.

이번 소개할 책은 머신러닝 인 액션 책입니다.

 

기존의 인 액션 책들은 언어에 대해 하지말아야 할 것을 자세히 알려줬다면 머신러닝 인 액션은 어떻게 업무를 다룰지 정의에 집중 되어져 있습니다.

 

그래서 참 매력적인게 언어만 단순히 안다고해서 실무를 이해하기 어렵기 때문이죠. 

책을 읽고 가장 기억에 남는 2가지를 알려 드리도록 하겠습니다.

 

23122500002.jpg

 

 

1) ML엔지니어링 영역

아직까지는 ML엔지니어링 포지션 딱 정해진 상태는 아닙니다.

어느회사는 서버 개발자와 데브옵스가 업무를 하는 경우가 있고 어느 조직은 데이터 분석가들이 함께 하는 경우도 있습니다.

이 책에서는 전반적으로 다 두루 잘하는 사람이 하는 포지션이라고 생각이 듭니다.

이 정도로 업무를 잘 한다면 경력이 어느정도 있거나 사업 모델을 정확하게 이해하고 업무를 잘 관리 할 수 있어야 된다고 봅니다.

 

23122500003.jpg

 

 

2) Print 대신 로깅 하자

처음 개발을 배우는 개발자들이 주로 하는 역할은 변수에 값이 무엇이 있는지 확인하기 위해 print 함수를 쓰는 경우가 많습니다. 

하지만 실무에서는 디버깅 툴을 쓰거나 따로 로깅을 할 수 있는 라이브러리가 있어서 그걸 직접쓰기 때문에 print 함수를 쓰는 경우가 거의 없습니다.

이 책에서도 print 대신 로깅을 하라고 강조하는 것처럼 정확하게 로깅하는 방법을 익히고 사용해보는 것을 추천해드립니다. 

 

23122500001.jpg

 

 

Ps

도메인에 대한 설명이 되게 잘된 책입니다. 

단순히 머신러닝에 대한 기술적인 관점 보다는 비즈니스에 대한 관점으로 서술되어져 있어서 기술적 지식은 있지만 어떻게 활용할지 모르는 분들이 이 책을 본다면 도움이 많이 될 것 입니다.

또한 개발자 뿐만아니라 기업의 임원이나 기획자, 마케터 등 다양한 직군들이 머신러닝의 활용도에 궁금하다면 이 책을 통해 실무적 베이스가 접근할 수 있습니다. 

이 책은 성공적인 엔지니어링 기법에 관한 책이다. 책에서 소개하는 상당히 많은 부분은 머신러닝뿐만 아니라 모든 프로젝트에 관련되어 있다. 개인적인 느낌은 머신러닝을 예시로 든 엔지니어링 기법에 관한 책이 아닐까?

 

 

 

'엔지니어링활동'이란 엔지니어링산업 진흥법 제2조(정의) 1항(정의)을 보면 다음과 같이 정의한다.

1. “엔지니어링활동”이란 과학기술의 지식을 응용하여 수행하는 사업이나 시설물에 관한 다음 각 목의 활동을 말한다.

가. 연구, 기획, 타당성 조사, 설계, 분석, 계약, 구매, 조달, 시험, 감리, 시험운전, 평가, 검사, 안전성 검토, 관리, 매뉴얼 작성, 자문, 지도, 유지 또는 보수

 

법제처, 엔지니어링산업 진흥법 제2조 1항

 

 

책에서 설명하는 내용과 거의 정확히 맞다. 계약, 구매, 조달 부분만 빼고

ML 프로젝트의 연구, 기획, 타당성 조사, 설계, 분석, 실험, 평가, 검사, 관리, 유지 관리에 관한 모든 내용을 다루고 있다. 프로젝트를 성공으로 이끄는 방법을 저자의 실패담이나 경험담을 비추어 쉽게 설명한다. 저자가 강조하는 것은 저자와 같은 실수를 피할 수 있도록 도와주는 지침서로 활용하라는 것이다.

 

최근 시장에서 가장 많이 요구되는 프로젝트는 단연코 ML 프로젝트이다.

몇년 전에 ML 프로젝트를 가까이서 볼 기회가 있었는데(참여는 하지 않고), 이 책을 꼭 추천드리고 싶다.

저자의 말처럼 발주한 ML 프로덕트가 종국에는 POC 형태로 가능성만 본 적이 많았다. 분명 이 책에 제시한 함정만 피하더라도 대부분이 성공하지 않았을까? 조심스레 예측해본다.

 

대상 독자는 머신러닝과 관련된 업무를 하는 사람은 모두 봐야한다고 생각한다. 머신러닝으로 무언가를 구축할 때 필요한 모든 것이 있다. 봐야될 시기는 다를 수 있지만, 되도록 빠른 시간내에 보기를 추천드린다. 입문자나 주니어는 의심을 하지 말고 꼭 읽기 바란다. 시니어는 읽어보면 저절로 아실 것이다.

성공하는 ML 프로젝트의 로드맵을 제시하는 경험자의 소중한 가이드북이다.

 

책의 구성은 전체 3개 파트와 부록으로 구성되어 있는데, 'PART 1의 머신러닝 엔지니어링 소개'는 총 8개의 장으로 ML 프로젝트를 성공적으로 수행하기에 앞서 ML 엔지니어링 활동에 필요한 개념과 구성요소를 확인하고 각 단계별 효과적은 접근방법을 설명한다. 'PART 2의 프로덕션 준비: 유지 관리 가능한 ML 만들기'는 총 5개의 장으로 테스트 가능하고 읽기 쉬운 코드를 작성하기 위한 방법을 시작으로 ML 프로젝트 진행 과정에 필요한 내용을 설명한다. 'PART 3의 프로덕션 머신러닝 코드 개발'은 ML 프로덕션의 배포와 재훈련, 모니터링이 가능하고, 쉽게 업데이트하는 방법을 주제로 섧명하면서 마무리한다.

마지막 부록에서는 빅오(계산복잡도)로 런타임 성능 확인과 개선 방안을 알아보고, 효과적인 개발 환경 설정 방법을 알려준다. (<- 부록까지 챙겨보자)

 

PART 1의 CHAPTER 1은 ML 프로젝트의 개발 로드맵과 ML 엔지니어링 핵심 원칙, ML 엔지니어링의 목표를 알아보고

CHAPTER 2에서는 데이터 과학자와 ML 엔지니어의 차이점 과 ML 프로젝트 작업에 애자일 방법론을 적용하는법, 데브옵스와 ML옵스를 비교 설명한다.

CHAPTER 3은 ML 프로젝트를 위한 효과적인 계획 수립 전략과 범위에 따른 평가 방법을 살펴보고

CHAPTER 4에서는 계획 수립를 구체화하기 위한 수단으로 프로젝트와 관련있는 조직과의 효과적인 의사소통과 프로젝트 규칙을 정하는 방법을 설명한다.

CHAPTER 5는 ML 프로젝트의 연구 단계 세부 사항을 알아 보고, POC등의 솔루션 실험 프로세스와 방법을 알아보고

CHAPTER 6에서는 ML 프로젝트 테스트 방법과 프로토타입 평가 방법에 관해 살펴본다.

CHAPTER 7은 프로토타입를 MVP로 전환하기 위한 하이퍼파라미터 튜닝 방법, 자동화 방법과 최적화 성능 개선을 위한 실행방법에 관해 설명하고

CHAPTER 8에서는 확장 가능한 솔루션을 위한 ML 코드, 모델 버전관리, 로그 관리등의 도구와 방법을 살펴본다.

PART 2의 CHAPTER 9는 모놀리식 스크립트 코딩 패턴의 단점을 보완하고 ML 프로젝트에 필요한 추상화 방법, 모듈화, TDD를 활용하여 테스트 가능한 설계 구현 방법을 설명하고

CHAPTER 10에서는 ML 코드의 문제를 식별하고 다양한 해결 방법을 제시한다.

CHAPTER 11은 모델의 기여도 중요성과 측정 방법을 설명하고

CHAPTER 12에서는 다양한 드리프트(성능 저하)를 식별하고, 모니터링 방법과 대처 방안에 대해서 논의한다.

CHAPTER 13은 리팩토링과 단순한 코드의 이점에 대해서 설명하고, 신기술에 관해서 알아본다.

PART 3의 CHAPTER 14는 모델에 사용하기 전 효과적인 피처 데이터 검증 및 모니터링 방법과 ML 프로젝트를 위한 표준 코드 아키텍처 정의 방법에 관하 설명하고

CHAPTER 15에서는 예측 실패에 대한 처리 방법과 품질 보증 방안, 설명 가능한 AI(XAI)에 관해 살펴본다.

마지막 CHAPTER 16은 모델 레지스트리를 사용하여 모델을 관리하고, 피처 스토어 및 효과적인 서빙 전략을 알아 본다.

 

 

 

각 장은 먼저 '이 장의 내용'에서 앞으로 설명하게 될 주제를 제시하고, 이어서 각 주제에 관하여 배경과 개념을 다양한 그림과 표, 예제(+코드 해설)로써 쉽게 설명한다. 마지막에는 '요약'으로 마무리한다.

 

 

ML코드와이어프레임.jpg

 

 

녹색 계통의 책의 내용 디자인은 읽기에 편안했으며, 코드 블럭과 설명도 읽기 쉬웠다. 표의 사용을 줄이고 순서도나 그래프등의 그림으로 설명한 부분이 특히 이해하기가 쉬웠으며, NOTE_, WARNING_, 저자의 추가 설명 부분도 이해하는데 도움이 많이 되었다.

그리고 번역하시느라 수고하신 역자에게도 감사의 말씀을 드린다.

 

다만, 표지가 좀 약하지 않나 생각이 든다. 책장에서 자주 펴봐야할 것 같아서 ㅎㅎ

 

692페이지의 분량의 엄청난 텍스트임에도 불구하고, 전혀 지루하지 않았으며, 수집 개의 회사에서 수 많은 ML 프로젝트를 이끈 저자의 경험을 비추어볼 때 아직 할 말이 많이 남아 있는 것처럼 보였다.

그럼에도, 책에서 다루는 내용은 ML 프로젝트의 모든 것이라고 해도 부족함이 없을듯 하다.

 

다른 책에 비해, 모듈화와 리펙토링, 로깅등의 코드에 진심인 저자의 좋은 소프트웨어 엔지니어링 원칙으로 마무리한다. 읽어주셔서 감사합니다. 

 

  

컴퓨터가 이해할 수 있는 코드는 누구나 작성할 수 있습니다.

하지만 좋은 프로그래머는 사람이 이해할 수 있는 코드를 작성합니다.

 

9장 ML 모듈화: 테스트 가능하고 읽기 쉬운 코드 작성, p321

 

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

 

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

들어가며

요즘 AI 기술이 주목받고 있다. 어떤 분야에서든 AI라는 키워드가 없으면 새로워 보이지 않는 것 같다. 특히 ChatGPT를 중심으로 한 생성형 AI를 활용한 다양한 서비스가 등장하고 있다. 전에는 난해한 수학 수식을 다루며 연구실에서 일하는 것처럼 생각되던 AI 엔지니어 직군은 이제는 트렌디한 IT 회사에서 흔히 볼 수 있는 직군으로 자리 잡았다. 이로 인해 일반 개발자들도 AI 엔지니어들과 함께 어떤 모델을 채택할지, 어떤 방법론을 선택하여 개발할지 함께 고민하는 것이 일상이 되었다. AI 엔지니어들은 주로 어떤 일을 수행하며, 어떤 방식으로 개발을 하는지에 대한 이해가 필요한 시대가 된 것이다. 과연 AI 엔지니어들은 어떤 일을 하고, 어떤 방식으로 개발을 해야할까? 웹 개발자로서 AI 엔지니어들이 하는 일을 잘 이해할 수 있을까?

이 책의 주요 내용

이 책의 주된 내용은 AI엔지니어로서 겪어야 할 주요 개발 프로세스를 주제로, 그 개념과 좋은 베스트프렉티스를 정리한 책이다. AI 엔지니어로서 알아야 할 기술적인 내용도 일부 포함되어 있지만, 많은 내용이 포커스가 ML엔지니어링 프로세스 자체에 맞춰져 있다.

이 책은 ‘머신러닝 인 액션’ 아닌 ‘머신러닝 엔지니어링 인 액션’이다. ML 기술 그 자체를 이해하기 위한 책이 아니다. 이 점을 유의하자.

아래는 이 책의 주된 내용을 정리한 것이다.

  • Part1은 머신러닝 엔지니어링이 무엇인지, ML 개발 프로세스는 어떻게 되는지 소개한다. 그리고 머신러닝 엔지니어링 팀(MLOps)를 운영할때 유용한 여러가지 제안을 제공한다.
  • Part2는 실제 ML프로덕션을 개발할 때 알아야 할 유용한 지식을 제공한다. 모델 개발부터 프로덕션 배포, 유지보수까지 실제 필드에서 겪을만할 여러가지 시행착오를 소개한다
  • Part3는 ML프로덕션이 코드 작성부터 QA, 그 이후 시점까지 알아야 할 유용한 지식을 제공한다. ML프로덕션을 테스트 할 수 있는 유용한 방법을 소개한다.

이 책을 읽으면 좋을 사람

우선 이 책은 어느정도 AI 엔지니어링에 이해도가 있는 사람이 읽어야 할 책이다. 실제 AI 개발을 하는 사람이라고 전제하고 작성된 책이기 때문에, ML 개발에 이해도가 아예 없는 사람이라면 얻어갈 것이 많이 없을것이다.

  • 현재 스타트업에서 혼자 개발을 하고 있는 고독한 AI 개발자
    • 주니어를 막 벗어난 3~5년차 중니어 개발자가 읽으면 좋을듯 하다.
    • 현재 우리 회사에서 진행중인 AI 개발 프로세스는 어떠한가 객관적으로 고찰해 볼 수 있다.
    • 혹은 우리 회사의 ML 개발 프로세스를 개선시키는데 많은 아이디어를 얻을 수 있다.
    • 읽은 후에는 분명 회고때 할 말이 많아질 것이다.
  • 갑작스레 AI 엔지니어를 맡은 테크팀의 팀장
    • AI 엔지니어는 소규모로 채용하는 경우가 많고, 특히 AI 기술을 처음 도입하는 회사라면 어느정도 팀빌딩이 될 때 까지 다른 직군의 테크리더 팀장이 AI 엔지니어를 맡는 경우가 있다.
    • 이 경우 팀장이 ML 개발 경험이 없다면 AI 엔지니어와 어떻게 협업해야 하는지 잘 모르는 케이스가 많다.
    • 이럴때 팀장이 읽으면 AI 엔지니어와 함께 협업하는 프로세스를 구축하는데 많은 도움이 될 수 있다.
  • AI 엔지니어가 어떻게 일하는 지 궁금한 개발자
    • 회사에 AI 엔지니어가 있지만, 협업 경험이 적다면 이들을 이해하기에 힘든 경우가 있다.
    • 혹은 일반적인 개발 프로세스와 동일할 것이라고 끼워 맞춰 생각하게 될 수도 있다.
    • AI 개발 프로세는 일반 개발과 어떻게 다른지, AI 개발자는 어떤 프로세스로 일을 하는지 이해하는데 도움이 될 수 있다.

나가며

AI 기술의 발전세는 점점 커지고 있다. 어떤 사람들은 이미 AI가 보편적인 기술이 되었다고 이야기한다. 이런 시대에서 테크 기업이라면 AI 기술을 활용할 기회가 더욱 흔해질것이다. 여기서 AI 엔지니어들을 이해하고, AI 엔지니어와 협업하는 좋은 방법을 알아두는 것은 중요하다. 그들을 잘 이해하고, 좋은 개발 프로세스를 구축하는 것이 좋은 제품을 만드는 데 키가 될 수 있다. 만약 본인 회사에 AI 엔지니어가 있고, 어떻게 협업해야 하는지 고민하고 있다면 이 책을 읽어보자. 많은 도움이 될 것이다.

MLENGINACTION.jpg

 

"머신러닝 인 액션"에는 성공하는 머신러닝 프로젝트들의 원칙 및 노하우들이 잘 정리되어 있습니다.

해결하려고 하는 문제가 무엇인지 명확하게 설정하고 서로의 역할을 정확하게 정의하는 방법들을 먼저 친절하게 설명하고 있습니다.

첫 사이클이 지난 후 유지 보수나 다른 프로젝트에 재사용 할 수 있게 설계하는 원칙들을 자세하게 정리하고 있습니다.

다양한 머신러닝 프로젝트 사례들과 순서도들을 활용해 독자들이 잘 이해할 수 있도록 구성이 잘 되어 있습니다.

머신러닝 프로젝트를 진행해 본 경험이 없어 이해가 어려운 부분도 많았지만, 경험이 쌓여가면서 더 많은 도움이 될 책이라고 생각합니다.

머신러닝 프로젝트 진행을 앞두고 있는 분들께서 보시면 큰 도움이 될 책이라고 생각합니다.

 

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

이 책의 소개를 보면 '성공하는 머신러닝 프로젝트의 비밀', '순서도와 그림으로 살펴보는 머신러닝 프로젝트 A to Z'라는 문장을 볼 수 있다.
머신러닝 프로젝트의 성공을 이끌기 위한 체계적인 접근 방식을 제공하며, 기본 개념부터 심화 주제까지 폭넓게 다루는데
그 과정에서 굉장히 많은 순서도가 제공된다. 이를 통해 사고의 과정을 체계적으로 정립하는 과정을 알려주기에
책을 잘 설명하는 매우 적합한 소개글이라는 생각이 들었다.

머신러닝 엔지니어링을 접해본 적이 없는 사람도 이 책을 따라 차근차근 따라가다보면
머신러닝 프로젝트를 계획 및 설계하는 것부터 개발, 배포에 이르기까지의 전 과정을 이해해볼 수 있을 것이다.
'리뷰'라는 과정 하나에 있어서도 146쪽의 '개발 스프린트 리뷰', 148쪽의 '사전 프로덕션 리뷰' 등 실무와 매우 맞닿아있도록 책이 구성되어 있음을 알 수 있다.
즉, 머신러닝 프로젝트의 모든 단계에 대해 굉장히 자세하고 체계적으로 설명한다.
각각의 단계에 있어 필요한 전략, 기술, 지침 등은 특히 ML 엔지니어링을 처음 해보는 사람이라면 더욱 유용하게 다가올 것 같다.
또한 387쪽, 389쪽과 같이 본문 자체의 내용과 관련이 있으면서도 별도의 섹션으로 구성되어 있는 부분들이 큰 도움이 되었다.
놓치기 쉽지만 꼭 짚고 넘어가야하는 부분들에 대해 옆에서 시니어 엔지니어가 조언을 해주는 것과 같은 느낌이 들어서 이 섹션들이 참 좋았다.

글의 첫 부분에서도 언급했던 것처럼 이 책에는 상당히 다양한 순서도들이 등장한다.
순서도는 순서가 있는 많은 개념을 짜임새 있게 구성하고, 각각의 개념을 파악하고 확인하는데에 있어 큰 도움이 된다.
그래서 이 책이 머신러닝 엔지니어링의 계획부터 배포까지 아주 넓은 분야를 다루고 있음에도
자세하면서도 실무와 동떨어지지 않는 책으로 만들어질 수 있었던 것 같다.
단순한 이론 설명에 그치지 않고, 실제 머신러닝 프로젝트를 계획, 설계, 개발 및 배포하는 전 과정을 자세히 다루면서 독자들이 전체 프로세스를 명확히 이해할 수 있도록 돕는다.

구체적인 사례와 함께 실용적인 지침을 함꼐 제공하는 이 책은
머신러닝 엔지니어링에 관심 있는 초보자부터 경험 있는 전문가까지 모든 수준의 독자들에게 도움이 될 것이라고 생각한다.

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

 

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

 

머신러닝 엔지니어링 인 액션은 벤 윌슨이 쓴 머신러닝 엔지니어링 입문서로서 머신러닝 프로젝트를 성공적으로 수행하기 위한 엔지니어링 기술과 방법론을 다루고 있습니다.

 

이 책의 가장 큰 장점은 실무적인 내용을 다루고 있다는 것으로 본 도서의 저자는 머신러닝 엔지니어로 활동하고 있으며, 본 도서를 통하여 자신의 경험을 바탕으로 한 실무적인 내용을 전달하려고 노력하고 있습니다.

 

본 도서의 내용은 다음과 같이 크게 5개 챕터로 구성되어 있습니다.

  • 챕터 1 : 기초에서는 머신러닝 엔지니어링의 개념, 머신러닝 프로젝트의 프로세스, 그리고 데이터 엔지니어링의 기본 개념에 대해 설명
  • 챕터 2 : 데이터 수집 및 전처리에서는 데이터 수집, 정제, 변환, 전처리 방법에 대해 설명
  • 챕터 3: 모델링 및 평가에서는 머신러닝 모델의 개발, 평가, 최적화 방법에 대해 설명
  • 챕터 4 : 배포 및 운영에서는 머신러닝 모델의 배포, 운영, 모니터링 방법에 대해 설명
  • 챕터 5 : DevOps에서는 머신러닝 프로젝트의 DevOps를 위한 방법론에 대해 설명

 

본 도서의 내용 전개는 다음과 같습니다.

  • 이론에서는 해당 주제에 대한 이론을 설명합니다.
  • 실습에서는 이론을 바탕으로 실습 코드를 제공합니다.
  • 실전에서는 실습 코드를 바탕으로 실제 데이터를 사용하여 머신러닝 프로젝트를 진행하는 방법을 설명합니다.

 

이러한 구성을 통해 독자는 머신러닝 엔지니어링의 기본 개념을 이해하고, 이를 바탕으로 데이터 수집 및 전처리, 모델링 및 평가, 배포 및 운영, DevOps 등 머신러닝 프로젝트의 전 과정을 수행하는 방법을 익힐 수 있습니다.

 

따라서 본 도서는 머신러닝 엔지니어링에 대한 기초 지식을 갖추고 싶은 사람, 그리고 머신러닝 프로젝트를 진행하고 싶은 사람에게 추천하는 바 입니다.

## 총평

 

이 책은 다른 책들과 다르게 머신 러닝 기술에 대해 이야기하기 보다는 머신 러닝 프로젝트가 어떤 식으로 흘러가는지 알려줍니다. 

 

프로젝트 계획을 수립하고 예산에 맞는 프로젝트 설정, 자원 최소화, 유지 관리 등 소프트웨어공학측면에서 어떻게 해야 머신 러닝 프로젝트를 원활하고 올바르게 수행할 수 있는지에 대해 다룹니다. 책을 읽으면서 가장 와닿았던 부분은 역시 의사소통과 규칙을 정하는 부분이었습니다. 

 

책의 난이도는 소프트웨어공학을 배웠다면 좀 더 쉽게 이해할 수 있을 것이라고 생각되고 그림이 적절히 들어가 있으며 챕터 끝에 요약을 해주는 부분이 있어서 정리하는데 도움이 잘 되었습니다.

 

 

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

	

최근 업계에서 다루는 모델들의 학습이나 관리의 정형화에 대한 중요성이 부각되다보니 새롭게 등장한 주제 중 하나가 MLOps 라는 것이다. 물론 개발쪽에서 일하는 사람이라면 기존에는 DevOps라는 용어로 불리고 있다가, 이를 머신러닝 분야로 접근한 주제가 MLOps인 것으로 알고 있다. 관련 책들이 이제야 많이 나오고 있지만, 딱히 번역본으로는 소개되지 않고 있다가 그래도 출판사쪽에서 관련 서적이 나오고 있기에 최근에 나온 서적 중 한권에 대해서 소개해보고자 한다.

 

머신러닝 엔지니어링 인 액션

 

이 책은 Manning 출판사에서 시리즈 중 하나인 "인 액션" 중 Machine Learning Engineering in Action의 번역본이다. 사실 사실 다른 주제의 인 액션의 책들도 비슷한 성격을 띄지만 거의 대부분 책들이 예제도 많이 담겨져 있고, 실습 지향적인 성격이 매우 강하다. 이 책도 역시 많은 실습 코드와 관련 설명이 담겨지면서 분량이 여타 책에 비하면 700여 페이지에 가까울 정도로 많다. (물론 책의 분량에 비례한 만큼 책값도 역시 조금 세다.)

분량만큼이나 책에서 다루는 내용이나 각 주제별로 담고 있는 내용이 제법 많다. 그래서 단기간에 MLOps에 대해서 파악하려는 사람보다는 현재 연구하는 주제를 어떻게 하면 실무로 적용할 수 있을까 고민하고 차근차근 실천해보려는 사람에게 좋은 주제를 담고 있다. 특히 3부의 주제로 담고 있는 프로덕션 머신러닝 코드 개발 부분은 정말로 실용적으로 머신러닝 기술을 접목시켜보고자 하는 사람들에게 도움이 될만한 내용이 소개되어 있다. 특히 개인적인 입장에서도 현업에서 머신러닝 기술을 양산에 적용하고 반영한다는 것이 학계에서 새로운 기술을 개발하는 것 만큼이나 어렵다는 것을 많이 느끼고, 또 이런 MLOps에 대한 필요성도 절실히 느끼는 입장에서는 해당 내용이 다음의 프로젝트에서는 이런 것을 반영해보면 좋겠다는 생각이 들었다. 

 아 그리고 이 책의 특징 중 하나는 플로우차트가 "정말" 많다. 아무래도 다양한 사용 케이스나 MLOps에서 소개하는 프로세스를 도식화하다 보니 여타 다른 책들에 비하면 플로우차트가 많이 나오게 된거 같다. (나도 읽으면서 나는 어디에 속하나 하나씩 넣어보면서 읽게 된거 같다.) 그만큼 책의 내용이 그림으로 잘 표현되어 있고, 그만큼 MLOps의 유즈케이스에 대해서 잘 소개되어 있는 것 같았다. 사실 책의 주제가 어떤 기술이라기 보다는 프로세스의 이해에 다루는 성격이 큰편이라 이론적인 내용이 많이 다뤄질 줄 알았는데, 생각보다 시각화를 위한 예제 코드들이 많이 담겨져 있다. 역시 이 부분도 뭔가 의사 결정을 위한 정보를 제공하는데 있어 도움이 될 듯 싶다.

개인적으로 최근에 읽은 MLOps 책 중 가장 실용적이면서 읽을만한 내용들이 많이 담긴 "풍족한" 책이었다.

 

		(해당 포스트에서 소개하고 있는 "머신러닝 엔지니어링 인 액션" 책은 한빛 미디어로부터 제공받았음을 알려드립니다.)
	

출처: https://talkingaboutme.tistory.com/entry/Book-Machine-Learning-Engineering-in-Action [자신에 대한 고찰:티스토리]

~ 인 액션 시리즈는 믿고 보는 듯하다!

	

 

 

 

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

머신러닝 엔지니어링 인 액션 도서는 크게 세 부분으로 구성되어있다. 그리고 각 부는 머신러닝 프로젝트에 적용되는 마일스톤을 다룬다. 

 

'무엇을 해결하려고 하는가?'에 대한 초기 범위 설정 단계부터 '이 솔루션을 앞으로 몇 년간 어떻게 유지 관리할 것인가?'에 대한 마지막 단계까지, 프로젝트를 진행하면서 시기별로 고려하게 되는 주제들에 대해 논리적으로 동일한 순서로 살펴본다.  

 

 

  1. 주로 머신러닝 프로젝트의 관리 측면에 대해 팀장, 매니저, 프로젝트 리더의 관점으로 다룬다. 솔루션 구축에 따르는 함정에 빠지지 않도록 범위 설정, 실험, 프로토타이핑에 대한 청사진을 제시하고, 포괄적인 피드백을 전달한다.
  2. 머신러닝 프로젝트의 개발 프로세스를 다룬다. 머신러닝 솔루션 개발에 대한 좋은 예시와 나쁜 예시를 비교해가며 머신러닝 솔루션을 빌드하고 튜닝하는 방법, 그리고 로깅과 평가를 하는 검증된 방법을 안내해 가장 간단하고 유지 관리가 쉬운 코드를 만들 수 있도록 한다.
  3. 프로젝트의 프로덕션 배포, 재훈련, 모니터링 및 기여도와 관련된 고려 사항을 다룬다. A/B 테스트와 피처 스토어, 재훈련 시스템에 대한 예제외 함께 시스템 구축과 아키텍쳐를 제공하며, 이를 통해 비즈니스 문제를 머신러닝으로 해결하는 데 있어 최소한의 복잡성을 가지는 솔루션을 구축할 수 있다.

 

 

 

 

장마다 제일 처음에 해당 장의 대한 내용을 요약해서 보여주고, 코드와 많은 그림들로 독자의 이해를 돕고 있다. 

머신러닝 프로젝트를 계획하고 연구하는 방법부터 머신러닝 코드 안에서도 클린 코드를 챙길 수 있도록 도와준다. 

 

파이썬 문법을 배웠고 머신러닝을 사용한 멋진 프로젝트를 만들어 보고 싶은 분들에게 추천하는 도서이다. 


내용

프로젝트를 하면서 머신러닝에 도입하는 사람들이 많다. 당장의 공모전과 경진대회를 보더라도 그러하다. 근데, 이 머신러닝 프로젝트를 하려면 어떻게 계획을 짜야하는지 모르는 사람이 많다. 이 책에서는 그런 해결방법들을 알려준다. 뿐만 아니라, 머신러닝을 배포한다고 했는데, 이 모델을 유지보수 하는 것도 필수다. 어떻게 유지보수해야하는 건지도 알려준다.

반려견 사요 수요량 예측 프로젝트가 예제에 포함되어 있는데 실제로 해보니 손에 잡히는 느낌이 들었다. 새로 배우는 지식이 하나둘씩 쌓이니 자신감도 솟구쳤고, 흥미로웠다. 책 중간중간에 실무에서 일어나는 일과 평소 많이 궁금해하는 내용을 QnA 형식으로 만들었다.

총평

책이 두껍다. 노트북이랑 이 책을 가방에 넣고 다니면 어깨가 천근만근 무겁다.. 근데 이 책이 좋아서 참는다.!

번역은 살짝 어색하지만, 읽는데 크게 방해되지 않는다.

 
 

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

머신러닝 엔지니어링 인 액션

머신러닝 엔지니어링이 무슨 뜻인가? 이 책을 읽기 전까지는 머신러닝 모델을 만들고 배포하는 것만 생각했다. 그 외에 더 많은 것들이 있다.

	

인공지능 시대에 살고 있어 AI 하면 바로 인공지능을 떠올리게 합니다.

그리고 AI 인공지능 프로그램 중에서 머신러닝은 요즘 가장 핫한 이슈 가운데 하나이기도 합니다.

머신러닝 엔지니어링 인 액션 책은 머신러닝 엔지니어링 개념부터 프로덕션까지 성공적인 머신러닝 프로젝트 구축하기 위한 가이드를 제공해 주는 책입니다.

일단 저자가 수많은 시행착오를 겪으면서 터득한 내용들을 중심으로 실어 놓았기 때문에 현장에서 인공지능을 다루는 머신러닝 엔지니어, 데이터 과학자, 소프트웨어 아키텍트 등 머신러닝 프로젝트를 계획하시는 분들에게 추천되는 책인데요.

벤 윌슨은 반도체 공정 엔지니어로 ML 프레임워크 코드를 빌드 한 머신러닝 엔지니어입니다.

머신러닝 시스템을 구축하는 것은 결코 쉽지 않습니다.

모델 성능 외에도 고려해야 할 부분들이 많은데요.

이 책 머신러닝 엔지니어링에서는 바로 이런 부분에 대해 설명해 주고 있습니다.

자원 및 비용 관리 : 대규모 모델 훈련 및 배포에는 컴퓨팅 자원과 비용이 많이 들어갑니다. 자원을 효율적으로 관리하고 한정된 예산 안에서 ML 시스템을 구축해야 합니다.

데이터 수집 및 정제 : ML 모델에는 종종 정제된 대용량 데이터가 필요합니다. 데이터 수집 및 전처리에 많은 인력과 노력이 필요합니다.

보안 및 규정 준수 : 데이터 및 보안 문제와 관련해서 고려해야 할 사람이 많으며 특히 민감한 정보를 다루는 모델의 보안 및 규정 준수를 관리하는 것은 매우 어려운 과제입니다.

모델 품질 관리 : 드리프트에 따른 모델의 성능 및 품질을 지속해서 모니터링하고 개선하려면 성능 저하, 편향, 오류 등을 관리하고 수정해야 합니다.

문서화 및 협업 : 모델과 데이터에 대한 문서화를 유지하고 다양한 이해관계자와 협력해야 합니다.

 
 

이 책은 ML에 관심 있는 분들을 위한 책입니다.

ML 엔지니어만을 위한 어려운 내용도 아니고 일반인만을 위한 개략적인 내용도 아닙니다.

이 책의 목표는 ML을 사용해 비즈니스 문제를 해결하는 과정에 프로젝트 참여자들이 모두 쉽게 접근할 수 있도록 하는 것입니다.

 

ML 엔지니어의 소프트웨어 개발 역량은 단지 모듈화된 코드를 설계하고, 단위 테스트를 구현할 수 있는 정도의 수준만 갖추면 충분합니다. 그리고 모델 개발에 필요한 피처 데이터 셋을 만들 수 있는 정도의 데이터 엔지니어링 기술만 있어도 됩니다. 조금 더 나아가 그들의 연구에 필요한 도표나 차트를 만들 수 있는 정도의 시각화 기술까지 있다면 더할 나위 없겠죠.

파트 1에서는 ML을 사용해 문제를 해결하는 데 가장 위험 요소가 적은 설루션을 정의하기 위해서는 어떤 평가 기준이 필요하고 계획하고 검증해야 하는지 청사진을 살펴봅니다. 팀장, 매니저, 프로젝트 리더 관점에서 ML 프로젝트의 관리 측면을 살펴보고, 설루션 구축 시 빠지기 쉬운 함정을 피할 수 있도록 범위 설정, 실험, 프로토 타이핑에 대한 피드백이 포함됩니다.

 

ML 엔지니어는 실제 문제 해결에 집중하면서 응용 ML 프로젝트가 효율적으로 개발되고 유지 관리될 수 있도록 해야 합니다.

이를 위해서는 데이터 과학, 기존 소프트웨어 엔지니어링, 프로젝트 관리 측면을 파악하고 있어야 합니다.

응용 ML 프로젝트의 여섯 가지 주요 단계는 계획, 범위 설정 및 조사, 실험, 개발, 배포, 평가 순입니다.

기술 구현의 세부 사항, 도구, 새로운 접근 방식에 대한 우려를 덜어내어야 프로젝트 업무를 진행함에 가장 중요한 요소는 실질적인 문제 해결에 집중할 수 있습니다.

 
 

프로젝트 성공률을 높이는 방법 : 프로세스를 적용해 복잡한 전문성 강화하기

데이터 과학자의 업무는 데이터에 수학을 창의적으로 적용해 문제를 해결하는 것입니다.

그래서 문제를 해결하는 행위를 중요시합니다.

데비 옵스는 소프트웨어 개발의 성공적인 엔지니어링 작업에 대한 지침과 입증 가능한 패러다임을 가져왔습니다.

애자인 선언의 등장으로 숙력된 업계 전문가들은 기존 소프트웨어 개발 방식의 결함을 인식하게 됐습니다.

ML 방식이 애자일 방식과 유사하다고 해요.

 
 
 
 

책은 머신러닝의 기본 개념부터 머신러닝 프로젝트에 필요한 설계 원칙, 좋은 ML 코드 작성법, 프로덕션 배포 전 고려해야 할 심화 주제까지 설명해 줍니다.

수십 년간 축적된 훌륭한 소프트웨어 엔지니어링 경험 위에 세워진 머신러닝 엔지니어링은 ML 시스템의 복원력과 적응력, 프로덕션 환경에서의 성능을 보장하게 되는데요.

 
 

프로토타입으로 테스트하고, 모듈식 설계를 통해 탄력적인 아키텍처 구축 노하우를 배우수 있고요.

협업 시 일관된 커뮤니케이션을 제공하는 소프트웨어 엔지니어링 기술을 배울 수 있습니다.

성공적인 머신러닝 프로젝트의 비밀이 궁금한 분들에게 이 책이 좋은 가이드를 제공해 줄 것 같네요.

 
 

아래는 책에 대한 추천사입니다.

머신러닝 프로젝트를 구축하는 모든 과정을 안내하는 완벽한 지침서로 귀중한 지식과 경험으로 가득합니다. - 루이 리우 (오라클 기술 자문 위원)

한 단계씩 올라갈 때마다 노련한 전문가의 조언을 들을 수 있는 책입니다. - 존 바실 (오디오 네트워크 CTO 겸 CPO)

주니어부터 숙련된 전문가까지, 모두에게 유용한 내용을 소개합니다. - 요안니스 아트소니오스 (FemTec Health 데이터 과학 엔지니어)

 

2월의 도서로 돌아왔습니다. 대학원 기말고사가 끝났지만, 아직도 졸업시험이 남아있는 저에게 시험과목과 상관없는 책을 읽는 다는 것이 생각보다 어려운 일이더라고요...ㅎㅎ 그럼에도 이 책은 충분히 읽어보고 공부할 만한 가치가 있어서 리뷰를 올려봅니다. 숨겨진 사실은....  다음 학기에 Mlops 관련 수업이 있는데요, 그 전에 이 책을 읽는다면 이해도가 높아질 것이라는 기대도 있었기 때문(?)이라는 비하인드가 ㅎㅎ

 

이 책은 기존의 '머신러닝' 관련 책들과는 조금 다릅니다. 단순히 머신러닝을 이용한 데이터 분석!에서 끝나는게 아니라 ML의 개념을 익히는데서부터 시작하여 산출물(제품)을 배포하고, 최종적으로 간편한 유지관리 및 안정성 있는 ML 프로젝트를 구축하기 위한 전체적인 내용을 총 망라하여 제공합니다. 실무에서 쓸 수 있는 TIP들의 총 집합체라고 볼 수 있을 것 같아요.

 

그렇게 이 책에서 다루는 머신러닝 엔지니어링 정보를 정리하면 다음과 같습니다.

 

1.데이터 과학 문제를 발굴하여 가장 효과적인 솔루션 찾기

2.예상 사용량과 예산에 맞는 머신러닝 프로젝트 범위 설정하기

3.낭비되는 자원을 최소화하고 생산 속도를 높이는 처리 기술

4.표준화된 프로토타이핑 작업과 통계적 검증을 사용하여 프로젝트 평가하기

5.프로젝트에 적합한 기술 및 도구 선택하기

6.코드의 이해도, 유지 관리 및 테스트 성능 높이기

7.문제 해결 및 로깅 관행 자동화하기

 

따라서 '머신 러닝 엔지니어링 인 액션'은 성공적인 머신 러닝 프로젝트를 설계, 구축, 제공하기 위한 핵심 원칙과 사례를 알려주는 책이라고 정의하고 싶습니다. 머신러닝을 배우고 싶은 초보자들은 살포시 뒤로 가기를 눌러주세요.

 

​이 책이 구매하시기 좋은 분들은 아마 이런 경우가 아닐까 합니다. 회사에 맞게 적용할 수 있는 데이터 사이언스 및 기계 학습을 위한 인프라 설정에 대한 가이드를 찾고 있다면, 이 책이 적절합니다. 데이터를 어떻게 쌓을 것이며 계산부터 백테스팅 및 보정에 이르기까지 모든 것을 다루고, 단계마다 필요한 도구를 사용하는 방법에 대한 명확한 지침이 있기 때문입니다. 무엇보다도 배경지식이 다소 낮은 초보자라도 쉽게 따라할 수 있도록 명확하고 간결한 문체로 작성되었다는 점도 장점입니다.

 

​요즘은 각종 온라인 서점에 머신러닝으로만 검색해도 수만가지 책이 나오는 시대입니다. 이게 ML에 관한 좋은 책은 많지만 "머신러닝 엔지니어링 인 액션"만큼 좋은 ML 모범 사례 적용집의 형태를 띠고 있는 것은 거의 없는 것 같아요. 저자인 벤 윌슨의 책들이 대부분 그러한 경향이 있는데, ML 이론은 이미 알고 있으나, 현업에서 이를 실행에 옮겨야 하는 사람들에게 탁월한 선택이 될 것 같습니다.

 

​추가로 저자의 커리어를 살펴보니 정말 눈이 부십니다. 벤 윌슨은 데이터브릭스라는 회사의의 수석 책임자로, 데이터브릭스의 AutoML 프로젝트를 개발했습니다. 또한 MLflow 커미터라고 하네요. 그만큼 다양한 비즈니스에서 익힌 수년간의 프로젝트에 걸쳐 쌓은 지식을 공유해 줍니다. 책을 살펴보면 간단하고 구체적인 예시를 토대로, 초보자가 범할 수 있는 실수들을 미리 말해주는데요, 더 감동적인 점은 자신의 실수까지 동원하여 독자가 자괴감을 느끼지 않도록 배려해준다는 거예요. 이런 고수들도 범하는 실수들이니, 초보자들은 더 쉽게 책을 받아들일 수 있지 않을까요? ㅎㅎ 

 

개인적으로는 책을 읽다보니 저자가 책에 숨겨놓은 통찰과 생각이 느껴지기도 했습니다. 우리는 책을 소비할 때 그대로 내용을 베껴서 어떤 문제를 풀고자 하는 경우가 많잖아요? 이 책을 읽는 독자들은 아마 이런 점을 해결하고 싶지 않았을까 싶어요. 나에게 주어진 문제를 이해하고 ML 프로젝트의 비즈니스 요구 사항과 범위를 정의하는 정해진 틀이나체크리스트가 있는지? 하는거죠. 주어진 목록을 그대로 따라가다 보면 뙇! 하고 해결책이 나오는 마법상자같은 도구 말이예요.

 

하지만 이 책을 읽다보면 결국 저자가 중요시하는 것은 '소통'이 아닐까 싶습니다. 데이터 관련 부서에서 일하는 분들이 가장 많이 부딫히는 문제점이 보통 타 부서와의 소통 부족인 경우가 많더라고요. 그러나 그 부서에서 하고 있는 일에 대한 이해 없이 데이터를 분석한다는 것은 소귀에 경읽기가 될 확률이 높더라고요.

 

하지만 저자는 그런 경향에 단호하게 반대하는 의견인 것 같습니다. 일단 그들이 해결하고 싶은 것이 무엇인지 가볍게 토론하면서 질문하고 들어보라는 거죠. 그렇게 회의를 하다 보면 대화가 추상적이고 산으로 갈 때가 종종 있습니다. 우리 회사의 능력범위를 훨씬 벗어난 우주의 얘기를 하게 되는거죠. 그 때 대화를 좀 더 실용적인 것으로 부드럽게 전환하는 것이 팁이라고 해요.

 

둘째로 만약 데이터 부서에서 타 부서의 직무 기능을 강화하기 위한 무언가를 만들고 있다면, 우리는 그것이 작동하는 것을 꾸준히 지켜봐야 한다고 해요. 그들과 함께, 어려움을 겪고 있는 것이 무엇인지, 그 작업을 어떻게 수행하는지 조용히 관찰하고, 수동으로 작업하는 데 대해 그들이 느끼는 좌괴감이나 짜증나는 점에 대해 최대한 많은 통찰력을 얻으라는 거죠.

 

이런 과정에서 막막한 것도, 힘든 시간도 있겠지만 아인슈타인의 명언을 생각하면서 우직하게 문제를 해결하면 좋은 DS 부서가 될 수 있지 않을까 싶습니다. "문제 해결에 1시간이 있다면 문제에 대해 생각하는 데 55분을 보내고 해결책에 대해 생각하는 데 5분을 쓸 것입니다."

 

저자는 또 이런 태도를 경계하라고 합니다. '문제를 듣자마자 수집할 기능 데이터, 사용할 알고리즘에 대해 생각하기 시작하고 즉시 따라갈 주제에 대해 누군가가 작성한 블로그를 찾으러 달려가면 문제가 발생할 수 있습니다.' 요즘 무언가 잘 풀리지 않으면 챗GPT로 향하는 제 모습을 반성하게 되는 내용이기도 했습니다. 

 

​마지막으로 저자가 최근 인터뷰에서 남긴 내용을 인용하려고 해요. 많은 개발자들이 핫한 DS 분야에서 성과를 내는 데이터 전문 엔지니어로 성장하고 싶어하는 경향이 있는 것 같더라고요. 워낙 핫한 분야니까요. 그러기 위해서 데이터 사이언스를 어떻게 공부하냐는 질문들이 많았나 봅니다. 그런 질문에 대해 대답한 내용이 큰 도움이 될 것 같아서 옮겨봤습니다. 

 

​'저는 책에서 의도적으로 알고리즘 작업이나 ML 엔지니어링 작업의 기본 사항을 다루지 않았습니다. 알고리즘, 응용 ML/응용 분석 및 통계에 관한 일부 책과 함께 이 책은 사람들이 데이터 분야의 직업으로 전환하고, 성공하는 데 필요한 입문 주제를 다루었다고 생각합니다. 데이터 사이언스 업계로의 '전직'을 원하는 개발자로부터 많은 이야기를 들었습니다. 얼마나 데이터 과학을 배워야 하는지 물으면 늘 같은 말을 합니다. “그냥 통계를 읽어보세요. 당신은 이미 코딩 방법을 알고 있으며(아마 대부분의 DS 사용자의 90%보다 더 잘 코딩할 수 있을 것임) 데이터 처리 방법 또한 이미 이해하고 있을 겁니다. 당신이 놓치고 있는 것은 알고(Algos)와 통계뿐입니다.”


[책소개]

성공하는 머신러닝 프로젝트의 비밀

순서도와 그림으로 살펴보는 머신러닝 프로젝트 A to Z


이 책은 머신러닝 엔지니어링의 기본 개념부터 머신러닝 프로젝트에 필요한 설계 원칙, 좋은 ML 코드 작성법, 프로덕션 배포 전 고려해야 할 심화 주제까지 설명합니다. 수십 년간 축적된 훌륭한 소프트웨어 엔지니어링 경험 위에 세워진 머신러닝 엔지니어링은 ML 시스템의 복원력과 적응력, 프로덕션 환경에서의 성능을 보장합니다. 프로토타입으로 테스트하고, 모듈식 설계를 통해 탄력적인 아키텍처 구축 노하우를 배우고, 협업 시 일관된 커뮤니케이션을 제공하는 소프트웨어 엔지니어링 기술을 배워보세요. 성공적인 머신러닝 프로젝트의 비밀을 여러분의 기술로 만들어 안정적인 데이터 파이프라인, 효율적인 애플리케이션 워크플로, 유지 관리 가능한 ML 모델을 직접 구축해보길 바랍니다.


[주요 내용]

- 머신러닝 프로젝트의 계획 수립과 범위 설정하기

- 설계에 적합한 기술 선택하는 방법 알아보기

- 코드 기반의 이해도, 유지 보수, 테스트 가능성 높이기

- 프로덕션의 품질을 높이는 고급 사항 살펴보기


[대상 독자]

- 머신러닝 엔지니어, 데이터 과학자, 소프트웨어 아키텍트 등 머신러닝 프로젝트 참여자

- 머신러닝 엔지니어링 설계 과정에서 어려움을 겪고 있는 분

- 머신러닝 엔지니어링을 활용해 무언가를 구축해보고 싶은 분

- 머신러닝 엔지니어링에 관심 있는 누구나


[서평]

"머신러닝 엔지니어링 인 액션"은 머신러닝 프로젝트를 성공적으로 수행하는 데 필요한 전략과 기술을 체계적으로 담은 책입니다. 저자 벤 윌슨은 자신의 머신러닝 프로젝트 경험을 바탕으로 이 책을 통해 머신러닝 프로젝트 설계와 구현에 관한 깊이 있는 지식과 통찰력을 제공합니다.


이 책의 장점 중 하나는 머신러닝 프로젝트의 성공을 위해 반드시 알아야 할 핵심적인 주제를 중점적으로 다룬다는 점입니다. 계획 수립, 기술 선택, 코드 작성, 프로덕션 품질 향상 등의 주제를 통해 머신러닝 프로젝트의 전체적인 흐름을 이해할 수 있습니다.

또한 이 책은 세 부분으로 구성되어 있어, 각 부분이 다루는 주제에 따라 필요한 내용을 쉽게 찾을 수 있습니다. 특히, 머신러닝 프로젝트의 관리 측면, 개발 프로세스, 그리고 프로덕션 배포와 관련된 고려 사항을 깊게 다루고 있어, 실제 프로젝트를 수행하는 데 많은 도움이 될 것입니다.


이 책은 머신러닝 엔지니어뿐만 아니라 데이터 과학자, 소프트웨어 아키텍트 등 머신러닝 프로젝트에 참여하는 모든 분들에게 유용한 가이드가 될 것입니다. 또한 머신러닝 엔지니어링 설계 과정에서 어려움을 겪고 있는 분들이나, 머신러닝 엔지니어링을 활용해 무언가를 구축하고 싶은 분들에게도 도움이 될 것입니다.


결론적으로, "머신러닝 엔지니어링 인 액션"은 머신러닝 프로젝트를 수행하는 데 필요한 전체적인 이해와 실질적인 노하우를 제공하는 아주 훌륭한 도서입니다. 이 책을 통해 머신러닝 프로젝트를 보다 효율적으로 수행하고, 최고의 결과를 달성하는 데 도움이 될 것입니다.



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

오늘 리뷰할 책은 [머신러닝 엔지니어링 인 액션] 입니다.

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

 

이 책은 일단 700페이지 조금 안되는 상당한 분량입니다.

그리고 오라일리가 아닌 매닝 출판사의 번역서 입니다. 두군데 모두 IT 전문 출판사니까 믿고 봅니다.

1.표지IMG_20231224_080508.jpg

 

 

이 책의 대상은 초중급이라고 나와 있지만, 제 기준에는 중고급 이라고 보입니다.

책 표지 맨위에 나와 있듯이 "개념부터 프로덕션, 프로젝트 구축하기" 라는 단어처럼

내용의 대부분이 이런 내용들로 이루어여 초급자용은 아니라고 생각되었네요.

보통 프로젝트 시작 전에 프로토타입을 먼저 만들어보기도 하는데,

아래처럼 순서도? 워크플로우? 같은 그림으로 잘 표현하고 있습니다.

뭘 해야할지 모르겠다면 이런 그림을 참고하면 좋겠지요.

2.프로토타이핑 비교IMG_20231224_080608.jpg

 

 

이 책도 제가 좋아하는 풀컬러 인쇄입니다. 아래 차트들을 보시면... 컬러가 아니면 분석이 불가능하죠.

그리고 책 전체에 모르는 용어 투성이입니다. 하지만 대부분 설명이 있으므로 걱정하지 않아도 됩니다.

4.컬러히스토그램IMG_20231224_080703.jpg

 

 

앞에서 이 책은 초급자용이 아니라고 했는데,

책 전반적인 내용과 소스 코드 등등 기본적인 설명은 대부분 있습니다.

그러나 초보자를 위한 상세한 설명은 없는 경우도 있습니다.

그래서 이런 부분들은 다른 기본서를 참고해야 할 수도 있겠네요.

책에 나오는 파이썬 예제들은 주피터 노트북 같은걸로 실행해야 하는데, 설치나 실행은 알아서 해야 합니다.

책의 후반부에 가니 테스트 과정도 아래처럼 잘 표현하고 있습니다.

이 책에는 이런 그림이 정말 많이 나오는데, 마치 프로젝트 관리나 개발 전체 프로세스에 대한 내용들에 대해서 각 단계에서 필요한 내용들을 담아낼려고 한듯 보입니다.

5.테스트 플로우IMG_20231224_080747.jpg

 

 

마무리하면, 이 책은 초중급 개발자에게 적당한 책은 아닌듯 합니다.

오히려 프로젝트 관리자나 고급 엔지니어를 위한 책으로 보이며,

어려운 내용들도 많이 나오는데 설명은 분량상 한계가 있어 보입니다.

본인도 오래전에 추천 시스템을 개발하면서 많이 힘들었는데,

이 책을 미리 보았으면 도움 받을 내용들도 상당 부분 있긴 합니다.

시스템에 대해서 많은 내용을 담아내려다보니 스파크, 카프카 등의 다른 기술들에 대한 언급도 있긴 하지만,

이 책에서는 다루지 않으니 다른 책을 참고하셔야 합니다.

결론적으로 좋은 책이긴 하지만 편하게 읽기에는 좀 부담스러웠네요.

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

 

머신러닝 엔지니어링 인 액션 서평

 

"머신러닝 엔지니어링 인 액션"은 머신러닝 엔지니어링의 전체 스펙트럼을 커버하는 실용적이고 통찰력 있는 지침서입니다. 이 책은 머신러닝 엔지니어링의 기본 개념부터 시작해 프로덕션 준비, 유지 관리 가능한 ML 시스템 구축에 이르기까지, 단계별로 꼼꼼하게 접근합니다. 저자는 머신러닝 프로젝트를 성공으로 이끄는 핵심 요소들, 즉 설계 원칙, 좋은 ML 코드 작성법, 프로덕션 배포 전 고려해야 할 심화 주제들을 소개하면서, 수십 년에 걸친 소프트웨어 엔지니어링 경험을 바탕으로 이야기를 풀어갑니다.

 

서평:

 

1. 포괄적인 커버리지:

   - "머신너링 엔지니어링 인 액션"은 머신러닝의 기술적 측면뿐만 아니라, 프로젝트 관리, 팀 협업, 의사소통 기술 등과 같은 주제들을 포함하여 머신러닝 프로젝트의 성공에 필요한 모든 요소를 다룹니다. 이는 단순히 기술적 지식을 넘어서 실제 업무 환경에서 필요한 다양한 역량을 배양할 수 있는 기회를 제공합니다.

 

2. 실용적인 접근법:

   - 이 책은 이론적인 설명에 그치지 않고, 실제로 프로토타입을 만들고, 모듈식 설계를 통해 탄력적인 아키텍처를 구축하는 노하우를 제공합니다. ML 프로젝트에 적용할 수 있는 다양한 사례 연구와 팁들이 포함되어 있어, 이론을 실무에 적용하는 데 큰 도움이 됩니다.

 

3. 깊이 있는 내용:

   - 책은 ML 엔지니어링의 기본부터 심화 주제에 이르기까지 다양한 주제를 깊이 있고 체계적으로 다룹니다. 모델의 측정, 드리프트 감지, 프션덕션 인프라 구축과 같은 주제들은 특히 실무에서 매우 중요한 부분이며, 이 책은 이러한 복잡한 개념들을 명확하고 이해하기 쉬운 방식으로 설명합니다.

 

4. 읽기 쉬운 스타일:

   - 복잡한 기술적 내용을 다루고 있음에도 불구하고, 저자는 주제를 이해하기 쉽게 설명하고, 읽는 이가 지루해하지 않도록 흥미로운 사례와 함께 내용을 전달합니다. 이는 독자가 쉽게 지식을 흡수하고, 실제로 적용할 수 있도록 돕습니다.

 

5. 소프트웨어 엔지니어링과의 연계:

   - 책은 머신러닝과 소프트웨어 엔지니어링의 교집합을 강조하며, 머신러닝 시스템의 복원력, 적응력 및 프로덕션 환경에서의 성능 향상을 위해 필요한 소프트웨어 엔지니어링 원칙과 방법론을 소개합니다. 이는 ML 엔지니어링을 단순한 알고리즘 구현을 넘어서는, 포괄적이고 세심한 접근 방식으로 바라보게 만듭니다.

 

이책은 머신러닝 엔지니어, 데이터 과학자, 소프트웨어 엔지니어 및 이 분야에 관심 있는 모든 이들에게 꼭 필요한 내요을 서술하고 있습니다. 

실제 업무에 적용 가능한 심층적인 내용과 명확한 가이드라인을 제공하는 이 책은, 이론과 실무 사이의 간극을 메우고자 하는 이들에게 특히 가치 있는 선택이 될 것입니다.

 

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

이 책은 10년 이상 ML 제품 및 서비스를 만드는 회사에서 근무하고 4년 가까이 관련 컨설팅을 해 주고 있는 벤 윌슨 저자가 쓴 책이다. 실제로 692페이지에 달하는 책을 읽어보니 10년이라는 세월을 언급하진 않았지만 개발과정 중 삽질할때마다 정리하며 정말 알차게 보냈구나 느낄 수 있다.

보통 "~~인 액션" 책은 설치 및 기초부터 실전코드로 가득한 실무 느낌이 강한 책이다. 물론 이 책도 코드가 적진 않지만 읽어본 소감은 "조엘 온 소프트웨어"나 보안 관련서적 또는 effective C++ 처럼 컨설팅 느낌이 강한 책이다.

1장 뒷부분과 2장에서 대부분 예제가 있는데 코드에서 주로 사용되는 예제는 공항 데이터셋에 대해 자동화 튜닝을 하고 예측을 수행하는 코드로 MLFlow와 spark 또는 hyperopt이다. 하지만 이 책은 초중급개발자를 대상으로 하고 있어서인지 코드에 대해서 자세히 설명하는 책은 아니다.

이 책은 정말 계속 웃을 수 있게 본인의 이야기를 곁들이거나 줄리 나 후이 같은 가상의 인물들의 개발과정으로 비유한 스토리를 지루하지 않게 썼지만 사용되는 단어나 수학 이론 용어등은(물론 역자들이 정성껏 주석을 달았지만!) 눈꺼풀이 무겁고 지레 겁을 먹게 만든다.

사실 실무란 "배 보다 배꼽이 더 크다" 라는 속담처럼 코딩문법보다는 다양한 인간관계 속에서 정상적으로 잘 진행되도록 하기 위한 센스가 필요하다. 나를 포함한 초보개발자들은 코드에 너무 과몰입되어 있다가 종종 넌센스한 상황을 연출하기도 하는 데 이 책은 그런 발생할 수 있는 넌센스한 히스토리를 본인 경험담으로 재미있게 꾸몄다.

간혹 아직 취직못한 후배들에게 "실제 회사에서 일 할 때는 어때요?" 또는 "개발자는 뭘 주의해야 해요?" 이런 질문을 받아왔고 그 때마다 장황하게 이야기했음에도 늘 아쉬웠는 데 앞으로는 "이 책을 읽어보라구" 하며 추천해 줄 만한 책이다.

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

실제 비즈니스 문제를 해결하기 위한 방법과 머신러닝 프로젝트 수행에 실질적인 도움을 주는 내용을 담고 있다


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

제목 : 머신러닝 엔지니어링 인 액션


- 한 줄 평가

 대상 독자로 '머신러닝 엔지니어링에 관심있는 누구나' 라고 했지만 머신러닝을 제대로 접한 적 없는 개발자로써 이 책은 '머신러닝 엔지니어링 설계에 관심이 있는 머신러닝 설계자'가 읽으면 좋지 않을까 싶다.


- 대상 독자

 머신러닝 엔지니어, 데이터 과학자, 소프트웨어 아키텍트 등 머신러닝 프로젝트 참여자 또는 머신러닝 엔지니어링에 관심있거나 설계를 원하는 누구나

 

- 책의 내용 및 구성

1. 총 688p, 3개의 파트(부록 제외), 16개의 챕터로 구성

2. 머신러닝 프로젝트의 계획 수립과 범위 설정에 관한 내용과 설계에 적합한 기술 선택 방법에 대한 내용, 프로덕션의 품질을 높이는 방법등으로 구성

3. 각 파트별로 '소개 및 설계 방법', '설계 시 생각해봐야 할 내용', '설계와 설계 후 필요한 내용'등으로 구성

 

- 책에서 눈에 띄는 점

1. 다양한 예제 속에서 실제로 궁금해할 법한 내용들이 문답 형식으로 중간중간 삽입되어 있음



2. 각 챕터 마지막 장에 '요약'으로 어떤 내용들에 대해 이야기 했는지를 함축적으로 볼 수 있음



- 총평

 조금 많이(?) 속았다.

 한빛 홈페이지에 난이도 '초중급' 이라고 써 있길래, 머신러닝에 대해 간략하게라도 접해보자는 생각으로 읽어 내려갔지만, 눈만 내려가고 머리는 따라가지 못했다.

'대상 독자'에서도 관심이 있으면 좋다고 했지만, 저자가 말하는 '관심'은 이 세계에 한번 발을 담가보고 흥미를 느낀 사람들의 관심이 아니었을까 싶다. 그정도로 내겐 너무나 어려웠다.

 한두번 쓱 훑어보기만 해도 눈이 핑 돌았다. 예제가 많아서 그런지 다양한 데이터의 결과물로 도출 된 이미지들과 표, 그것을 만들기 위한 코드들이 너무 길고 커서 한 두장을 차지하는건 기본이다. 확실히 수학이 연관된 세계는 내게 참 안맞는 것 같다.

 '~액션' 시리즈를 몇 권 봐 왔지만 다른 책들과 달리 이 분야에 큰 흥미가 있지 않아서 인지 읽어내려가기 힘들어서 많이 아쉬웠다. 그나마 이 책을 읽으면서 이해할 수 있었던 것은 챕터별 맨 앞장에 나오는 '이 장의 내용'과 맨 뒷장에 나오는 '요약'을 통해 간략하게 '이런 내용이었구나~' 하고 넘어갈 수 있었단 점이다.

 관심이 있더라도 수많은 글과 그림을 보고 나면 정리가 필요할 터인데 간략하게 짚고 넘어가 주는 점이 참 괜찮은 것 같다.

 아무튼, 이 책은 입문자가 아닌 어느정도 머신러닝에 손 대봤다 하는 개발자 또는 머신러닝 설계자가 보면 참 좋을 것 같다.


머신러닝은 최근 몇 년 동안 급격한 발전을 이루었으며, 다양한 산업에서 폭넓게 활용되고 있다. 그러나 머신러닝 프로젝트를 성공으로 이끌기 위해서는 단순히 머신러닝 알고리즘을 잘 이해하는 것만으로는 부족하다. 데이터 과학, 소프트웨어 엔지니어링, 프로젝트 관리 등 다양한 분야의 지식과 역량이 요구된다.

머신러닝 엔지니어링 인 액션은 이러한 머신러닝 프로젝트의 성공을 위한 실무적인 지침을 제공하는 책이다. 저자는 머신러닝 엔지니어링의 기본 개념부터 프로젝트 계획, 실험, 모델 배포에 이르기까지 전 과정을 단계별로 안내한다. 또한, 실제 프로젝트에서 발생할 수 있는 다양한 문제점과 해결책을 제시한다.

이 책은 크게 세 부분으로 구성되어 있다.

  • PART 1: 머신러닝 프로젝트의 기초

  • 머신러닝 엔지니어링의 핵심 원칙, 프로젝트 계획 수립, 의사소통, 실험 방법 등을 다룬다.

  • PART 2: 프로덕션 준비: 유지 관리 가능한 ML 만들기

  • 테스트 가능하고 읽기 쉬운 ML 코드 작성, 코딩 표준, 모델 측정, 드리프트 주시, ML 개발의 오만함 등을 다룬다.

  • PART 3: 프로덕션 머신러닝 코드 개발

  • 프로덕션 코드 작성, 품질과 인수 테스트, 프로덕션 인프라 등을 다룬다.

PART 1에서는 머신러닝 엔지니어링의 기본 개념과 프로젝터 계획, 실험 방법에 대해 다룬다. 특히, 프로젝트 계획 수립에서 비즈니스 요구 사항을 명확히 하고, 실험 범위를 설정하는 것이 중요하다는 점을 강조한다. 또한, 데이터 과학자와 엔지니어 간의 효과적인 의사소통을 위한 방법을 제시한다.

PART 2에서는 유지 관리 가능한 ML 코드 작성, 코딩 표준, 모델 측정, 드리프트 주시, ML 개발의 오만함 등에 대해 다룬다. 특히, 테스트 가능하고 읽기 쉬운 ML 코드 작성을 위한 모듈화, TDD, 코딩 표준 등을 강조한다. 또한, 모델의 성능과 예측 정확도를 지속적으로 모니터링하고, 데이터의 변화에 따라 모델을 업데이트하는 것이 중요하다는 점을 강조한다.

PART 3에서는 프로덕션 코드 작성, 품질과 인수 테스트, 프로덕션 인프라 등에 대해 다룬다. 특히, 프로덕션 환경에서 사용할 수 있는 ML 프레임워크와 라이브러리, 예측 서빙 아키텍처 등을 소개한다. 또한, 모델의 해석 가능성을 높이는 것이 중요하다는 점을 강조한다.

총평

머신러닝 엔지니어링 인 액션은 머신러닝 프로젝트를 성공으로 이끌기 위한 실무적인 지침을 제공하는 책으로, 다음과 같은 장점이 있다.

  • 실무적인 지침을 제공한다. 저자는 실제 머신러닝 프로젝트에서 발생할 수 있는 다양한 문제점과 해결책을 제시한다.

  • 다양한 분야의 지식을 종합한다. 머신러닝, 데이터 과학, 소프트웨어 엔지니어링, 프로젝트 관리 등 다양한 분야의 지식이 요구되는 머신러닝 프로젝트를 성공으로 이끌기 위한 지침을 제공한다.

  • 쉽고 이해하기 쉽다. 구체적인 예와 설명을 통해 머신러닝 프로젝트의 각 단계를 이해하기 쉽게 설명한다.

이 책은 머신러닝 프로젝트를 계획하고 실행하는 데 관심이 있는 데이터 과학자, 엔지니어, 프로젝트 매니저에게 유용한 지침을 제공한다.

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

 

이 책을 번역하신 분의 말을 인용해 보면 다음과 같습니다.

오픈소스와 커뮤니티의 활성화로 ML의 진입장벽이 낮아졌습니다.
누구나 아이디어만 있으면 멋진 데모를 쉽게 만들어 낼 수 있습니다.
하지만 ML을 프로덕션에 적용하기는 여전히 어렵습니다.

 

오픈소스로 데모를 만들 수는 있지만 실제 프로덕션을 만들기 위해서는 다음과 같은 문제들이 발생합니다.

  • 자원 및 비용 관리 : 자원을 효율적으로 관리하고 예산 안에서  시스템 구축
  • 데이터 수집 및 정제 : 데이터 수집 및 전처리 과정에서 많은 인력 필요
  • 보안 및 규정준수 : 데이터 및 보안 문제
  • 모델 품질 관리 : 성능저하,편향 오류 관리
  • 문서화 및 협업 : 문서화 및 이해관계자와의 협력

이 책은 이러한 난제를 해결 하기 위해 만들어진 책입니다.

응용 ML을 위한 가이드가 아니고 실무자가 빠지기 쉬운 함정이나 그러한 부분을 피하는 방법을 설명하는 가이드와 같은 지침서입니다.

이 책은 대상독자를 다음과 같이 정의하고 있습니다.

  • ML에 관심있는 분 : ML을 사용해 비즈니스 문제를 해결하는 과정에 프로젝트 참여자들이 모두 쉽게 접근 할 수 있도록 하는 것이 목표
  • 주니어 ML 엔지니어 : ML 엔지니어링을 사용해 구축할 때 필요한 내용을 누구나 배울 수 있는 것이 목표

 

미리보기

 

 

이 그림 하나로 이 책을 표현하기에는 부족하지만 기존의 실패한 ML 프로젝트 방식을 성공적으로 이끌 수 있는 방식을 보여 줄 수 있는 그림이라서 소개해 봅니다.

실패한 프로젝트는 계획수립에서 설루션을 선택했을 때 어떻게 동작하는지 모르고 선택을 한다든가 복잡도를 과소평가 하여 기술습득 시간이 오래 걸리거나 재연 불가능한 결과 도출되는등 많은 위험 요소들을 안고 있는데 이것을 그대로 진행해 나가는 데 비해 이 책에서는 이러한 실패 요인을 없애기 위한 방법론을 제시해 주고 있습니다.

프로세스를 제공해서 더 나은 의사 결정을 내리고 내부고객과 쉽게 소통하고 실험 및 개발 단계에서 재작업을 없애고 쉽게 유지 관리할 수 있는 코드기반을 만드는 방법들을 제시하고 있습니다.

 

이 책의 구성은

머신러닝 엔지니어링 편에서는 프로젝트 계획 수립,범위설정 및 프로젝트 테스트및 평가까지 머신러닝 엔지니어가 하는 일을 살펴 보고 있습니다.

유지 관리 가능한 ML 만들기 편에서는 ML모듈화와 표준및 유지관리 가능한 ML 코드 작성법 등 유지보수에 필요한 부분들을 다루고 있습니다.

프로덕션 머신러닝 코드 개발 편에서는 프로덕션 품질관리 및 테스트와 같이 프로덕션 관리 부분에 필요한 부분을 다루고 있습니다.

 

서평

이 책은 경험이 부족한 ML 엔지니어가 흔히 하기 쉬운 실수에 대해 살펴 보고 그것을 해결하는 방법에 대해 서술되어 있습니다.

경험이 부족한 ML 엔지니어라면 어떤 프로젝트를 수행할 때 오픈 소스를 기반으로 하여 그것을 부분 테스트 하여 프로젝트에 적용하게 되는데 성급하게 적용하게 된다면 학습한 속성이 실제 프로덕션의 내용과 다른 결과가 나오게 되고 쓸모 없는 모델이 될 수 있습니다.

혹은 정확히 동작 원리를 모르는 상태의 코드를 사용하여 개발 했을 때 시간이 지남에 따라 서비스를 개선하기가 어려워 지거나 프로덕션 장애를 처리 할 수 없는 결과를 가져 오기도 합니다.

이 책에서는 이렇게 실패 할 수 있는 경우들을 살펴 보면서 이것을 해결 할 수 있는 방향을 제시해 주고 있습니다.

이 모든 복잡한 작업을 대신해 주는 대행 업체가 있습니다.

하지만 이러한 핵심개념을 배운다면 처음에는 업무가 복잡하고 혼란 스러울 수 있지만 가이드라인을 따르고 관리한다면 대행업체를 통하지 않고도 직접 관리를 할 수 있을 것입니다.

머신러닝을 이용하여 프로젝트를 수행하려고 한다면 머신러닝 엔지니어 뿐 아니라 그 프로젝트에 관련된 이해 관계자라면 이 책을 통해서 많은 도움을 받을 것 같네요.

 

 

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

1.비즈니스 문제 적합형 내용

책에 대해 설명하는 글을 보면 알 수 있듯이. 머신러닝을 활용하여 무언가를 시도해보려는 사람이 대상이다.문제 해결과정에서 데이터 분석이 필수적인 오늘날. 어떻게 이용할 수 있는가? 어떤 과정으로 이어져야 하는가에 대한 이야기가 쓰여져 있다.

 

 

2.프로젝트 흐름 파악

 

앞서도 설명한 것처럼 프로젝트의 흐름,고려해야할 점과 같은 이론적인 내용보다 실제 실무 과정의 도움이 되는 내용으로 채워져 있다. 이제 응용을 해보려는 사람들에게 진행의 감을 제공하는 길잡이가 될 수 있다고 생각한다.

「머신러닝 엔지니어링 인 액션」 / 벤 윌슨 저 / 김대근,심대열 역 / 한빛미디어 출판 / 2023년 출간

 

"Machine Learning Engineering in Action"은 성공적인 머신러닝 프로젝트를 설계, 구축 및 전달하기 위한 핵심 원칙과 경험을 가르쳐줍니다. 프로토타입에 대한 실험 수행 및 모듈러 디자인 구현과 같은 소프트웨어 엔지니어링 기술을 발견하게 되며, 이를 통해 탄력적인 아키텍처와 일관된 팀 간 커뮤니케이션을 구축할 수 있습니다. 저자의 방대한 경험을 바탕으로, 성공적인 머신러닝 프로젝트을 위해 안정적인 데이터 파이프라인, 효율적인 애플리케이션 워크플로어, ML 모델을 구축할수 있다.

-- ML 시스템을 구축해 프로덕션에 적용하기 위한 핵심 요소

1. 자원 및 비용 관리 : ML 프로젝트의 경제적 측면을 관리합니다. 이것은 클라우드 컴퓨팅 자원, 하드웨어, 소프트웨어 라이선스의 비용을 포함하며, 효율적인 자원 사용 계획과 예산 할당이 필요합니다.

2. 데이터 수집 및 정제 : 품질 높은 데이터 수집은 ML 프로젝트의 기반이 됩니다. 이 과정에서는 데이터의 수집, 정제, 노이즈 제거, 결측치 처리 등을 포함하여 분석에 적합한 형태로 데이터를 준비합니다.

3. 보안 및 규정 준수 : 데이터의 안전한 처리와 개인정보 보호법 등 규정을 준수하는 것이 필수입니다. 데이터 보안과 관련된 위험을 관리하고, 법적 요구사항을 충족시키기 위한 프로세스를 구축합니다.

4. 모델 품질 관리 : 모델의 성능을 철저히 평가하고 모니터링하여, 프로덕션 환경에서도 일관된 결과를 낼 수 있도록 합니다. 모델의 오류율을 최소화하고, 시간이 지남에 따라 발생할 수 있는 데이터 드리프트를 감지하기 위한 시스템을 마련합니다.

5. 문서화 및 협업 : 프로젝트의 모든 측면을 문서화하여 팀원 간의 효과적인 협업을 촉진합니다. 프로젝트의 진행 상황, 변경 사항, 결정 사항 및 배운 교훈을 명확하게 기록하여, 현재 및 미래 팀원이 이해할 수 있게 합니다.

이러한 요소들은 ML 시스템이 실제 환경에서 원활하게 작동하고, 지속 가능하며, 비즈니스 가치를 창출하는 데 중요한 역할을 합니다. 이 책에서는 필자의 다양한 경험을 바탕으로 쉽고 친절하게 소개하고 있으며, 기술과 도구는 빠르게 발전 하고 있지만 근본 접근법을 바뀌지 않는다, 현장에서 모든 분들이 ML의 이해와 지식을 확산하는데 큰 도움이 될것이다.

 

 

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

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
머신러닝 엔지니어링 인 액션
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
머신러닝 엔지니어링 인 액션
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
머신러닝 엔지니어링 인 액션
구입처*
구입일*
부가기호*
부가기호 안내

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

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

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

닫기

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

자료실

최근 본 책0