"AI시스템 가동후 모델의 추론 정확도 유지해야"

[심기보의 AI프로젝트 성공 비결⑯] 시스템 운용

전문가 칼럼입력 :2021/11/07 15:32

심기보 전 정보통신기술사협회장

지난회까지 요건정의, PoC, 설계, 구현, 테스트의 단계별로 AI 개발 포인트를 알아봤다. 이번 회는 AI 시스템이 가동된 후의 운용 단계에 대해 알아본다. AI 시스템 운용에서 중요한 과제는 모델의 정확도(Accuracy) 등 시스템을 이용 가능한 상태로 유지하는 것이다. AI 시스템은 자율적으로 학습하는 경우도 있기 때문에 사람 손이 개입되지 않은 운용을 예상하는 사람도 있을 수 있다. 그러나 통상의 업무 시스템과 마찬가지로 AI 시스템도 정기적인 가동 확인이나 백업, 장애 대응 등의 작업이 필요하다.

AI시스템 운용이 통상의 업무 시스템과 다른 점은 크게 두 가지다. 첫째, AI 시스템은 시스템화의 대상이 되는 모델이 계속 변한다. 둘째, AI 시스템은 모델 정확도를 유지하기 위한 유지보수가 필요하다. AI 시스템은 학습이라고 하는 동적인 처리를 실행하는 것이므로 가동 후에도 끊임없이 모델의 추론(Inference) 정확도를 유지할 필요가 있다.

계속적으로 학습 사이클 유지

AI 시스템 운용 단계에서는 데이터 변화와 계속적으로 학습의 사이클이 제대로 기능을 발휘하고 있는지를 검증하는 것이 포인트다. 시스템적인 가동을 감시할 뿐만 아니라 비즈니스를 파악해 ‘정확도를 어떻게 측정하는가’ ’어떤 것이 기능 악화라고 할 것인가?’라는 판단 기준을 준비해 둔다. 또 정확도가 변화한 때의 대상도 빠뜨려서는 안 된다.

정확도 유지에 필요한 것이 데이터다. AI 시스템은 입력 데이터에 대해 학습과 추론을 실행한다. 데이터가 일정 이상 변화한 경우 AI 시스템에 영향이 발생한다. 이러한 영향을 감시해 시스템에의 악영향을 방지하는 것이 운용 단계에서 요구된다. AI 시스템은 데이터가 나타내는 비즈니스 경향이 변화하는 것을 ‘데이터의 변화’로 포착한다. AI 시스템에 영향을 미치는 데이터 변화는 다양한 원인으로 발생한다. 경쟁기업이 신상품을 발표하면 경쟁 환경은 크게 변한다. 고객 기호도 시대에 따라 변한다. 공장 라인을 재검토하면 센서가 검지하는 부적합의 경향은 이전과 다를 것이다. 이러한 상황 변화가 데이터 변화를 일으킨다.

AI 시스템은 학습을 반복함으로써 이러한 데이터의 변화에 대응한다. 기계학습 모델의 학습 시에 문제가 되는 ‘과(過)학습(Overfitting)’이나 ‘일반화 성능’ 개념은 데이터 변화에 따른 대응의 유연성을 나타내는 지표다. 과학습은 개별 데이터 셋의 하나인 학습 데이터에 지나치게 특화하고 있는 상태로, 범용화 성능은 모델이 학습 데이터 이외의 데이터에 대해서도 학습 데이터와 동일한 수준에서 결과를 정확히 예측할 수 있는 능력을 가리킨다. 개발 시 범용화 성능을 향상하기 위한 시책을 행해도 예상치 못한 데이터나 환경의 변화에 따라 모델 정확도가 저하될 가능성이 없어지는 것은 아니다.

모델 평가부터 관리까지 실시

