
회사가 인공지능 서비스를 개발하고 실제 환경에 배포했다고 해서 운영이 끝나는 것은 아니며 오히려 배포된 머신러닝 모델의 성능은 실제 사용자들을 대상으로 운영되는 환경에서 시간이 지남에 따라 예상과 다르게 저하될 수 있습니다. 실제 사용자가 입력하는 데이터의 특성이 모델을 훈련할 때 사용했던 데이터와 다르다면 모델의 예측 정확도가 떨어질 수 있으며 사용자의 행동 패턴이 변함에 따라 모델이 과거에 학습했던 패턴도 더 이상 현재 상황에 맞지 않을 가능성이 높아집니다.
더욱이 시스템 장애나 데이터 품질의 악화 같은 예상치 못한 외부 요인들도 인공지능 서비스의 실제 성능에 직접적인 영향을 미칩니다. 이러한 문제들을 빨리 감지하고 적절하게 대응하지 못한다면 사용자의 신뢰도가 빠르게 떨어집니다. 인공지능 서비스 모니터링 플랫폼은 이러한 배포 이후의 운영 단계에서 발생하는 다양한 문제들을 효과적으로 관리할 수 있습니다.
일반적인 소프트웨어 서비스의 성능을 평가하는 방식과는 달리 인공지능 서비스의 성능을 평가하려면 머신러닝 분야의 특수한 지표들이 필요합니다. 모델이 예측한 결과가 실제와 얼마나 일치하는지를 나타내는 정확도와 모델이 예측한 긍정적인 결과 중에서 실제로 맞는 비율을 나타내는 정밀도 그리고 실제 긍정적인 경우 중에서 모델이 올바르게 예측한 비율을 나타내는 재현율 그리고 정밀도와 재현율을 조화시킨 척도인 F1 점수 같은 다양한 전문적인 지표들이 존재합니다.
모니터링 플랫폼은 이러한 모든 성능 지표들을 실시간으로 계산하고 계속해서 추적합니다. 사용자가 직접 입력한 실제 의견 데이터와 사전에 검증된 데이터를 수집하여 모델의 진정한 성능을 평가할 수 있으므로 모델을 훈련할 때 사용했던 데이터 기반의 성능과 실제 운영 환경에서의 성능 사이에 존재하는 차이를 명확히 파악할 수 있으며 시간이 지남에 따른 성능의 변화 추이를 분석하여 성능이 떨어지는 신호를 조기에 감지합니다.

머신러닝 모델의 성능이 저하되는 원인은 주로 두 가지 형태로 나타납니다. 첫 번째는 입력되는 데이터의 특성이 모델을 훈련했을 때의 데이터와 달라지는 현상으로 이를 데이터 변화라고 부르며 두 번째는 동일한 입력에 대해 모델의 출력 패턴이 변하는 현상으로 이를 모델 변화라고 부릅니다. 모니터링 플랫폼은 실시간으로 들어오는 입력 데이터의 통계적 특성을 분석하고 그것을 모델을 훈련했던 데이터와 비교합니다. 통계학적 검증 방법들을 활용하여 관찰된 차이가 의미 있는 변화인지 아니면 단순한 잡음과 같은 작은 변동인지를 구분할 수 있으므로 실제 문제와 정상 범위의 변동을 명확히 분리할 수 있으며 확인된 변화의 원인을 파악하여 모델을 다시 훈련해야 하는지 아니면 데이터 품질을 개선해야 하는지를 판단합니다.

객관적인 숫자로 측정되는 성능 지표만큼이나 실제 사용자가 느끼는 주관적인 만족도도 인공지능 서비스의 품질을 평가하는 데 매우 중요합니다. 모니터링 플랫폼은 사용자가 제공하는 의견을 수집하고 그 의견을 분석합니다. 사용자가 인공지능의 응답이 정확한지 또는 도움이 되는지 아니면 부족한지를 표시하면 이러한 평가들을 모아서 전체 서비스의 품질을 평가합니다. 사용자가 입력한 의견을 머신러닝 모델에 새로운 훈련 데이터로 추가하면 모델이 시간이 지남에 따라 더욱 좋아질 수 있으며 특정 사용 상황이나 특정 사용자 그룹에서 성능이 유독 낮은 부분을 찾아내기 위해 사용자 의견의 패턴을 분석합니다.

