개발 이야기/[스터디] 머신러닝 엔지지어링

[Reliable Machine Learning] Chapter 7. Training Systems (3) - Common Training Reliability Problems

경이로운아일라 2024. 9. 5. 21:00
이 글은 <Reliable Machine Learning, Cathy Chen, Niall Richard Murphy, Kranti Parisa, D. Sculley, Todd Underwood> 7장 Training Systems을 참고하여 작성했습니다.

 

Chapter 7. Training Systems (3) - Common Training Reliability Problems

 

ML(머신러닝) 학습 시스템은 복잡한 데이터 처리 파이프라인으로 구성되어 있어 다양한 문제에 직면할 수 있습니다. 특히 데이터 민감성, 재현성 부족, 용량 부족은 학습 시스템에서 자주 발생하는 신뢰성 문제입니다. 이번 글에서는 앞선 세 가지 문제와 더불어 팀 또는 사회적 구조에서 발생할 수 있는 문제들을 살펴보겠습니다.

 

1. 데이터 민감성

ML 모델은 입력 데이터의 작은 변화에도 매우 민감하게 반응할 수 있습니다. 예를 들어, 데이터 분포의 변화나 특정 데이터 서브셋의 부족은 모델 성능에 큰 영향을 미칠 수 있습니다. 전 세계 구매 데이터를 예측하려는 모델이 미국과 캐나다 거래 데이터만을 가지고 있다거나, 고양이 사진은 없고 개 사진만 많은 이미지 분류 알고리즘을 생각해보세요. 이러한 경우, 모델은 편향된 데이터로 학습되기 때문에 현실을 왜곡된 시각으로 보게 됩니다. 

 

2. 재현성 부족

ML 학습 시스템에서는 동일한 데이터와 모델로 반복 학습을 하더라도 동일한 결과를 얻기가 쉽지 않습니다. 모델 재현에 실패하는 일반적인 원인은 다음과 같습니다:

  1. 모델 구성 및 하이퍼파라미터 차이
  2. 학습 데이터 차이
  3. ML 학습 프레임워크 등의 버전 차이

이러한 문제들은 어느 정도 조정할 수 있지만, 해결하기 더 어려운 요인들도 존재합니다:

  1. 무작위 초기화
  2. 시스템 병렬 처리
  3. 데이터 병렬 처리

이 모든 문제를 완벽하게 해결하는 것은 비용이 많이 들며 사실상 불가능에 가깝습니다. 

 

3. 용량 부족

ML 학습 시스템에서 자원 부족은 흔히 발생하는 문제입니다. 모델 학습에는 데이터 I/O, 계산 리소스(CPU, GPU), 그리고 메모리 대역폭이 필요하며, 데이터 크기나 분포가 변하면 이러한 자원이 쉽게 부족해질 수 있습니다. 이를 방지하기 위해서는 미리 시스템의 용량을 충분히 확보하고 관리하는 것이 중요합니다. 그리고, 만약 학습 시스템이 48시간 동안 장애를 겪었다면, 그 기간 동안 모델이 갱신되지 않아 성능이 저하될 가능성이 큽니다. 시스템이 복구된 후에는 우선순위를 설정하여 가장 중요한 모델부터 재학습을 통해 정상화하는 것이 바람직합니다.

 

4. 조직적 과제

ML 학습 시스템의 신뢰성 문제는 기술적인 문제뿐만 아니라 조직적인 문제에서도 발생할 수 있습니다. 많은 조직이 처음에는 모델 개발자만 고용하지만, 시스템 안정성을 확보하려면 ML 운영 엔지니어와 신뢰성 엔지니어(SRE)도 필요합니다. 또한, ML 시스템의 신뢰성 문제는 분산 시스템의 문제와 유사하기 때문에, 분산 시스템을 다뤄본 경험이 있는 엔지니어들이 시스템을 잘 운영할 수 있습니다. 하지만 장기적으로는 모델 개발자와 운영 엔지니어 간의 협업이 필수적입니다. 조직 내에서 ML 모델의 품질 문제는 모두가 공동으로 책임져야 하며, 이를 해결하기 위한 시스템적 지원이 필요합니다. 

 

5. 윤리와 공정성

ML 시스템은 강력한 도구이지만, 잘못 사용되면 큰 피해를 줄 수 있습니다. 따라서 조직 내에서 ML의 윤리적 사용을 감독하는 사람이 필요하며, 데이터 프라이버시, 공정성, 편향에 대한 검토를 꾸준히 수행해야 합니다.