AI 시스템의 운용 단계는 3개의 프로세스로 되어 있다. 프로세스1은 모델 정확도(Accuracy)의 감시 및 평가 모델의 정확도가 유지되고 있는 지를 정기적으로 모니터링 한다. 악화되고 있는 경우에는 대처의 필요성을 판단한다. 이때, 모델의 감시 지표, 악화의 판단 기준을 기본으로 평가하는 것이 포인트다 프로세스 2는 모델의 재 학습이다. 정확도가 떨어진 모델에 대해 새로운 데이터로 재 학습하는 등 정확도를 유지하기 위한 대응을 실시한다. 모델을 수정할 때에는 AI 시스템 전체가 받을 수 있는 영향을 줄이는 것이 중요하다. 프로세스3은 모델의 관리다. 모델 출시(Release) 관리와 버전 관리를 시행한다. 계속적으로 모델을 이용하는 경우 모델의 처리 내용에 변화가 있는지 검증할 수 있도록 에비던스(Evidence)를 남기는 것을 잊어서는 안 된다. AI 시스템의 운용에서는 프로세스 1~3의 사이클을 안정적으로 계속 돌리는 것이 중요하다.

각 프로세스에서 실시해야 할 구체적인 내용을 보면 다음과 같다.

프로세스1(모델 정확도 감시 및 평가): 구현된 모델은 항상 새로운 데이터에 대해 추론한다. 그러나 높은 정확도로 추론을 계속할 수 있는 모델은 드물다. 정확도가 저하될 때에는 원인이 되는 데이터의 경향 변화에 기계학습 모델을 대응시키지 않으면 안 된다. 이 대응이 ‘모델의 재학습 ‘이라고 불리는 것으로 운용 단계에서도 중요한 태스크가 된다. 재 학습이 필요한지의 여부는 최근의 데이터에 대한 모델의 정확도로 판단한다. 여기에서 ‘모델 정확도’라는 개념에 대해 돌이켜보자. 모델이란 원래 학습 데이터라 불리는 입력 데이터를 기본으로 미지의 데이터에 대해 추론하도록 범용화한 것이다. 모델을 구축할 때에는 미지의 데이터에 대한 모델 예측이나 식별 정확성을 검증했다. 이때 사용하고 있던 지표가 모델 정확도다. 추론 모델의 정확도는 구축 시의 학습 데이터와 가동 후의 본 가동 데이터의 특징의 차이가 클수록 저하한다. 그래서 정확도가 변하고 있지 않은 지 끊임없이 모니터링해 정확도가 변한 모델이 있으면 처리를 검토한다.

모니터링 대상이 되는 정확도는 수치적으로 파악할 필요가 있다. 통상 시스템의 평가 지표에는 ‘KPI(Key Performance Indicator)’와 ‘KGI(Key Goal Indicator)’가 있다. KPI는 프로세스 별 달성도를 측정하는 지표이며 KGI는 최종적인 목표(goal)의 달성 정확도를 측정하는 지표다.

AI 시스템에 적용시키면 KPI는 모델의 기계학습 알고리즘으로서 정확도나 정확도에 영향을 미치는 업무의 지표가 되며, KGI는 AI 시스템으로서 달성해야 할 목표가 된다. AI 시스템의 KPI와 KGI에 대해 설정, 모니터링, 평가 시의 포인트를 보면 다음과 같다. 먼저 KPI 평가 지표의 설정이다. 이미 모델의 이용 목적이 명확한 경우에는 ROI(Return on Investment)의 달성 정확도로 예상할 수 있다. 그러나 모델은 ROI를 직접적인 목적으로 달성하는 것은 아니다. 따라서 모델의 평가는 실제 모델 이용과는 분리된 조건에서 실시한다. 대표적인 예가 알고리즘의 평가 지표를 이용하는 것이다. 이용하는 평가 지표는 모델의 태스크에 따라 다르다. 바르다고 예측한 데이터 중에서 실제로 바른 건수의 비율의 합을 나타내는 ‘적합 율’이나 바른 데이터 전체 조건 중 바르다고 예측했던 건수의 비율의 합을 나타내는 ‘재현 율’ 등이 지표의 예다. 지표에 보다 민감하게 검출할 수 있는 현상은 다르다. 모델의 목적을 고려해 이용할 지표를 결정한다.

