본문 바로가기
머신러닝 시스템 설계

머신러닝 시스템 설계 - 8장 데이터 분포 시프트와 모니터링 요약

by 공일공공 2023. 8. 23.

머신러닝 시스템 설계 8장 데이터 분포 시프트와 모니터링을 요약한 내용입니다.

 

머신러닝 시스템 설계 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

8.1 머신러닝 시스템 장애 원인

장애는 시스템에 대한 기대치가 한가지 이상 어긋날 때 일어납니다.

전통적인 소프트웨어에서는 주로 시스템 운영에 대한 기대치,

즉 시스템 로직이 레이턴시와 스루풋 같은 운영 지표의 기대 범위 안에서 실행되는지가 중요합니다.

ML 시스템에서는 운영 지표와 ML 성능 지표 모두 신경 써야 합니다.

 

운영상 기대치를 어기는 문제는 감지하기가 보다 쉽습니다.

반면에 ML 성능상 기대치를 어기는 문제는 프로덕션 환경에서

ML 모델 성능을 측정하고 모니터링해야 하므로 감지하기가 보다 어렵습니다.

 

 

 

8.1.1 소프트웨어 시스템 장애

소프트웨어 시스템 장애는 ML에 속하지 않는 시스템에서 발생하는 장애입니다. 다음은 몇 가지 예입니다.

 

의존성 장애

 시스템이 의존성을 갖는 소프트웨어 패키지 혹은 코드베이스에 중단이 발생해 시스템이 중단되는 경우입니다.   서드파티가 의존성을 유지관리할 때 흔히 발생하며,

 의존성을 유지 관리하는 서드파티가 더이상 존재하지 않는 경우 특히 자주 발생합니다.

 

배포 실패 

 배포 오류로 인한 실패입니다.

 

하드웨어 오류

 CPU나 GPU처럼 모델 배포에 사용하는 하드웨어가 제대로 작동하지 않는 경우입니다.

 

 다운타임 또는 충돌

 시스템 구성 요소가 다른곳에 있는 서버, 예컨데 AWS나 호스팅 서비스에서 실행되는 경우

 해당 서버가 다운되면 시스템도 따라서 다운됩니다.

 

소프트웨어 시스템 장애를 해결하려면 ML 기술이 아니라 전통적인 소프트웨어 엔지니어링 기술이 필요합니다.

ML 시스템 배포에도 전통적인 소프트웨어 엔지니어링 기술이 중요한 만큼

ML 엔지니어링은 보통 ML이 아닌 엔지니어링에 중점을 둡니다.

 

소프트웨어 시스템 장애가 만연한 이유는 업계에서 ML 도입이 아직 초기 단계이고,

따라서 ML 프로덕션 환경을 위한 도구가 한정적이며

아직 모범 사례가 잘 개발되거나 표준화되지 않았기 때문입니다.

 

그러나 ML 프로덕션 환경을 위한 도구와 모범 사례가 늘어남에 따라

소프트웨어 시스템 장애 비율이 감소하고 ML 한정 장애의 비율이 증가할 것이라고 믿을만 합니다.

 

 

 

8.1.2 머신러닝 한정 장애

ML 한정 장애는 ML 시스템과 관련된 장애입니다.

 

ML 한정 장애는 전체 장애에서 차지하는 비중은 낮지만 탐지하거나 수정하기 어렵고

ML 시스템이 온전히 사용되지 못하게 하므로 ML이 아닌 영역의 장애보다 훨씬 더 위험합니다.

그리고 모델 배포후에 발생하는 매우 흔한 세가지 문제,

프로덕션 데이터가 훈련 데이터와 다른경우, 에지 케이스퇴행성 피드백 루프를 알아봅니다.

 

-프로덕션 환경 데이터가 훈련 데이터와 다른 경우

ML모델을 훈련 데이터로 학습함은 모델이 훈련 데이터에 내재된 분포를 학습한 후에

그 학습된 분포를 통해 훈련 중 본 적 없는 데이터에 대해 정확한 예측값을 만들어냄을 의미합니다.

 

