04 인공지능 시스템의 추적가능성 및 변경이력 확보

  • 인공지능 시스템 운영 단계에서 문제 원인 추적을 위한 시스템 로그, 데이터 모니터링, 인공지능 모델과 사람 간의 의사결정 기여도 추적, 변경이력 관리 등의 방안을 확보한다.


04-1 인공지능 시스템의 의사결정에 대한 추적 방안을 수립하였는가?

  • 인공지능 시스템의 의사결정은 인공지능 모델이 자체 결정하거나 시스템 운영자 또는 사용자가 개입해 내릴 수 있다. 또한, 운영 중에도 학습이 이루어지도록 설계・개발된 인공지능 시스템이라면 학습 데이터와 모델에 대해 지속적인 모니터링이 필요하다.

  • 인공지능 시스템의 경우, 전통적인 소프트웨어와 다르게 생명주기의 프로세스가 반복되는 특성이 있어 서비스 운영 단계에서도 전체 생명주기를 고려한 추적 방안을 확보해야 한다.

  • 인공지능 모델의 구축, 데이터셋, 시스템 자체 등 기능적 측면과 인공지능 시스템 운영자 및 사용자 등 인적 요인으로 인해 발생 가능한 인공지능 시스템 출력 결과의 영향을 추적하기 위해서 시스템 단계별로 로그 수집 대상 정보를 정의하고 모니터링을 지속해야 한다.

    • 생성 AI 기반 서비스에서는 출력 결과(생성된 콘텐츠)에 워터마크를 추가하는 방식을 통해 콘텐츠의 자산을 보호하고 진본성을 유지한다.

04-1a 인공지능 시스템의 의사결정에 대한 기여도 추적 방안은 확보하였는가?

  • 인공지능 시스템의 결정에 대한 모델 기여도를 파악하기 위해서는 이전 모델의 추론 정보와 최종 결정에 대한 사람(예: 시스템 운영자, 사용자) 개입 여부 등의 정보가 추적되어야 한다.

  • 따라서 인공지능 모델이 전적으로 의사결정을 내리는 경우와 모델 결과를 사람이 검토하여 의사결정을 내리는 경우, 주로 사람이 의사결정을 내리지만 특정 이벤트와 같이 보조적으로 모델의 추론 결과가 활용되는 경우 등 시스템 결정에 대한 세부화된 기여도 기준을 내부적으로 확립하고, 시스템 운용 과정에서 이를 추적할 수 있는 방안(예: 로그 수집)을 확보해야 한다.

04-1b 인공지능 시스템의 의사결정 추적을 위한 로그 수집 기능을 구현하였는가?

  • 인공지능 시스템의 전 생명주기를 고려한 추적가능성 확보를 위해서는 모델의 학습 과정, 운용 시 의사결정 결과, 사용자 입력 데이터 등의 정보에 대한 지속적인 수집이 필요하다. 이를 위해 시스템 프로세스별 로그를 수집할 정보를 선정하고, 정보 간의 중요도를 정의한 뒤 로그 레코드 형식을 결정하여 로그를 수집해야 한다.

  • 특히 인공지능 시스템 운영 과정에서의 오류 원인 추적을 위해서는 모델 구축 방법과 데이터셋 측면을 포함한 오류 원인의 분석이 필요하므로, 두 가지 측면을 고려하여 로그를 수집하여야 한다.

오류 구분오류 원인 예시

모델 구축 방법 측면의 오류

모델・데이터의 대상 선정, 수집, 정제, 라벨링 등의 통제 미흡으로 인해 구축 절차, 구조, 학습 모델 측면의 다양한 오류 데이터 생성

데이터셋 측면의 오류

데이터셋 설계의 부족, 구문 정확성 위배, 데이터 구축 중복 등으로 인한 학습 데이터 품질 저하

