머신러닝 디자인 패턴

  • 인공지능과 머신러닝, 딥러닝 기술의 발전으로 풀리지 않던 많은 문제들이 해결되기 시작했습니다. 다양한 분야에서 딥러닝 기술을 적용하려 많은 연구들이 진행되었고, 이 중 유의미한 성과를 내는 연구 결과도 있었습니다.
  • 반면 많은 연구들이 실제 현장에 적용되지 못한 연구들도 많습니다. 어쩌다 이런 일이 발생한 것일까요?
  • 머신러닝과 딥러닝은 운영 비용이 비쌉니다.
    • 데이터를 기반으로 알고리즘을 만드는 학문이다 보니, 데이터를 만들고 해석하는데 많은 비용이 발생합니다.
    • 다른 학문에 비해 해석 가능한 영역이 좁다 보니, 많은 학습을 반복적으로 수행합니다.
    • ML 모델의 수명주기는 반복적이며, 지속 가능한 모델을 요구합니다.

디자인 패턴

  • 컴퓨터 프로그래밍에서 디자인 패턴은 반복적으로 발생하는 문제들에 대해 많은 사람들이 하나의 대응 방법을 체계적으로 정리한 학문입니다.
  • 문제들은 늘 발견되고, 다양해지기 때문에 디자인 패턴 역시 지속적으로 발전하는 학문입니다.
  • 머신러닝 디자인 패턴은 머신러닝과 딥러닝 모델을 학습하고, 배포하는 과정에서 반복적으로 발견되는 문제들을 정리한 책입니다.
  • 따라서 머신러닝과 딥러닝을 이론 또는 코드를 학습하는 책이 아니라, 실제로 운영되는 환경에서 발생하는 문제들에 대한 책입니다.

MLOps와 DevOps

  • Devops는 과거에 분리되었던 개발과 운영을 하나로 통합하여 불필요한 비용을 제거합니다. 그에 대한 결과로 탄력적인 개발이 가능하고, 개발 속도가 기하급수적으로 빨라졌습니다.
  • 개발 혁신이라고도 불리는 DevOps는 현재 필수 요소로 자리 잡아, 많은 사람들이 DevOps를 적용하려 노력하고 있습니다.
  • 반면 머신러닝과 딥러닝 분야에서는 MLOps라는 바람이 불고 있습니다. 지금까지 데이터 사이언티스트와 데이터 엔지니어링, 모델 서빙이 분리되어 모델 학습과 배포, 운영이 분리된 환경에서 개발이 진행되고 있었습니다.
  • 이러한 환경은 많은 문제를 야기했고, 성공적인 머신러닝 알고리즘을 도입하는데 장애물이 되기도 하였습니다. MLOps는 모델 학습과 배포, 운영을 하나의 연속된 과정으로 합쳐 다양한 부분에서 자동화를 이뤄내는 효과를 가져옵니다.

CI, CD, CT

  • DevOps에서 말하는 CI/CD는 Continuous Integration(CI), Continuous Delivery(CD)를 의미합니다. 지속적인 통합과 지속적인 배포를 추구하여 개발 혁신을 이뤄냈습니다.
  • MLOps는 DevOps의 CI/CD 정신을 계승하고 Continuous Training(CT)을 추가적으로 고려한 확장된 자동화 파이프라인을 추구합니다.

대상 독자

  • 머신러닝을 처음 접하고, 시스템을 도입해 보려는 사람에게는 오히려 적절하지 않을 수 있습니다. 머신러닝 시스템을 위해 준비해온 데이터 전처리, 수동적인 배포 과정은 머신러닝의 마법 같은 결과를 보고 지나온 가시밭길 고통을 잊을 수 있기 때문입니다.
  • 반면 머신러닝을 어느 정도 자유롭게 활용할 수 있고, 이전 경험을 되살려 다른 프로젝트에도 머신러닝을 적용하고 확장하는 사람에게는 등대 같은 책이 되어줄 것입니다. 반복된 데이터 수집, 데이터 전처리, 모델 학습, 이전 모델과의 비교, 배포… 끝나지 않을 것 같은 쳇바퀴를 끝낼 수 있습니다. 바로 자동화된 파이프라인을 통해서요.

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