모델이 본 적 없는 데이터에 대해 정확한 예측값을 만들어낸다면

이 모델이 '본 적 없는 데이터에도 충분히 일반화' 됐다고 얘기합니다.

개발 중 모델 평가에 사용하는 테스트 데이터는 본 적 없는 데이터여야 하며

이에 대한 모델 성능은 모델이 얼마나 잘 일반화 될지 가늠하게 해줍니다.

 

ML 교과 과정에서 먼저 배우는 것 중 하나는

훈련 데이터와 본 적 없는 데이터가 유사한 분표에서 나와야 한다는 점입니다.

즉, 본 적 없는 데이터를 훈련 데이터 분포와 동일한 정상 분포에서 추출했다고 가정합니다.

본 적 없는 데이터를 다른 분포에서 추출하면 모델이 제대로 일반화되지 않을 수 있습니다.

 

이 가정은 대개 올바르지 않은데 그 이유는 두 가지 입니다.

 

1. 실제 데이터에 내재된 분포는 훈련 데이터에 내재된 분포와 같지 않을 수 있습니다. 

 훈련 데이터셋이 모델이 프로덕션 환경에서 접할 데이터를

 정확하게 표현하도록 큐레이팅 하기는 매우 어렵습니다.

 현실 데이터는 다면적이고 많은 경우 변형이 무한에 가까운 반면

 훈련 데이터는 유한하고 데이터셋 생성과 처리에 사용할 수 있는 시간, 연산과 인적 자원에 의해 제한됩니다.

 

2. 현실 세계는 정상성을 갖지 않습니다. 모든 것은 변하며 데이터 분포는 시프트합니다.

 EX) 2019 중국의 도시 우한을 검색하는 동기 : 여행 정보

       코로나 19이후 검색 동기 : 코로나 19의 발원지

 또 다른 흔한 장애 모드는 모델이 처음 배포될 때는 훌륭하게 작동하지만

 시간에 따라 데이터 분포가 변하면서 성능이 저하되는 것입니다. 

 

 데이터 시프트는 항상, 갑자기, 점진적으로 혹은 계절성을 띠며 발생합니다.

 

 모니터링 대시보드에서 데이터 시프트처럼 보이는 것들은 사실 대부분 내부 오류입니다. 

 그 원인은 ML 시스템의 복잡성과 잘못된 배포 관행입니다.

 

- 에지 케이스

에지 케이스 : 너무 극단적이어서 모델이 치명적인 실수를 하게 되는 데이터 샘플

에지 케이스는 보통 동일한 분포에서 나온 데이터 샘플이지만,

모델이 잘 작동하지 않는 데이터 샘플 수가 급증했다면

내재된 데이터의 분포가 시프트하지 않았나 의심해볼 수 있습니다.

 

에지 케이스가 배포된 ML 시스템을 망가뜨리는 사례로 종종 자율 주행 자동차를 이야기 합니다.

자율 주행 자동차 외에도 의료 진단, 교통 관제, e-디스커버리등

안전이 중요한 모든 애플리케이션이 이러한 사례에 해당합니다.

 

- 퇴행성 피드백 루프

피드백 루프 : 예측값을 제시한 다음 예측값에 대한 피드백이 되돌아올 때까지 걸리는 시간

 

퇴행성 피드백 루프: 예측 자체가 피드백에 영향을 미치고,

                             이 피드백이 모델의 다음번 반복 학습에 영향을 미칠 때 발생

 

ML에서 시스템의 예측은 사용자가 시스템과 상호 작용하는 방식에 영향을 미칩니다.

시스템과 사용자의 상호 작용은 때때로 같은 시스템에 대한 훈련 데이터로 사용되므로

퇴행성 피드백 루프가 발생하면서 의도하지 않은 결과를 초래할 수 있습니다.

 

퇴행성 피드백 루프는 추천 시스템과 광고 클릭률 예측 등

사용자에게서 획득한 자연 레이블이 존재하는 작업에서 특히 흔합니다.

 