평가 지표를 산출함으로써 모델의 정확도를 검증할 수 있다. 단, 각 평가 지표가 모델의 정확도를 측정하는 KPI로서 기능하기 위해서는 각 평가 지표 별로 일정한 정확도 수준을 설정할 필요가 있다. 예를 들어 적합율은 00%, 재현율은 00% 등, 각 지표의 기준치를 설정해 두고 평가 결과가 그 기준을 넘는지, 만약 넘지 못한 지표가 있다면 어떤 지표이며 어떻게 바로잡을지 처리 방법을 검토해야 한다. 다음은 KGI 설정이다. 정확도의 목표를 설정할 때에는 KPI 뿐 아니라 KGI를 설정하는 것도 중요하다. KGI는 AI 시스템 도입에 따라 본래 겨냥해야 할 비즈니스의 목표에 관련된 지표로 한다. 

모델은 AI 시스템의 한 파트(part)이며 비즈니스상의 가치를 구현하기 위해 구축된 것이다. 모델 그 자체의 정확도에 관한 KPI가 달성할 수 있다고 해도 비즈니스상의 목표를 달성할 수 없으면 AI 시스템 자체가 무용지물이 되어 버린다. 그래서 KGI를 설정할 때에는 비즈니스 목표 성과를 정의한 후 모델 정확도(Accuracy)와 비즈니스 성과를 결합해 설정할 필요가 있다. 예를 들어 영업 부문에서 계약 조건 확대를 목적으로 AI 시스템을 도입한 경우를 생각해 보자. 이때 비즈니스 면에서 목표로 해야 할 KGI는 그림4처럼 계약 건수를 확대하기 위한 수단으로 AI 시스템을 도입하고, 상담화 율이 높은 고객을 식별해 유망 방문처 리스트를 출력시켰다고 하자. 이 AI 시스템으로 작성된 모델의 역할은 예상 고객 중에서 상담 가능(자사의 제안을 들어주는) 고객을 높은 정확도로 식별하는 것이다.

모델의 정확도 유지라는 관점에서 상담율이 높은 것은 좋은 것이다. 그러나 상담율은 목표를 달성하고 있음에도 최종적인 목표인 계약 건수가 생각대로 늘어나는 것은 아니다. 이러한 경우 모델 정확도를 유지하기 위한 투자를 계속하는 것 보다 상담부터 계약까지의 전환 율을 향상시키기 위한 새로운 시책에 투자를 분배하는 판단이 필요하다. 상담화 가능 고객을 가능한 한 정확도가 높게 식별하는 방법도 있다. 그러나, 그 경우 복잡해서 해석성이 없는 모델을 구축하면 영업 담당자에 따라 ‘이유는 모르지만 상담화하기 쉬운 방문처 리스트’가 작성되고 실제 영업 활동에 별 도움이 되지 않을 수도 있다. 반면, 정확도는 약간 떨어져도 해석 성이 있는 모델을 채용함으로써 목표 고객으로 선정된 이유를 영업 담당자가 이해하기 쉽게 되어 그에 맞게 제안의 질을 높여 계약 건수를 증가시킬 것을 목표로 하는 방법도 있다.

다음은 모니터링의 빈도와 방법이다. 모니터링 빈도는 시스템 운용상의 부하와 비즈니스상의 중요성 사이의 균형을 감안해 검토한다. 모니터링 정확도는 높을수록 바람직하지만 빈도가 높으면 시스템 면에서도 업무 면에서도 코스트가 발생한다. 그러므로 모니터링 빈도를 검토할 때에는 업무상의 영향(Impact)을 고려해야 한다. 예측 결과를 업무에 참고하는 수준에 그치는 경우에는 예측 정확도가 크게 악화되고 있지 않다는 것을 월 1회 확인하면 적당한 빈도가 될 것이다. 반면, 모델에 따른 예측 결과에 근거해 자동적으로 발주하게 되어 있는 경우에는 더 자주 모니터링 할 필요가 있다.

