Skip to the content.

Nobody knows pattern

Case

Situation

머신러닝 시스템뿐만 아니라 가동되고 있는 시스템이 어떻게 동작하는지 아무도 모르는 경우는 항상 공포스럽습니다. 그 시스템이 아무런 의존성도 없고 비지니스에 아무런 영향이 없다면 좋겠지만, “아무도 모른다”라는 조건은 정말 이 시스템이 독립적인지 보장할 수 없으며 최악의 경우에는 모든 서비스가 갑자기 중단될 수도 있다는 것을 의미합니다.
또 다른 이유로 같은 프로젝트에 항상 같은 멤버가 배정되지 않는다는 것입니다. 사적인 이유나 조직적인 이유로도 사람들이 프로젝트를 떠날 수도 있습니다. 하지만 비즈니스와 시스템은 이러한 개인적인 이유와는 별개로 운영되어야 합니다. 담당 엔지니어가 한 명 그만두었다고 동작하고 있는 시스템이 중단되어서는 안 됩니다. 발생할 수 있는 리스크들을 고려하여 비즈니스가 계속될 수 있도록 구성해야 하며, 머신러닝 시스템 관점에서 모델 로직, 데이터 세트, 버전, 코드, 환경 구성 등을 공유하고 문서화하는 것이 좋습니다. 소프트웨어는 소스 코드를 읽어 이해할 수 있지만, 머신러닝 모델과 학습 데이터 세트는 제대로 저장되고 관리되지 않으면 복원이 불가능할 수도 있습니다.
“nobody knows” pattern 은 구성원들의 부재를 통해서만 발생하는 것이 아닙니다. 온도계 장치 로그가 있는 IoT 시스템에서 머신러닝 모델을 사용하고 있다고 가정해 봅시다. 공장이나 여러분 방이 이러한 사용 예가 될 수 있겠죠. 온도는 섭씨와 화씨, 켈빈으로 측정할 수 있습니다. 미국은 보통 화씨, 한국과 일본은 섭씨, 그리고 과학계에서는 켈빈을 주로 사용하고 있습니다. 섭씨는 화씨로 변환하면 0도가 32도가 되고 100도는 212 화씨가 되는 등 숫자의 범위가 크게 바뀝니다. 만약 온도계의 단위를 섭씨에서 화씨 또는 켈빈으로 바꾸려면, 머신러닝 모델에서의 단위도 바꾸어야 예측이 정확하게 될 것입니다. 섭씨에서 화씨 변경은 값의 변화가 크기 때문에 변화를 쉽게 알아낼 수 있을 것입니다. 하지만 미터와 야드(1미터=1.09야드) 의 경우에는 차이가 크지 않기 때문에 사람이라도 이 변화를 알아채기 어려울 것입니다. 머신러닝을 물리적 기기나 센서에 사용되는 것은 이제 흔히 볼 수 있는 것으로, 기기 설정 변화가 머신 러닝에 제대로 반영되지 않는 것 역시 “nobody knows” pattern으로 볼 수 있습니다.

Diagram

diagram

Pros

Cons

Work around