사람이 관여하지 않는다면 퇴행성 피드백 루프로 인해

모델이 최적 성능에 못 미치는 상태로 계속 동작하게 됩니다.

 

최악의 경우 피처 X가 없는 후보에 대해 편향을 갖는 등 데이터에 존재는 편향이 영속화 되고 확대됩니다.

 

- 퇴행성 피드백 루프 감지

시스템이 오프라인 일때는 퇴행성 피드백 루프를 감지하기 어렵습니다.

퇴행성 루프는 사용자 피드백으로 인해 발생하는데 시스템이 온라인 상태가 되기 전까지는,

즉 사용자에게 배포되기 전까지는 사용자가 존재하지 않기 때문입니다.

 

추천 시스템에서는 시스템이 오프라인일 때도 시스템 출력 인기도의 다양성을 측정해

퇴행성 피드백 루프를 감지할 수 있습니다.

 

항목의 인기도는 과거에 상호 작용이 일어난 횟수를 기반으로 측정합니다.

모든 항목의 인기도는 롱테일 분포를 따릅니다.

소수 항목만 다수 사용자와 상호 작용이 발생하고 대부분 항목은 상호 작용이 거의 발생하지 않습니다.

 

 

- 퇴행성 피드백 루프 고정

퇴행성 피드백 루프는 흔한 문제이므로 교정 방법도 많습니다.

첫 번째는 무작위화를 사용하는 것이고 두 번째는 위치 피처를 사용하는 것입니다.

 

무작위화

퇴행성 피드백 루프로 인해 시간에 따라 시스템 출력이 점차 단조로워질 수 있습니다.

예측에 무작위화를 도입하면 이런 단조로움을 줄일 수 있습니다.

 

무작위화는 다양성을 개선하는 한편 사용자 경험을 저하합니다.

제품이 항목을 계속 무작위로 보여주면 사용자는 해당 제품에 대한 흥미를 완전히 잃을 수 잇습니다.

 

퇴행성 피드백 루프는 예측에 대한 사용자 피드백으로 인해 발생하며,

예측에 대한 사용자 피드백은 보이는 위치에 따라 편향됩니다.

 

사용자에게 노래를 다섯 개 씩 추천하는 추천 시스템 예시를 생각해보면,

최상단 추천곡은 나머지 네 곡에 비해 클릭 가능성이 훨씬 높습니다.

 

위치 피처

위치 피처 : 숫자 혹은 부울 (위치 임베딩과는 다름)

예측값이 보여치는 위치가 피드백에 어떤 식으로든 영향을 미치는 경우

위치 피처를 사용해 위치 정보를 인코딩할 수 있습니다.

 

 

 

8.2 데이터 분포 시프트

데이터 분포 시프트 : 지도 학습에서 모델이 동작하는 데이터가 시간에 따라 변하는 현상

이에 따라 모델 예측도 시간이 지날수록 덜 정확해집니다. 

 

모델이 훈련된 데이터의 분포를 원본 분포라고 하며

모델이 추론을 실행하는 데이터의 분포를 대상 분포라고 합니다.

 

 

8.2.1 데이터 분포 시프트 유형

 

-공변량 시프트(Covarite shift)

공변량 시프트 : P(X)가 변하지만 P(Y | X)는 동일하게 유지되는 경우

입력의 분포는 변하지만 입력이 주어졌을 때 출력의 조건부 확률은 동일하게 유지됩니다.

 

통계학에서 공변량은 주어진 통계적 시행 결과에 영향을 미칠 수 있지만

직접적인 관심 대상은 아닌 독립 변수입니다.

지도학습에서는 레이블이 직접적인 관심변수이고, 입력 피처는 공변량 변수 입니다.

 

모델 개발 시 데이터 선택 프로세스에 내재된 편향 때문에 공변량 시프트가 발생할 수 있습니다.

이 편향이 생기는 이유는 특정 클래스의 샘플을 수집하기가 어렵기 때문입니다.

 

공변량 시프트는 모델이 좀 더 쉽게 학습할 수 있도록 훈련 데이터를 인위적으로 변경할 때 발생하기도 합니다.

 