모니터링 방법은 빈도에 따라 달라진다. 중요한 것은 모델 정확도가 악화된 경우 업무에 미치는 영향이 어느 정도인지를 감안해 과도한 부하가 되지 않는 방법으로 적절하게 모니터링 하는 것이다. 모델 정확도 악화가 바로 업무에 영향을 미치는 경우에는 정확도 악화 시 자동적으로 경고(alert)가 나오도록 하는 구조가 적합하다. 한편 정확도가 악화되어도 곧 바로 업무에 영향을 주지 않는 경우에는 정기적인 모니터링과 평가 리포트를 작성하면 적당하다. 모델 정확도를 적절한 빈도로 모니터링 할 수 있다면 정확도 저하에 따라 잘못된 업무상의 판단을 할 가능성도 낮게 억제할 수 있다.

다음은 모니터링 후의 평가다. 모니터링 빈도와 방법이 정해지면 모니터링 결과를 평가할 방법을 검토한다. 미리 정의해 둔 KPI의 목표 수준을 하회한 경우 우선 중요한 부분부터 검토한다. 기본적으로 KPI의 목표 수준을 상회하는 것이 중요하다. 그러나, AI 시스템 가동 직후에는 가동 전에 설정한 KPI의 목표 수준이 비즈니스상의 목표인 KGI의 달성에 비해 과도하게 높거나 혹은 너무 낮다고 판명되는 경우가 있다. 이 때는 목표 수준을 조정하면서 적절한 정확도를 계속 유지하는 것이 필요하다.

또한, 정확도를 평가하는 입도(Granularity)의 검토가 필요하다. 상품의 수요를 예측하는 모델의 경우, 수요 변동 경향이 유사한 상품을 카테고리화해 카테고리 별로 모델을 구축하는 경우가 있다. 이 경우 카테고리 안의 상품이 1개라도 정확도 목표 수준을 하회(Below)하면 ‘KPI가 목표를 하회했다’고 간주해 모델의 정확도 향상을 실행할지, 혹은 카테고리 전체의 평균이 목표 수준을 하회했을 때 비로소 모델의 정확도 향상을 실행할지를 사전에 정해 놓는다.

프로세스 2(모델의 재학습): KPI, KGI 상의 목표 수준을 달성하기 위해 모델 정확도 향상이 필요하다고 판단한 경우, 모델에 대해 변경을 한다. 그 대응책은 그림5처런 첫째, 최근의 학습 데이터의 투입 둘째, 하이퍼 파라미터 튜닝 셋째, 알고리즘 변경 넷째, 설명 변수 추가 및 변경 다섯째, 모델 이용 일시 중단 등의 조치가 가능하다.

구현 단계는 일반적인 성능 확보를 목표로 모델을 개발하지만, 정확도가 일정 수준 이하로 떨어진 경우에는 학습 모델을 재검토한다. 재검토하는 경우에는 업무 변경이나 시간적인 코스트가 수반되므로, 이러한 부담을 감안해 적절한 대응책을 검토해야 한다. 모델을 재검토하는 경우 채용하는 방법에 따라 모델에 데이터를 입력하거나 출력하기 위해 데이터 가공 기능을 수정하거나 새로운 데이터 취득 기능을 개발하는 작업이 발생한다. 대응책을 실시해도 정확도가 개선될 것으로 예상되지 않는 경우에는 일시적으로 모델 이용을 중지하는 것도 또 다른 선택지가 될 수 있다. 그럼 모델의 정확도 향상에 적합한 각 대응책과 그 코스트를 보자.

먼저 최근의 학습 데이터 투입이다. 학습 데이터를 변경하는 경우 먼저 변화된 데이터를 학습 데이터에 포함할 지 검토한다. 이에 따라 모델 정확도를 컨트롤한다. 데이터 학습 기간은 입력 데이터 경향, 환경 변화 가능성을 고려해 범용화 성능을 유지하는 목적으로 설정 및 변경할 필요가 있다. 최근 데이터 경향이 크게 변화한 경우에는 오래된 데이터를 학습 데이터로 이용하면 정확도가 악화되므로 오래된 데이터를 학습 데이터에서 제외한다.