04-1c 지속적인 사용자 경험 모니터링을 위해 사용자 로그를 수집 및 관리하고 있는가?

  • 서비스 이용 로그 분석은 서비스 운영 상태에 관한 확인뿐만 아니라, 사용자가 겪는 문제가 무엇인지 확인할 수 있는 가장 기본적인 방법이 될 수 있다. 서비스 로그는 서비스가 운영되는 동안 지속해서 수집되며 서비스 고도화에 따라 다양한 형태로 누적될 수 있다.

  • 서버 인프라에 대한 로그를 통해 서비스 운영 상태에 대한 모니터링을 수행할 수 있으며, 사용자 상호작용 로그는 사용자가 어떤 서비스를 많이 이용하고 어떤 서비스에서 오류를 겪는지 분석할 수 있다. 이를 위해 인프라 관점에서는 로그 분석 소프트웨어를 활용할 수 있으며, 사용자 관점에서는 기업이 자체적으로 인터페이스 또는 상호작용의 호출에 따른 로그를 수집하거나 로그 분석 도구를 활용할 수 있다.


04-2 학습 데이터의 변경 이력을 확보하고, 데이터 변경이 미치는 영향을 관리하였는가?

  • 인공지능 모델은 사용한 데이터에 따라 학습 모델도 함께 달라진다. 이로 인해 모델의 설계나 주요 파라미터들의 변경이 함께 이루어질 수 있다. 따라서 모델 개발과정에서 학습 데이터가 변경될 경우, 학습 데이터 버전관리 및 변경이 발생한 원인을 추적해야 한다.

  • 또한, 신규 데이터를 포함하여 인공지능 모델의 추가 학습이 필요한 경우, 학습 데이터 변경으로 인한 모델의 성능 영향을 평가하기 위해 기존 학습 데이터에 추가된 신규 데이터 비율에 따른 모델 성능 변화 추적이 가능하도록 기록 및 관리하는 것이 바람직하다.

  • 이러한 학습 데이터 변경 이력 관리를 위해 학습 데이터 버전관리를 위한 오픈소스 도구 활용, 자체 시스템 구축 등을 고려할 수 있으며, 학습 데이터를 사용 또는 운용하는 이해관계자들이 데이터 변경으로 인한 영향을 확인할 수 있도록 학습 데이터 변경 원인, 변경된 학습 데이터의 구조, 학습 모델의 추론 결과 및 모델 변경으로 인한 성능평가 결과 등에 대한 정보를 제공해야 한다.

04-2a 데이터 흐름 및 계보(lineage)를 추적하기 위한 조치를 마련하였는가?

  • 인공지능 시스템의 경우, 데이터의 변경으로 인해 모델의 확장이나 재설계 등의 시스템 변경이 발생할 수 있다. 따라서 시스템의 변경을 유도하는 데이터의 흐름 및 계보를 계속해서 추적해야 한다.

    • 데이터 흐름: 데이터가 시스템의 여러 구성 요소를 통과하면서 수집, 처리, 변환되는 방식에 중점을 둔다. 데이터 흐름을 이해하면 시스템의 데이터 처리 파이프라인을 최적화하고 잠재적인 병목 현상을 파악하며 데이터 무결성과 정확성을 보장할 수 있다.

    • 데이터 계보: 시스템 생명주기 동안 데이터의 출처, 변환 및 이동을 추적하고 문서화하는 것과 관련이 있다. 이는 데이터 출처, 추적성 및 규정 준수를 보장하는 데 매우 중요하며, 특히 데이터 감사, 디버깅 및 규정 준수에 유용하다.

  • 데이터 흐름 및 계보는 데이터 변경에 대해 역방향, 순방향, 종단간(end-to-end) 관점으로 나누어 추적할 수 있으며, 추적을 위한 고려사항은 다음과 같다.

    • 데이터 흐름 및 계보 추적을 관리하기 위한 데이터 정책팀을 구성하는 것이 유용한가?

    • 데이터 흐름 및 계보 추적을 위해 메타데이터를 기록하고 유지보수할 것인가?

    • 데이터 흐름 및 계보 추적을 위한 데이터 적재, 매핑, 관리, 시각화 리포팅 기능을 구현하는 것이 유용한가?

    • 인공지능 개발 과정에서 모델의 특성 값을 저장 및 공유하는 특성 저장소(feature repository) 기능을 구현하는 것이 유용한가?

    • 데이터는 출처까지 역추적될 수 있는가?

