[Reliable Machine Learning] Chapter2. Data Management Principles (3) - Reliability
이 글은 <Reliable Machine Learning, Cathy Chen, Niall Richard Murphy, Kranti Parisa, D. Sculley, Todd Underwood> 2장 Data Management을 참고하여 작성했습니다.
Chapter2. Data Management Principles (2) - Reliability
Data Reliability
데이터 신뢰성은 데이터가 일관되게 정확하고, 필요한 시점에 사용할 수 있으며, 여러 사용자가 사용하더라도 동일한 결과를 제공하는 능력을 의미합니다. 신뢰성있는 데이터가 되기 위해 가져야 할 5가지 덕목에 대해서 알아보겠습니다.
1. Durability
데이터가 손실되거나 손상되지 않고 지속적으로 유지되는 능력을 의미합니다. 기본적으로 저장된 데이터는 99.999999999 % 이상 손실되지 않음을 보장해야 합니다. 사실 이 부분은 스토리지 레벨에서의 이야기고, 우리가 주의해야할 수 있는 부분에 대해서 이야기해보겠습니다.
ML 파이프라인의 경우 데이터 변환이 종종 일어납니다. 이러한 변환이 어떻게 진행되는지 데이터 변환에 대한 로그를 남기고, 자원의 여유도 있다면 변환 전 후의 데이터 사본을 저장하는 것도 좋습니다. 그리고 변환에 대한 모니터링 시스템을 구축하는 것이 좋습니다. 30% 샘플링을 진행하는 변환 작업이라면 정말 데이터가 30%로 줄었는지 모니터링 시스템을 구축하는 등 변환이 제대로 이뤄지는지 실시간으로 확인할 수 있는 모니터링 시스템을 구축하는 것이 좋습니다.
2. Consistency
여러 컴퓨터에서 데이터에 접근할 때, 모든 읽기 작업에서 동일한 데이터를 보장하는 것을 의미합니다. 일관성(Consistency)을 보장하기 위해서는 매 업데이트마다 모든 사본에 업데이트를 반영해야 하지만, 이는 성능에 부정적인 영향을 미칠 수 있습니다. 따라서 시스템에서 어느 정도의 일관성이 필요한지를 판단하고, 일관성과 성능 사이의 균형을 잘 맞추어 결정해야 합니다.
팁: 꼭 일관된 데이터만을 사용할 필요는 없습니다. 데이터의 특성에 맞게, 때로는 성능을 위해서, 일관성을 보장하지 않는 데이터도 사용할 수 있습니다.
3. Version Control
다양한 데이터셋, ML 모델, 파일들을 관리하기 위해, version control 이 가능하도록, 환경을 구축해두는 것도 권장됩니다.
4. Performance
스토리지의 성능이 충분하지 않다면 다른 스토리지 옵션을 고려하는 것이 좋습니다. ML 시스템에서 어떤 스토리지를 선택하느냐도 중요한 문제입니다.
5. Availability
데이터가 우리의 저장 시스템에 있고 일관되게 복제되며, 합리적인 성능으로 읽을 수 있어야 합니다.
Chapter 2에서는 데이터 라이프 사이클과 데이터가 충족해야 할 요구 사항에 대해 살펴보았습니다. Chapter 3에서는 Basic Introduction to Models 를 다룰 예정입니다.