한편 데이터 경향 변화는 계절성 등의 장기적인 시계열적인 변화가 있으면 예측할 수 있는 것이 있다. 이 경우 변경 전후의 데이터를 모델에 포함시킴으로써 범용화 성능을 향상시킬 수 있다. 변경 후의 데이터만을 이용해야 할 때도 있다. 원래 시스템 데이터 정의가 변화된 경우나 데이터 취득에 이용하는 기구가 변경된 경우 등이다. 이 경우 데이터 경향이 변하는 것은 불가피하므로 변경 후의 데이터 만을 이용해야 한다. 또한 돌발적인 사태가 일어난 때는 그 기간의 데이터를 학습대상에서 제외하는 등의 대처가 필요하다. 예를 들면 기록적인 폭염으로 수요 예측 정확도가 낮았던 경우에는 그 기간을 예외로 간주하여 학습 기간에서 제외하는 경우도 있다.

다음은 하이퍼 파라미터 튜닝이다. 모델 재 학습 시 학습의 실행 조건인 하이퍼 파라미터의 튜닝을 실행하는 경우가 있다. 일반적으로 학습 데이터가 변하면 최적의 하이퍼 파라미터는 변화한다. 그래서 모델의 재 학습 시에는 하이퍼 파라미터가 다른 복수의 모델을 구축, 모델간 정확도를 비교해 최적의 모델을 선택하도록 운용한다. 최근의 학습 데이터 투입과 하이퍼 파라미터 튜닝은 반드시 사람 손으로 할 필요는 없다. 기계학습의 학습 프로세스 자체를 배치(Batch)처리로 실행하는 ‘배치 학습’이나 신규 데이터만을 입력해 학습된 모델의 파라미터를 변경하는 ‘온라인 학습’ 등의 방법이 있기 때문이다. 재 학습을 자동화함으로써 생기는 장점에는 운용에 드는 인건비 절약, 정확도가 저하할 때 즉응(Immediate response)성 확보 등이다. 반면, 학습 기간을 자동 설정하거나 하이퍼 파라미터 탐색을 자동화 할 필요가 있으므로 개발 구현 난이도는 높아진다. 운용 시에는 추론(Inference) 모델만이 아니라 모델의 학습 상황도 계속적인 감시가 필요하다. 모델 출시 관리나 버전 관리도 필수다.

다음은 알고리즘 변경이다. 데이터 변경이나 하이퍼 파라미터의 튜닝을 시행해도 정확도가 설정한 기준에 이르지 못하는 경우에는 알고리즘 변경을 검토한다. 시스템에 구현한 모델은 입출력 데이터의 인터페이스 사양이 고정되어 있으므로 알고리즘을 변경할 때에는 유사한 입출력을 가지는 알고리즘에 한정된다. 알고리즘을 크게 변경하는 경우에는 모델 입출력 데이터의 사양 변경 및 개선과 테스트의 코스트를 고려할 필요가 있다.

모델의 알고리즘을 변경할 때에는 더불어 입력하는 설명 변수의 추가 및 변경도 검토한다. 이 경우 설명 변수를 취득, 가공하기 위한 데이터 플로우의 변경만이 아니라 데이터 유지용인 테이블 등에 신규 데이터 칼럼을 추가할 것도 예상한다. 신규 데이터를 이용하는 경우에는 새로운 데이터 소스에 대응한 데이터 플로우를 구축할 필요도 있으므로 코스트가 더 발생한다.

마지막으로 모델 이용의 일시 중단이다. 알고리즘이나 설명 변수를 변경해도 정확도 개선이 예상되지 않는 경우나 정확도 향상에 투자가 맞지 않는 경우에는 일시적으로 모델 이용 자체를 중단하는 것도 선택지가 된다. 비즈니스 효과에 다시 주목해 모델 정확도 유지를 위한 과잉 대처를 하지 않도록 주의해야 한다.

