Skip to the content.

Only-me pattern

Case

Situation

개인 컴퓨터에서 주피터 노트북을 이용하여 머신러닝 모델을 개발하는 경우가 많습니다. 모델을 실제 운영 시스템에 배포하기 위해서는 모델 개발에 사용한 코드, 데이터, OS의 버전, 언어, 라이브러리 등 개발 환경과 맞게 구축해야 합니다. 그렇지 않다면, 개발할 때와 동일한 성능을 재현할 수 없을 수도 있습니다. 또, 사소한 라이브러리 버전 변경으로 모델 실행이나 성능에 영향을 줄 수도 있습니다. 이를 피하기 위하여 ML 엔지니어들은 개발환경을 다른 엔지니어들과 공유해야 합니다.
Only-me pattern에서 모든 모델 개발은 ML 엔지니어의 개인 환경에서 실행되어 개인 환경에 완전히 의존한 모델로 완성됩니다. 완성된 모델을 실제 환경에서 정상적으로 가동하기 위해서는 ML 엔지니어의 개인 환경을 동일하게 재현해야 합니다. 이 경우, 어떠한 순간에 업데이트로 인해 환경 설정들이 변하여 모델 재현이 불가능해질 수 있는 리스크가 있습니다.
실제 환경에서 제대로 동작하는 어플리케이션을 개발하기 위해서는 협업이 필요합니다. UI와 API는 어플리케이션/백엔드 엔지니어가 개발하며, 데이터 검색, 전후 처리를 포함한 ML 부분은 ML 엔지니어가 개발 및 지원합니다. 실제 운영 환경으로 안전한 릴리즈하기 위하여, 모델을 적용하는 단계에서부터 코드 리뷰를 실시하고 엔지니어 간에 모델이나 시스템 실행 로직에 대하여 서로 이해하는 것이 좋습니다.

Diagram

diagram

Pros

Cons

Work around