04-2b 데이터 소스 변경에 대한 모니터링 방안을 확보하였는가?

  • 인공지능 모델의 학습 데이터 확보를 위해 웹 크롤링(web crawling) 등의 방법을 활용할 수 있다. 웹 크롤링은 관련 오픈소스(예: Apache Nutch, Scrapy)를 통해 대량의 데이터를 빠르게 확보할 수 있는 장점이 있으나, 크롤링의 대상인 웹 페이지의 데이터 소스가 실시간으로 변경되거나 대상 페이지 자체의 접속이 불가능한 장애가 있을 경우 특정 클래스의 데이터 부족 등 수집 데이터의 분포가 깨질 수 있다.

  • 특히 지속해서 크롤링된 데이터를 실시간으로 학습하는 인공지능 시스템의 데이터 소스의 변경은 성능에 직접적인 영향을 줄 수 있다. 따라서 데이터 수집 과정을 모니터링해 데이터 소스 이상이나 중복 수집 등의 문제에 대응해야 한다.

04-2c 데이터 변경 시, 버전관리를 수행하였는가?

  • 인공지능 모델 개발 과정에서 학습 데이터의 업데이트, 오류로 인한 라벨링 재수행 등 데이터 변경이 이루어지면 학습 결과인 모델도 변경된다. 또한 이전에 학습에 사용한 데이터셋과 특성이 완전히 다르거나 데이터셋 전체를 교체할 경우 성능이 크게 저하될 수 있으며, 이 경우에는 추가 학습이 필요할 수 있다.

  • 따라서 학습 데이터의 변경이 수행될 경우, 단순히 사용된 학습 데이터의 버전뿐만 아니라 해당 버전으로 학습한 인공지능 모델을 함께 관리하여야 한다. 특히, 신규 데이터의 추가로 인한 학습 데이터 변경이 필요한 경우, 학습 혹은 테스트에 사용된 신규 데이터 비율을 기록하고, 그에 따른 모델의 성능 변화가 함께 추적 가능하여야 한다.

  • 이를 위해 기계학습 프로젝트를 위한 오픈소스 기반의 데이터 버전관리 도구(예: DVCData Version Control)의 도입을 고려하거나, 학습 데이터 버전관리 시스템을 자체적으로 구축하여 학습 데이터의 버전과 모델의 버전관리를 수행해야 한다.

04-2d 데이터 변경 시, 이해관계자를 위한 정보를 제공하는가?

  • 다수의 이해관계자가 참여하는 인공지능 시스템 개발 과정에서 데이터 변경으로 인한 인공지능 모델의 설계, 주요 초매개변수 변경 및 재학습 등의 조치를 이해하기 위해선 이해관계자의 역할을 고려한 정보의 제공이 필요하다.

  • 데이터 변경에 따라 이해관계자별로 제공되어야 하는 정보는 다음과 같다.


04-3 정기적인 모델 조정(tuning)을 수행하고 성능 변경 이력을 관리하였는가?

  • 모델 조정은 신규 데이터 확보 등에 따라 영구적인 업데이트를 수반하거나, 시장・환경변화 또는 비즈니스 목표 등에 따라 임시적인 변경일 수 있다.

  • 마지막 모델의 오류 예제를 새 모델의 학습 데이터셋에 포함시키는 것을 고려할 수 있다.

  • 새 모델을 실제 환경에 배포하기 전에 아래 두 단계 테스트를 적용할 수 있다.

    • 첫째, 모델의 학습 데이터셋에서 테스트 예제를 제외한 후 교차검증(cross-validation)

    • 둘째, 교차검증 결과가 긍정적일 경우, 데이터셋에 포함되지 않은 새로운 예제에 대해 독립적인 두 번째 테스트 수행

04-3a 인공지능 모델 업데이트 마다 성능 평가를 재수행하였는가?

  • 인공지능 모델을 업데이트 하기 위해서는 기존 운영 중인 모델과의 성능 비교가 필수적이다. 모델을 대상으로 성능평가를 진행하고 분석하는 과정은 다음을 참고한다.

    • 성능평가 및 비교 분석을 위한 기존 학습 모델 및 관련 대표 인공지능 모델 확보

    • 대상 인공지능 분야 및 모델에 적절한 성능평가 지표 선정

    • 성능평가를 위한 실험 설계(정량적・정성적 실험 방법 선정, 실험 모델들의 파라미터 설정, 세부 실험 계획 등)

    • 실험 진행 및 결과 분석(결과에 따라 신규 데이터 평가 또는 필요한 경우 모델 재설계, 확장, 재학습 등 결정)

개선 의견 보내기

Last updated