공변량 시프트는 모델 학습 프로세스, 특히 능동적 학습 프로세스 때문에 생기기도 합니다.

훈련 입력 분포가 실제 입력 분포와 다르게 학습 프로세스에 의해 변경되면서

공변량 시프트가 의도치 않게 동반됩니다.

 

프로덕션 환경에서 공변량 시프트는 일반적으로 환경 혹은

애플리케이션 사용 방식이 크게 변함에 따라 발생합니다.

 

 

- 레이블 시프트(Label Shift)

레이블 시프트 : P(Y)가 변하지만  P(X | Y)가 동일하게 유지되는 경우

출력 분포가 변하지만 주어진 출력에 대한 입력 분포는 동일하게 유지되는 경우

 

입력 분포가 변하면 출력 분포도 변해 공변량 시프트와 레이블 시프트가 동시에 발생합니다.

하지만 공변량 시프트가 반드시 레이블 시프트를 동반하는 것은 아닙니다.

EX) 유방암에 걸릴 확률을 줄여주는 예방약이 있다고 가정,

       확률  P(X)는 모든 연령대의 여성에 대해 감소하므로 공변량 시프트에 해당되지 않음.

       하지만 유방암에 걸린 사람의 경우 연령 분포가 동일하게 유지되므로 이것은 레이블 시프트에 해당.

 

레이블 시프트는 공변량 시프트와 밀접하게 관련되므로 모델이 감지하고

레이블 시트에 맞게 조정하는 방법은 공변량 시프트 시의 조정 방식과 비슷합니다.

 

- 개념 드리프트(Concept drift)

개념 드리프트 (사후 시프트) : 입력 분포가 동일하게 유지되지만 정해진 입력에 대한

                                           출력의 조건부 분포가 변하는 경우

( P(Y | X)가 변하지만 P(X)는 동일하게 유지되는 경우)

 

많은 경우의 개념 드리프트는 주기적이거나 계절적입니다.

 

 

8.2.2 일반적인 데이터 분포 시프트

모델 성능을 저하할 수 있는 몇 가지 변화 유형이 있습니다.

 

하나는 피처 변화 입니다.

신규 피처가 추가되거나 이전 피처가 제거되거나, 피처 값의 가능한 범위가 변한 경우입니다.

 

레이블 스키마 변화는 Y 값의 가능한 범위가 변하는 경우입니다.

레이블 시프트의 경우 P(Y)가 변하지만  P(X | Y)는 그대로 유지됩니다.

반면 레이블 스키마가 변하면 P(Y)와 P(X | Y)가 모두 변하게 됩니다.

스키마는 데이터 구조를 설명하므로 특정 작업에 대한 레이블 스키마는 해당 작업의 레이블 구조를 설명합니다.

 

회귀 작업의 경우 레이블 값의 가능한 범위가 변하면서 레이블 스키마 변화가 발생할 수 있습니다.

분류 작업의 경우 신규 클래스로 인해 레이블 스키마 변화가 발생할 수 있습니다.

레이블 스키마 변화는 제품이나 문서에 대한 범주화 같은

고차원 카디널리티 작업 (클래스가 많은 작업)에서 특히 흔하게 발생합니다.

 

 

8.2.3 데이터 분포 시프트 감지

데이터 분포 시프트는 모델 성능이 저하될 때만 문제됩니다.

따라서 프로덕션 환경에서 모델의 정확도 관련 지표를 모니터링하면서 변화를 확인하는 방법이 있습니다.

 

정확도 관련 지표는 모델의 예측값을 그라운드 트루스 레이블과 비교하는 식으로 계산합니다.

그라운드 트루스 레이블이 사용 불가능하거나 너무 지연돼 유용하지 않다면

대신 관심있는 다른 분포를 모니터링 할 수 있습니다.

 

관심있는 분포는 입력 분포 P(X), 레이블 분포 P(Y), 조건부 확률 분포인 P(X | Y)와  P(Y | X) 입니다.

