Search
🔵

a1.2.a9_1.5. [info] title: <MLOps 실전 가이드> 역자의 말

생성
🚀 prev note
♻️ prev note
🚀 next note
14 more properties
이거 누가 쓰는거지?
일단 길게 써두자.
처음 MLOps 에 관심을 가지게 된 것은 자율주행 킥보드를 만들기 위해 고군분투하던 2020년이었습니다. 머신러닝 모델이 학습되는 플랫폼은 구글 클라우드였고, 머신러닝 모델이 실행되는 플랫폼은 NVIDIA 사의 젯슨Jetson 이라는 작은 컴퓨터였습니다. 데이터를 고르고, 하이퍼파라미터를 선택하고, 모델을 학습시키고, 모델을 저장하는 이 모든 것들을 추적하고 관리하는 일은 수작업으로 이루어졌습니다. 모델 파일을 엣지로 옮기는 과정도 수작업이긴 마찬가지였습니다. 학습 환경은 물론이거니와 젯슨에 구성되어 있는 파이썬 패키지 의존성은 툭하면 망가졌습니다. 실험을 통해 생성된 모델을 배포 환경으로 옮기는 일은 일련의 노동이었습니다. 환경 문제가 한번 나타나면 하루 이틀이 삽질로 점철되었고 리눅스를 초기화하고 기나긴 명령어 메뉴얼을 따라 하나하나 실행하며 환경을 다시 구축하는 일은 일상이었습니다. 저는 더이상 이 고통을 감내할 수 없었습니다. 사수 하나 없었던 저는 고민 끝에 이 문제를 해결할 수 있는 열쇠가 MLOps 라는 것을 알게 되었습니다.
하지만 당시에는 마찬가지로 오늘날에도 MLOps를 어디서부터 시작해야 할까요? 를 물었을 때 이 질문에 명쾌히 답할 수 있는 분들은 많지 않습니다. 왜일까요? MLOps는 머신러닝을 이용한 서비스가 더욱 잘 돌아가게 만들어 주는 행위입니다. 이 말은 MLOps가 서비스와 비즈니스에 의존적이라는 말이기도 합니다. 당연히 MLOps를 구축하는 방법과 요구사항이 회사마다 똑같을 리가 없습니다. MLOps라는 개념의 중요성이 수면 위로 떠오르고 기업들이 머신러닝을 포함한 작업 흐름을 정립하고자 노력한 시간이 소프트웨어 역사에서 보면 아직 상당히 짧은 편이기 때문입니다. 즉, MLOps 구축 사례들은 많지만 범용적으로 적용 가능한 모범 사례가 확립되지 않았다는 말이기도 합니다. 다른 회사들의 구축 사례를 여러분의 회사에 모두 적용하려다가는 난립하는 용어들과 제품들에 의해 공부를 시작하기도 이전에 압도당한다는 느낌이 들 것입니다.
이러한 머신러닝 운영의 복잡성을 추상화해줄 수 있는 수많은 MLOps 제품들이 저마다의 철학(참고1:Determined AI의 철학)을 가지고 경쟁하고 있어 MLOps 춘추 전국 시대라고 불리는 2020년 초반입니다. 이들의 수준에 한참 미치지 못하는 저는 처음 이 책을 맡게 되었을 때에는 걱정이 덜컥 앞섰습니다. 이 방대하고 민감한 분야에 대한 책을 거대한 개발팀의 경험이 없는 내가 잘 번역할 수 있을까? 정말 다행히도 이 책은 MLOps에 대한 개념을 어느정도 이해하고 있는 사람들에게 모범 사례를 제공하고자 하는 책(참고:오라일리-한빛미디어 머신러닝 디자인 패턴)이 아니었습니다. 저자가 이 책을 처음 작성했던 시기는 MLOps에 대한 개념이 막 부상하던 2019년~2020년이며, 그만큼 이 책의 목표는 모범 사례를 적용한 MLOps 제품 구축이 아니었던 것입니다. 책이 큰 그림을 그리고 있는 만큼 각각의 기술 스택에 대해 깊게 파고들고 있지도 않았습니다. 대신 이 책은 저자가 정의내린 시각으로 MLOps의 기초적인 키워드들과 기술 스택들을 가벼운 실습과 함께 톺아봅니다.
깊이가 깊지 않음은 아쉬움으로 다가오지만, 그 덕분에 머신러닝에 관심이 있었던 대학생, 머신러닝 분야로 눈길을 돌리는 다른 도메인의 개발자, 랩실에서 분석 업무에 열중한 뒤 졸업하여 MLOps에 대해 생소한 대학원생들이 빠르게 읽어 봄으로써 여지껏 만나보지 못한 새로운 세상에 첫 발을 내딛는 것에 도움이 될 수 있는 책입니다. MLOps 엔지니어가 알아야 하는 키워드가 꾸준히 등장하고 중간중간 학습 내용을 묶어 실습을 하려는 시도들이 보이기 때문에, 이를 통해 거대한 MLOps 시스템에 압도당하지 않고 익숙해질 수 있도록 도움을 받을 수 있습니다. 이 책은 여러분들이 MLOps 라고 불리는 제품을 선택하거나, 오픈소스들을 묶어 MLOps 제품을 구축할 때 기본적인 길라잡이가 되어줄 수 있을 것이라고 생각합니다.
물론 책에는 아쉬운 점들도 많았습니다. MLOps라는 개념이 태동하던 시기에 작성된 책이었을 뿐 아니라 너무 넓은 분야를 피상적으로 다루다 보니 설명이 빈약한 경우도 있었고, 책의 단원 간 유기성이 부족했었습니다. 워낙 빠르게 변화하는 분야이다 보니 더이상 돌지 않는 실습 코드가 아예 돌지 않는 경우도 많았습니다. 단순한 번역을 넘어 원서의 이런 문제들을 보완하기 위해 역자들과 검토진은 이 부분에 정말 많은 시간과 공을 들였습니다. 이 책이 MLOps 춘추 전국 시대의 혼란에서 조금이라도 이정표가 되길 바라고, 한국 MLOps 생태계에 조금이라도 기여할 수 있기를 바라는 마음이었기 때문입니다.
매끄럽게 번역하기: 한국어로 번역된 책을 보다 보면 정말 형편없는 번역에 마주치는 경우가 많습니다. 역자진은 훌륭하게 읽힐 수 있는 글을 작성하려고 노력했습니다. 소스코드 중에서도 한국 독자가 이해하기 어려운 내용을 모두 개선했습니다.
부족한 부분 채우기: 불친절히 서술된 원문에 대한 집착을 덜어내고 부족한 부분은 함께 역자와 검토자가 모두 나서 역주를 추가하며 한국 독자분들께 조금이라도 더 나은 책을 제공하기 위해 머리를 맞대었습니다. 돌지 않는 실습 코드들 중 중요한 것들은 모두 고쳐서 더이상 유효하지 않은 내용들을 다수 덜어냈습니다.
마지막으로 가장 중요한 부분입니다. 함께 6개월이 넘는 시간동안 함께 단순한 번역을 넘어 책을 개조하는 작업에 마음을 모아 동참해 주신 이일섭 역자님과, 기술적인 문제들을 잡아주신 서기원 역자님께 감사 인사를 드립니다. 이 책을 시간 내어 검토해 주신 < → 기여도 순 → > 분들께도 감사 인사를 전합니다. 역자들이 조금이라도 더 나은 책을 내기 위한 욕심을 부릴 수 있도록 배려해 주신 한빛미디어 김민경 편집자님께 감사 인사를 전합니다. 하나의 책을 출판하는 데 이렇게 많은 노고가 들어가는지 알지 못했습니다.
parse me : 언젠가 이 글에 쓰이면 좋을 것 같은 재료들.
1.
None
from : 과거의 어떤 생각이 이 생각을 만들었는가?
1.
supplementary : 어떤 새로운 생각이 이 문서에 작성된 생각을 뒷받침하는가?
1.
None
opposite : 어떤 새로운 생각이 이 문서에 작성된 생각과 대조되는가?
1.
None
to : 이 문서에 작성된 생각이 어떤 생각으로 발전되고 이어지는가?
참고 : 레퍼런스
1.
None