프로세스 3(모델의 관리): 지금까지는 모델 정확도 향상을 목적으로 한 대응책을 설명해왔다. 그러나 모델 관리 관점에서는 모델 신뢰성과 관리성도 고려할 필요가 있다. 특히 중요한 것은 어떠한 모델을 출시(Release) 할지 사전 및 사후에 검증할 수 있는 상태로 하는 것이다. 재 학습에 의해 구축한 모델 출시 판단이나 과거 모델의 버전 관리가 중요해지고 있다. 재 학습에 의해 구축한 모델은 일정한 조건을 만족함으로써 본 가동 환경에 출시할 수 있다. 계속적으로 이용 가능한 출시의 기준을 미리 정해 둘 필요가 있다. 출시 기준은 정확도만이 아니라 추론에 걸리는 처리 시간 등 모델의 비기능적인 기준도 예상해두는 편이 좋다. 조직(규정) 등에 따라 출시에는 책임자의 결재가 필요한 케이스가 있다.

 이러한 기업의 경우에는 승인, 결재 플로우, 출시의 기준에 대하여 미리 검토한다. 특히 해석성이 낮은 모델을 채용할 때에는 주의가 필요하다. 모델의 내용을 책임자에게 설명할 수 없으므로 정확도만이 아니라 학습 데이터나 알고리즘의 특성에 대해 설명이 필요한 경우도 있다. 또, 모델 경신(Update)은 정확도 악화에 따른 재학습이 필요할 때만 하는 건 아니다. 정기적으로 재학습해 정확도가 높은 모델로 바꾸어 출시하는 관리 방법도 있다. 이 경우에는 재학습 상황이나 모델의 출시 상황을 항상 파악해 예기치 않은 상항이 발생하지 않도록 해야한다.

모델을 관리할 때 또 하나 중요한 것이 버전 관리다. 일반적인 프로그램 모듈과 마찬가지로 모델도 버전 관리가 필요하다. 장래 AI 시스템의 처리에 문제가 있는 경우나 최신 모델에 부적합이 있는 경우에 대비해 과거 모델의 보관이 요구된다. 최근 AI를 둘러싼 법 정비 검토가 진행되면서 AI의 판단에 대해 기업이 설명할 책임이 요구되고 있다. AI 판단 기준이 알려지지 않으면 판단된 측의 불만이나 불안이 남기 쉽다고 생각하기 때문이다. 이러한 상황까지 파악해 AI가 행한 판단 내용을 설명 가능하게 해 둘 필요가 있다. 더불어 해석 성이 높은 모델 채용만이 아니라 과거에 채용한 모델의 내용이나 경신(Update) 이력을 설명할 수 있도록 하는 것이 요구된다.

일반적으로 보관 및 기록해 두어야 할 정보는 모델 재현이 가능한 정보다. 학습 데이터, 목적 변수나 설명 변수 등의 데이터 정의, 알고리즘, 하이퍼 파라미터도 생각할 수 있다. 또 그림6처럼 모델 정확도를 확인한 결과도 더불어 보관해 두는 편이 좋다.

지금까지 AI시스템 특유의 운용 시 업무(태스크)를 설명했다. 실제로 운용을 하다보면 생각처럼 정확도가 나오지 않을때가 많이 있다. 그러나 모델 정확도 유지는 시스템 전체의 가치만이 아니라 비즈니스상의 성과에 직결되는 태스크이므로 비상시 중요한 단계가 된다.


필자 심기보는...

1976년부터 한전에서 SW개발자로 전산업무를 시작했다. 30여년간 정보화 사업 기획, 개발, 운영업무를 수행하면서 SI사업 등 발주관리 전문가로 일했다.

심기보 전 정보통신기술사협회장

국내 최초로 FP(기능점수)법에 의한 SW사업대가 기준연구 및 보급으로 SW사업 선진화에 기여했다. SEC 정책자문위원과 SW사업분쟁조정위원회위원, 정보통신기술사협회장, KAIST 전산학부 겸직교수, SW정책연구소 초빙연구원 등을 지냈다. 숭실대 대학원에서 'FP법을 이용한 다중회귀 분석적 SW사업대가 산정모델 연구'로 박사 학위를 받았다. 현재는 심기보기술사설계사무소를 설립해 SW설계‧견적‧감정 일을 하고 있다. 특히 SW사업 분쟁방지를 위한 SW사업 요건정의 및 기본설계 전문가로 활동하고 있다.

*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.