입력 분포를 모니터링하기 위해 레이블 분포와 조건부 분포를 모니터링하려면 Y를 알아야 합니다.

 

- 통계적 방법

많은 회사에서 두 분포가 동일한지 파악하는 데 사용하는 방법은

단순히 최소, 최대, 평균, 중앙값, 분산, 다양한 분위수, 왜도, 첨도 같은 통계량을 비교하는 것입니다.

 

보다 정교한 방법은 2-표본 검정을 사용해 두 모집단 간의 차이가 통계적으로 유의한지 확인하는 방법입니다.

통계적으로 유의한 차이의 경우 이것이 샘플링으로 인한 산포 때문에

발생한 무작위 변동일 가능성은 매우 낮습니다.

 

주의할 점은 차이가 통계적으로 유의하더라도 실용적으로는 의미가 크지 않을 수 있다는 점입니다.

 

기본 2-표본 검정은 KS검정이라고도 합니다.

이는 비모수 통계 검정이므로 내재 분포에 대한 어떤한 매개변수도 필요하지 않습니다.

즉 내재 분포에 대한 가정을 두지 않아 모든 분포에 적용 가능합니다.

 

다만 KS 테스트의 주요 단점을 1차원 데이터에만 적용할 수 있다는 점입니다. 

모델의 예측과 레이블이 1차원이면 KS 검정은 레이블 또는 예측 시프트를 감지하는데 유용합니다.

하지만 고차원 데이터에는 작동하지 않으며 피처는 주로 고차원입니다.

 

 

 

- 시프트를 감지하기 위한 시간 척도 윈도

시간적 시프트: 시간이 지남에 따라 발생하는 시프트

시간적 시프트를 감지하는 일반적인 접근법은

ML 애플리케이션에 대한 입력 데이터를 시계열 데이터로 처리하는 것 입니다.

 

시간 척도 윈도는 시간적 시프트를 다룰 때 데이터를 살펴보는 기준으로

우리가 감지할 수 있는 시프트 수준에 영향을 미칩니다.

 

시간에 따른 실행 통계를 계산할 때 누적 통계와 슬라이팅 통계를 구별해야 합니다.

슬라이딩 통계는 단일 시간 척도 윈도 내에서 계산하며 누적 통계는 더 많은 데이터로 지속 업데이트합니다.

즉, 각 시간 척도 윈도의 시작지점마다 슬라이딩 정확도는 재설정 되지만

누적 슬라이딩 정확도는 재설정 되지 않습니다.

 

 

8.2.4 데이터 분포 시프트 해결

모델이 프로덕션 환경의 새로운 분포에서 잘 작동하도록 하는 세가지 주요 접근법이 있습니다.

 

1. 대규모 데이터 셋으로 모델을 훈련하는 방법

이 방식은 훈련 데이터 셋이 충분히 크다면 통합적인 분포,

즉, 프로덕션 환경에서 모델이 마주할 모든 데이터 포인트를 가진 분포를 학습할 수 있을 거라도 기대합니다.

 

2. 새로운 레이블을 요구하지 않으면서 훈련된 모델을 대상 분포에 적응 시키는 방법

2013년 논문 [Domain Adatation under Target and Conditional Shift]에서

대상 분포의 레이블을 사용하지 않고

공변량 시프트와 레이블 시프트 모두에 대한 모델 예측 값을 수정하기 위해

조건부와 주변 분포의 커널 임베딩과 함께 인과적 해석을 사용했습니다.

 

3. 대상 분포에서 레이블이 지겅된 데이터를 가져와 모델을 재훈련하는 방법

재훈련 : 이전 데이터와 신규 데이터 모두를 합쳐 모델을 처음부터 다시 훈련하거나

               신규 데이터로 기존 모델 훈련을 이어나가는 일

 

모델을 재훈련할 때 결정해야할 두 가지 조건

1. 모델을 처음부터 훈련할지 혹은 체크 포인트에서 이어서 훈련할지 결정

2. 사용할 데이터, 예컨대 지난 24시간, 지난주, 지난 6개월 데이터가 드리프트를 시작한 시점의 데이터 중 선택

 

 