인공지능 서비스의 성능은 예측 정확도만이 아니라 사용자가 요청한 후 얼마나 빨리 결과를 받을 수 있는지도 매우 중요하며 사용자는 빠른 응답을 기대하고 서비스가 항상 이용 가능하기를 원합니다. 모니터링 플랫폼은 사용자가 요청을 보낸 시점부터 결과를 받는 시점까지의 시간을 계속 추적하고 서비스가 언제든지 이용 가능한 상태인지를 감시합니다. 응답 시간이 조금씩 계속 증가하는 추세를 감지하면 모델의 복잡도가 증가했거나 데이터를 처리하는 방식이 비효율적이 됐을 가능성이 있으므로 이러한 원인들을 파악하고 미리 대응할 수 있으며 특정 지역이나 특정 시간대에 성능 차이가 있는지를 분석합니다.
• 성능 지표 계산 정확도와 정밀도를 실시간으로 추적합니다
• 변화 감지 데이터 변화와 모델 변화를 찾아냅니다
• 사용자 의견 수집 사용자 만족도를 측정합니다
• 응답 시간 감시 응답 속도를 모니터링합니다
• 이상 경고 성능 저하를 조기에 알립니다
• 원인 분석 문제의 근본 원인을 파악합니다
• 자동 복구 일부 문제는 자동으로 해결합니다
• 재훈련 필요 여부 판단 모델 재훈련의 필요성을 판단합니다
문제가 발생한 후에 대응하는 것도 중요하지만 문제가 발생하기 전에 미리 예측하고 준비하는 것이 훨씬 더 효율적이고 효과적입니다. 모니터링 플랫폼은 과거에 성능이 저하됐을 때의 패턴들을 학습하여 비슷한 상황이 나타날 때 미리 경고를 보냅니다. 각 지표가 보이는 작은 변화의 추세를 분석하여 성능이 문제가 될 만큼 나빠지기 전에 모델을 다시 훈련해야 함을 미리 알려주므로 사용자가 느끼지 않을 정도의 서비스 중단을 방지할 수 있으며 특정 상황이나 특정 사용 방식에서 성능이 부족할 것으로 예상되면 그 전에 모델을 개선합니다.

성능 저하가 확인되면 모델을 다시 훈련하는 것이 필요합니다. 모니터링 플랫폼은 재훈련이 필요한 시점을 판단하고 자동으로 재훈련을 시작하는 파이프라인을 실행합니다. 새로운 데이터로 모델을 다시 훈련하고 검증 데이터로 확인하여 성능이 실제로 좋아졌음을 확인한 후 자동으로 실제 환경에 적용할 수 있으므로 빠른 대응이 가능합니다. 다만 너무 자주 새로운 버전을 배포하는 것은 피하고 통제된 절차를 따라 진행하며 새로 만들어진 모델의 성능이 기존 모델보다 오히려 나쁘면 배포를 중단합니다.
전체적으로 보면 모델의 성능이 좋다고 해도 특정 사용자 그룹이나 특정 유형의 데이터에서는 성능이 좋지 않을 수 있습니다. 모니터링 플랫폼은 데이터를 여러 가지 방식으로 나누어서 각 그룹별로 성능 차이를 분석합니다. 나이 성별 지역 같은 인구학적 특성을 기준으로 성능을 평가하면 특정 집단에 대해 모델이 편향된 예측을 하는지를 찾아낼 수 있으므로 공정성 문제를 해결할 수 있습니다. 또한 입력 데이터의 특성에 따라 성능을 분석하여 모델이 특정 상황에서 약한 부분을 파악합니다.

모델을 더욱 복잡하고 정교하게 만들면 성능은 향상될 수 있지만 그에 따라 비용도 함께 증가합니다. 모니터링 플랫폼은 성능과 비용의 관계를 분석합니다. 더욱 복잡한 모델로 업그레이드했을 때 얻어지는 성능 향상이 추가로 필요한 비용에 맞는 가치를 제공하는지를 평가할 수 있으므로 투자 결정을 합리적으로 내릴 수 있으며 모델의 규모를 줄이면서도 성능을 유지하는 기술을 활용할 수 있습니다.