8.3 모니터링과 관찰 가능성

모니터링 : 문제가 발생했을 때 판단에 도움이 될 수 있는 다양한 지표를 추적, 측정, 기록하는 작업

관찰 가능성 : 시스템에 대한 가시성을 제공하는 방식으로 시스템을 설정하는 것

 

모니터링에서 가장 중요한 것은 지표입니다.

ML 시스템도 소프트웨서 시스템이므로 모니터링해야 하는 최우선 순위 지표는 운영지표입니다.

운영 지표는 시스템 상태를 전달하도록 설계됐으며

일반적으로 시스템이 실행되는 네트워크, 시스템이 실행되는 애플리케이션 등 세 수준으로 나뉩니다.

 

 

8.3.1 머신러닝 관련 지표

 

- 정확도 관련 지표 모니터링

시스템이 예측에 대한 사용자 피드백을 수신하면 반드시 이를 기록하고 추적해야 합니다.

일부 피드백으로 자연 레이블을 추론하고, 이것으로 모델의 정확도 관련 지표를 계산 할 수 있습니다.

정확도 관련 지표는 모델 성능 저하 여부를 확인하는데 가정 직접적으로 도움이 되는 지표입니다.

 

피드백은 자연 레이블을 직접 추론하는 데 사용하기 어렵더라도

ML 모델 성능 변화를 감지하는 데 사용할 수 있습니다.

사용자 피드백을 수집하도록 시스템을 설계할 수도 있습니다.

 

- 예측값 모니터링

예측값 아티팩트는 가장 일반적인 모니터링 대상입니다.

회귀 작업 에서 각 예측 값은 연속 값이며, 분류 작업에서 각 예측은 예측된 범주에 해당하는 이산 값입니다.

각 예측 값은 보통 숫자(저차원)에 불과하므로 시각화하기 쉬우며

요약 통계량을 계산하거나 해석하기도 쉽습니다.

 

분포 시프트 감지를 위해 예측값을 모니터링하기도 합니다.

예측값은 차원이 낮아 2-표본 검정을 수행하기도 보다 쉽습니다.

 

- 피처 모니터링

피처 모니터링의 첫 번째 단계는 피처 검증입니다.

즉, 피처가 기대하는 스키마를 잘 따르는지 확인합니다.

스키마는 일반적으로 훈련 데이터에서 혹은 상식선에서 생성됩니다.

 

기본 피처 검증 외에서 2-표본 검정을 사용해

피처 혹은 피처 집합의 내재 분포가 시프트했는지 감지할 수 있습니다.

 

피처 모니터링을 수행할 때 네 가지 주요 문제가 있습니다.

1. 회사에서 운영하는 프로덕션 환경 모델이 수백 개일 수 있으며 각 모델은 보통 피처를 수백개 사용합니다.

2. 추적 기능은 디버깅에서는 유용하지만 모델 성능 저하를 감지하는 데는 그다지 유용하지 않습니다.

3. 피처 추출은 종종 다양한 서비스를 사용해 다양한 단계에서 이뤄집니다.

4. 피처가 따르는 스키마가 시간에 따라 바뀔 수 있습니다.

 

이러한 우려가 있음에도 피처 모니터링은 중요합니다. 피처 공간의 변화는 ML 시스템 상태를 이해하는데

매우 유용하고, 우려사항을 고려해보면 적합한 피처 모니터링 솔루션을 선택하는데 큰 도움이 될 겁니다.

 

- 원시 입력 모니터링

원시 입력 데이터는 소스, 구조 형식이 다양하므로 모니터링하기 쉽지 않습니다.

ML 엔지니어는 데이터가 이미 부분적으로 처리된 데이터 웨어하우스에서만 데이터를 질의할 수 있습니다.

원시 입력 모니터링은 데이터 과학팀이나 ML팀이 아닌 데이터 플랫폼 팀이 담당하는 경우가 많으므로

이 책에서는 다루지 않습니다.

 

 

8.3.2 모니터링 도구

- 로그

전통적인 소프트웨어 시스템은 로그를 사용해 런타임에 발생한 이벤트를 기록합니다.

이벤트랑 발생한 시점 혹은 그 이후에 디버깅과 분석 목적으로

시스템 개발자가 관심을 가질 만한 모든 것을 말합니다.

 

로그 양은 매우 빠르게, 매우 커질 수 있습니다.

 

오늘날의 시스템은 다양한 구성요소로 이뤄집니다.

요청은 전송된 후 응답이 수신될 때까지 20~30회 서로 통신을 수행할수 있습니다.

사건을 감지하는 일보다 문제가 어느 지점인지 찾아내는 일이 더 어렵습니다.

 

따라서 이벤트를 로깅할 때는 가능한 나중에 찾아내기 쉽도록 합니다.

마이크로서비스 아키텍처를 사용하는 방식을 분산 추적이라고 합니다.

 

각 프로세스에 고유한 ID를 부여해 문제가 발생했을 때 오류 메시지에 해당 ID가 포함되도록 합니다.

이를 통해 로그 메시지를 검색할 수 있습니다.

그리고 이벤트마다 나중에 필요할 수 있는 모든 메타데이터를 기록해둡니다.

 

기록된 이벤트 수십억 건을 수작업으로 분석하기 불가능하므로

많은 회사에서 ML을 사용해 로그를 분석합니다.

 

- 대시보드

숫자만 보면 의미를 파악하기 힘들지만 그래프로 시각화하면 숫자 사이 관계를 알게되는 경우가 있습니다.

따라서 지표를 시각화하는 대시보드는 모니터링에 필수입니다.

 

대시보드의 또 다른 용도는 엔지니어가 아닌 사람도 모니터링하도록 해주는것입니다. 

그래프는 지표를 이해하는데 유용하지만 그래프 외에 경험과 통계적 지식 또한 필요합니다.

대시보드 상 지표가 과도하게 많으면 부패한 대시보드라는 현상으로 역효과가 날 수 있습니다.

 

- 경고

모니터링 시스템에서 의심스러운 무언가를 감지했다면 적절한 대상에게 경고를 보내야합니다.

경고는 다음 세가지 구성 요소로 이뤄집니다.

 

• 경고 정책

 경고가 발생할 조건을 지정합니다. 지표가 임곗값을 넘어설 때 경고를 생성할 수 있으며,

 이때 특정 기간을 설정할 수도 있습니다.

 

• 알림 채널 

 조건이 충족되면 알림을 받을 사람을 지정합니다

 

• 경고 설명

  경고를 받은 사람이 무슨일이 일어나고 있는지 이해하는데 도움을 줍니다. 설명은 가능한 상세해야 합니다.

 

 

8.3.3 관찰 가능성

관찰 가능성 : 제어 이론에서 파생된 개념으로, 런타임에 시스템에서 수집한 출력을 사용해

                    소프트웨어의 복잡한 동작을 이해하는 데 더 나은 가시성을 제공

 

관찰 가능한 시스템에 문제가 발생하면 추가로 코딩하는 일 없이

시스템 로그와 지표만 보고도 무엇이 잘못됐는지 파악할 수 있습니다.

관찰 가능성이란 시스템 런타임에 대한 충분한 정보를 수집하고 분석하는 방식으로

시스템을 계측하는 것입니다.

 

모니터링의 중심은 지표이며 지표는 일반적으로 집계를 통해 산출됩니다.

관찰 가능성을 통해 보다 세분화된 지표를 사용할 수 있으므로 모델 성능이 언제 저하되는지뿐 아니라

입력 중 어떤 유형에서, 어느 사용자 하위 그룹에서 어느 기간에 저하되는지도 알 수 있습니다.

 

ML에서 관찰 가능성은 해석 가능성을 포함합니다. 

해석 가능성은 ML 모델이 작동하는 방식을 이해하는데 도움이 되며

관찰 가능성은 ML 모델을 비롯한 전체 ML시스템이 작동하는 방식을 이해하는데 도움이 됩니다.