이 문서에는 예측 머신러닝(ML) 솔루션을 구축할 때 품질을 평가, 보장, 제어하는 데 도움이 되는 몇 가지 가이드라인이 나와 있습니다. ML 모델 개발부터 프로덕션에 학습 시스템 및 서빙 시스템 배포에 이르기까지 프로세스의 모든 단계에 대한 제안을 제공합니다. 이 문서에서는 MLOps 수명 주기의 각 프로세스에서 품질 측면을 강조표시하고 정제하여 MLOps 대한 실무자 가이드에서 설명한 정보를 확장합니다.
이 문서는 ML 솔루션의 빌드, 배포, 운영과 관련된 모든 사람을 대상으로 합니다. 이 문서에서는 사용자가 일반적으로 MLOps에 익숙하다고 가정합니다. 사용자가 특정 ML 플랫폼에 대한 지식이 있다고 가정하지 않습니다.
머신러닝 솔루션 품질 개요
소프트웨어 엔지니어링에서는 소프트웨어 품질을 보장하기 위해 많은 표준, 프로세스, 도구, 권장사항이 개발되었습니다. 목표는 소프트웨어가 프로덕션 시 의도한 대로 작동하고 기능적 및 비기능적 요구사항을 모두 충족하는지 확인하는 것입니다. 이러한 권장사항은 소프트웨어 테스트, 소프트웨어 확인 및 검증, 소프트웨어 로깅 및 monitoring과 같은 주제를 다룹니다. DevOps에서는 일반적으로 이러한 권장사항이 CI/CD 프로세스에 통합되고 자동화됩니다.
MLOps는 ML 시스템을 빠르고 안정적으로 빌드, 배포, 운영하기 위한 표준화된 프로세스 및 기능 집합입니다. 다른 소프트웨어 솔루션과 마찬가지로 ML 소프트웨어 솔루션에서는 이러한 소프트웨어 품질 권장사항을 통합하고 MLOps 수명 주기 전반에 적용해야 합니다. 이러한 권장사항을 따르면 모델의 신뢰성과 예측 가능성을 확인하고 모델이 요구사항을 준수하는지 확인하는 데 도움이 됩니다.
그러나 ML 시스템을 빌드, 배포, 운영하는 작업에는 다른 소프트웨어 시스템과는 관련이 없는 특정 품질 권장사항이 필요한 추가 도전과제가 있습니다. ML 시스템은 대부분의 다른 소프트웨어 시스템의 특성 외에도 다음과 같은 특성을 가집니다.
데이터 종속 시스템. 학습된 모델과 예측의 품질은 학습에 사용되고 예측 요청에 제출되는 데이터의 유효성에 따라 달라집니다. 모든 소프트웨어 시스템은 유효한 데이터에 따라 다르지만 ML 시스템은 데이터에서 의사 결정을 위한 로직을 자동으로 추론하므로 특히 데이터 품질에 의존합니다.
이중 학습 서빙 시스템. ML 워크로드는 일반적으로 학습 시스템과 서빙 시스템이라는 두 가지 별개의 관련 프로덕션 시스템으로 구성됩니다. 지속적 학습 파이프라인은 새로 학습된 모델을 생성한 후 예측 서빙을 위해 배포합니다. 프로덕션에서 고성능 모델을 생성하고 유지하기 위해서는 효과와 효율성 간의 균형을 맞추는 다양한 품질 권장사항이 필요합니다. 또한 이 두 시스템 간의 불일치로 인해 오류가 발생하고 예측 성능이 저하됩니다.
비활성화되기 쉬움. 모델은 프로덕션 환경의 배포 후에 성능이 저하되는 경우가 많습니다. 모델은 구매 행동의 계절별 변화와 같이 모델이 나타내는 환경의 변화에 맞게 조정되지 않기 때문입니다. 또한 모델은 새 제품 및 위치와 같은 데이터 변화에 적응하지 못할 수 있습니다. 따라서 프로덕션에서 모델의 효과를 추적하는 것은 ML 시스템이 해결해야 할 추가적인 과제입니다.
자동화된 의사 결정 시스템. 일련의 요구사항과 비즈니스 규칙에 대해 작업을 신중하게 직접 코딩하는 다른 소프트웨어 시스템과 달리 ML 모델은 결정을 내리기 위해 데이터에서 규칙을 학습합니다. 데이터의 내재적 편향으로 인해 모델이 불공정한 결과를 발생시킬 수 있습니다.
배포된 ML 모델에서 잘못된 예측이 발생하는 경우 ML 품질이 좋지 않은 것은 광범위한 문제의 결과일 수 있습니다. 이러한 문제 중 일부는 모든 프로그램에 있는 일반적인 버그로 인해 발생할 수 있습니다. 그러나 ML 관련 문제에는 학습 프로세스의 일환으로 적절한 모델 평가 및 검증 절차의 부재와 함께 데이터 편향 및 이상치도 포함될 수 있습니다. 또 다른 잠재적 문제는 모델의 기본 제공 인터페이스와 서빙 API 간의 데이터 형식이 일치하지 않는 것입니다. 게다가 이러한 문제가 없더라도 시간이 지남에 따라 모델 성능이 저하되며, 제대로 모니터링되지 않으면 자동으로 실패할 수 있습니다. 따라서 개발 중, 배포 중, 프로덕션 중에 ML 모델 및 시스템에 대해 다양한 종류의 테스트 및 모니터링을 포함해야 합니다.
모델 개발 품질 가이드라인
실험 단계에서 ML 모델을 개발할 때 모델의 성능을 평가하는 데 사용할 수 있는 두 가지 대상 측정항목 집합이 있습니다.
- 모델의 최적화 측정항목 . 이 측정항목은 모델의 예측 효과를 반영합니다. 측정항목에는 분류 작업의 정확성 및 f-measure, 회귀 및 예측 작업의 평균 절대 백분율 오류, 순위 작업의 할인된 누적 이득, 언어 모델의 퍼플렉시티 및 BLEU 점수가 포함됩니다. 이 측정항목의 값이 클수록 지정된 작업에 대한 모델이 더 우수합니다. 일부 사용 사례의 경우 공정성을 보장하려면 여러 데이터 슬라이스(예: 다양한 고객 인구통계)에서 비슷한 예측 효과를 얻는 것이 중요합니다.
- 모델의 충족 측정항목. 이 측정항목에는 예측 지연 시간과 같이 모델이 충족해야 하는 운영 제약사항이 반영됩니다. 지연 시간 임곗값을 특정한 값(예: 200밀리초)으로 설정합니다. 이 임곗값을 충족하지 않는 모델은 허용되지 않습니다. 충족 측정항목의 또 다른 예는 모델의 크기입니다. 모바일 및 내장형 기기와 같은 저전력 하드웨어에 모델을 배포하려는 경우에 모델의 크기는 중요합니다.
실험 중에 측정항목 임곗값을 위반하지 않고 측정항목 최적화와 관련하여 모델을 향상시키기 위해 모델을 개발, 학습, 평가, 디버깅합니다.
실험 가이드라인
- 측정항목을 최적화하고 측정항목을 충족하기 위해 사전 정의되고 고정된 임곗값을 사용합니다.
- 모델 및 데이터를 사용하여 평가 측정항목 집합을 생성하는 간소화된 평가 루틴을 구현합니다. 모델 유형(예: 결정 트리 또는 신경망) 또는 모델 프레임워크(예: TensorFlow 또는 Scikit-learn)에 관계없이 작동하도록 루틴을 구현합니다.
- 비교할 기준 모델이 있는지 확인합니다. 이 기준은 하드코딩된 휴리스틱으로 구성되거나, 평균 또는 모드 목표 값을 예측하는 간단한 모델일 수 있습니다. 기준 모델을 사용하여 ML 모델의 성능을 확인합니다. ML 모델이 기준 모델보다 우수하지 않으면 ML 모델에 근본적인 문제가 있는 것입니다.
- 재현성과 점진적인 개선을 위해 수행된 모든 실험을 추적합니다. 각 실험에서 초매개변수 값, 특성 선택, 무작위 시드를 저장합니다.
데이터 품질 가이드라인
- 올바른 평가 측정항목을 선택하여 실험 초기에 균형이 맞지 않는 클래스를 해결합니다. 또한 소수 범주 인스턴스의 가중치 보정 또는 다수 범주 인스턴스의 다운샘플링과 같은 기법을 적용하세요.
- 현재 데이터 소스를 숙지하고 관련 데이터 사전 처리 및 특성 추출을 수행하여 학습 데이터 세트를 준비해야 합니다. 이러한 유형의 프로세스는 반복 가능하고 자동화 가능해야 합니다.
- 모델의 최종 평가를 위한 별도의 테스트 데이터 분할(홀드아웃)이 있어야 합니다. 테스트 분할은 학습 중에는 표시되지 않아야 하며 초매개변수 조정에 사용하지 않아야 합니다.
- 학습, 검증, 테스트 분할이 입력 데이터를 동일하게 나타내는지 확인합니다. 이러한 테스트 분할을 샘플링하는 방법은 데이터의 특성과 당면한 ML 작업에 따라 달라집니다. 예를 들어 계층화된 분할은 분류 태스크와 관련이 있는 반면 시간순 분할은 시계열 태스크와 관련이 있습니다.
- 검증 및 테스트 분할이 학습 데이터 분할과 별도로 사전 처리되어야 합니다. 분할을 혼합하여 사전 처리하면 데이터 유출이 발생합니다. 예를 들어 정규화 또는 숫자 특성의 버킷화를 위해 통계를 사용하여 데이터를 변환할 경우 학습 데이터에서 통계를 계산하고 이를 적용하여 검증 및 테스트 분할을 정규화합니다.
- 데이터 유형과 특성의 일부 통계 속성이 포함된 데이터 세트 스키마를 생성합니다. 실험 및 학습 중에 이 스키마를 사용하여 이상이 있거나 잘못된 데이터를 찾을 수 있습니다.
- 학습 데이터가 일괄적으로 적절하게 셔플되어 있는지 확인하되 모델 학습 요구사항도 충족해야 합니다. 예를 들어 이 작업은 양성 및 음성 인스턴스 분산에 적용될 수 있습니다.
- 초매개변수 미세 조정 및 모델 선택을 위한 별도의 검증 데이터 세트가 있습니다. 검증 데이터 세트를 사용하여 조기 중단을 수행할 수도 있습니다. 그렇지 않은 경우 모델이 지정된 최대 반복 전체를 학습하도록 할 수 있습니다. 그러나 검증 데이터 세트의 성능이 이전 스냅샷과 비교하여 개선되는 경우에만 모델의 새 스냅샷을 저장합니다.
모델 품질 가이드라인
- 모델에 입력과 출력 간의 관계를 학습하지 못하게 하는 근본적인 문제가 없는지 확인합니다. 몇 가지 예만 있으면 모델을 학습시켜 이를 달성할 수 있습니다. 모델이 이러한 예시에 대해 높은 정확성을 달성하지 못하면 모델 구현 또는 학습 루틴에 버그가 있을 수 있습니다.
- 신경망을 학습할 때 손실의
NaN
값과 모델 학습 전체에서 0 값이 있는 가중치 비율을 모니터링합니다. 이러한NaN
또는 0 값은 잘못된 산술 계산, 경사의 소멸 또는 폭증을 의미할 수 있습니다. 시간 경과에 따른 가중치 값 분포의 변화를 시각화하면 학습 속도를 저하시키는 내부 공변량 변화를 감지하는 데 도움이 됩니다. 이러한 속도 저하를 완화하기 위해 배치 정규화를 적용할 수 있습니다. - 학습 데이터와 테스트 데이터의 모델 성능을 비교하여 모델이 과적합인지 과소적합인지 확인합니다. 이러한 문제 중 하나가 발생하면 관련 개선사항을 수행합니다. 예를 들어 과소적합이 발생한 경우 모델의 학습 용량을 늘릴 수 있습니다. 과적합이 있으면 정규화를 적용할 수 있습니다.
- 잘못 분류된 인스턴스, 특히 예측 신뢰도가 높은 인스턴스와 다중 클래스 혼동 행렬에서 가장 혼동되는 클래스를 분석합니다. 이러한 오류는 학습 예시 라벨이 잘못 지정되었음을 나타낼 수 있습니다. 또한 오류를 통해 이상점 제거와 같은 데이터 사전 처리 또는 이러한 클래스를 구별하는 데 도움이 되는 새로운 특성을 생성할 수 있는 기회를 식별할 수 있습니다.
- 특성 중요도 점수를 분석하고 모델 품질을 충분히 향상시키지 않는 특성을 삭제합니다. 복잡한 모델보다 간결한 모델이 권장됩니다.
학습 파이프라인 배포 품질 가이드라인
모델 및 모델 학습 파이프라인을 구현할 때는 CI/CD 루틴에 테스트 집합을 만들어야 합니다. 이러한 테스트는 새 코드 변경사항을 푸시할 때 자동으로 실행되거나 학습 파이프라인을 대상 환경에 배포하기 전에 실행됩니다.
가이드라인
- 특성 추출 기능을 단위 테스트합니다.
- 모델에 대한 입력 인코딩을 단위 테스트합니다.
- 모델의 사용자 구현(커스텀) 모듈을 독립적으로 단위 테스트합니다. 예를 들어 커스텀 그래프 컨볼루션 및 풀링 레이어나 커스텀 주의 레이어를 단위 테스트합니다.
- 커스텀 손실 또는 평가 함수를 단위 테스트합니다.
- 예상되는 입력에 대해 모델의 출력 유형 및 형태를 단위 테스트합니다.
- 모델의
fit
함수가 몇 개의 작은 데이터 배치에서 오류 없이 작동하는지 단위 테스트합니다. 테스트 시 손실이 감소하고 학습 단계의 실행 시간이 예상대로인지 확인해야 합니다. 모델 코드를 변경하면 학습 프로세스 속도가 느려지는 버그가 발생할 수 있으므로 이러한 검사를 수행해야 합니다. - 모델의 저장 및 로드 기능을 단위 테스트합니다.
- 내보낸 모델 서빙 인터페이스를 원시 입력 및 예상 출력에 대해 단위 테스트합니다.
- 모의 입력 및 출력 아티팩트로 파이프라인 단계의 구성요소를 테스트합니다.
- 파이프라인을 테스트 환경에 배포하고 엔드 투 엔드 파이프라인의 통합 테스트를 수행합니다. 이 프로세스에서는 몇 가지 테스트 데이터를 사용하여 워크플로가 전체적으로 제대로 실행되고 예상 아티팩트를 생성하는지 확인합니다.
- 프로덕션 환경에 새 버전의 학습 파이프라인을 배포할 때는 섀도 배포를 사용합니다. 섀도 배포는 새로 배포된 파이프라인 버전이 이전 파이프라인 버전과 동시에 실시간 데이터에 실행되도록 하는 데 도움이 됩니다.
지속적 학습을 위한 품질 가이드라인
지속적 학습 프로세스는 학습 파이프라인 실행을 조정하고 자동화하는 것입니다. 일반적인 학습 워크플로에는 데이터 수집 및 분할, 데이터 변환, 모델 학습, 모델 평가 및 모델 등록과 같은 단계가 포함됩니다. 일부 학습 파이프라인은 보다 복잡한 워크플로로 구성됩니다. 추가 태스크에는 라벨이 지정되지 않은 데이터를 사용하는 자체 감독 모델 학습을 수행하거나 임베딩의 근사 최근접 이웃 색인을 빌드하는 것이 포함됩니다. 모든 학습 파이프라인의 주 입력은 새로운 학습 데이터이며, 주 출력은 프로덕션에 배포할 새로운 후보 모델입니다.
학습 파이프라인은 일정(예: 일별 또는 주별) 또는 트리거(예: 라벨이 지정된 새 데이터를 사용할 수 있는 경우)에 따라 자동으로 프로덕션에서 실행됩니다. 따라서 학습 워크플로에 품질관리 단계, 특히 데이터 검증 단계와 모델 검증 단계를 추가해야 합니다. 이 단계는 파이프라인의 입력과 출력을 검증합니다.
학습 워크플로의 데이터 수집 단계 후에 데이터 검증 단계를 추가합니다. 데이터 유효성 검증 단계에서는 파이프라인으로 수집되는 새 입력 학습 데이터를 프로파일링합니다. 프로파일링 중에 파이프라인은 ML 개발 프로세스 중에 생성된 사전 정의된 데이터 스키마를 사용하여 이상치를 감지합니다. 사용 사례에 따라 데이터 세트에서 잘못된 레코드를 무시하거나 삭제할 수 있습니다. 그러나 새로 수집된 데이터의 다른 문제로 인해 학습 파이프라인 실행이 중단될 수 있으므로 해당 문제를 식별하고 해결해야 합니다.
데이터 검증 가이드라인
- 추출된 학습 데이터의 특성이 완전하고 예상 스키마와 일치하는지, 즉 누락된 특성과 추가된 특성이 없는지 확인합니다. 또한 특성이 예상 볼륨과 일치하는지 확인합니다.
- 학습 파이프라인으로 수집되는 데이터 세트의 데이터 유형과 형태를 검증합니다.
- 특정 특성의 형식(예: 날짜, 시간, URL, 우편번호, IP 주소)이 예상 정규 표현식과 일치하는지 확인합니다. 또한 특성이 유효한 범위 내에 있는지 확인합니다.
- 각 특성에 대해 누락된 값의 최대 비율을 검증합니다. 특정 특성에서 누락된 값의 상당 부분은 모델 학습에 영향을 줄 수 있습니다. 누락된 값은 일반적으로 신뢰할 수 없는 특성 소스를 나타냅니다.
- 입력 특성의 도메인을 검증합니다. 예를 들어 범주 특성의 어휘나 숫자 특성의 범위에 변경사항이 있는지 확인하고 이에 따라 데이터 사전 처리를 조정합니다. 또 다른 예시로, 특성을 채우는 업스트림 시스템의 업데이트에 다른 측정 단위가 사용되는 경우 숫자 특성의 범위가 변경될 수 있습니다. 예를 들어 업스트림 시스템이 달러에서 엔화로 통화를 변경하거나 킬로미터에서 미터로 거리를 변경할 수 있습니다.
- 각 특성의 배포가 예상과 일치하는지 확인합니다.
예를 들어 지급 유형 기능의 가장 일반적인 값이
cash
이고 이 결제 유형이 모든 값의 50%를 차지하는지 테스트할 수 있습니다. 그러나 가장 일반적인 결제 유형이credit_card
로 변경되면 이 테스트가 실패할 수 있습니다. 이러한 외부 변경사항의 경우 모델을 변경해야 할 수 있습니다.
모델 등록 단계 전에 모델 검증 단계를 추가하여 검증 기준을 통과하는 모델만 프로덕션 배포에 등록되도록 합니다.
모델 검증을 위한 가이드라인
- 최종 모델 평가에는 모델 학습 또는 초매개변수 조정에 사용되지 않은 별도의 테스트 분할을 사용합니다.
- 테스트 데이터 분할을 대상으로 후보 모델의 점수를 매기고, 관련 평가 측정항목을 계산하며, 후보 모델이 사전 정의된 품질 기준을 초과하는지 확인합니다.
- 다양한 데이터 패턴을 설명하기 위해 테스트 데이터 분할이 데이터 전체를 대표하는지 확인합니다. 시계열 데이터의 경우 테스트 분할에 학습 분할보다 최신 데이터가 포함되어 있는지 확인합니다.
- 국가별 사용자 또는 장르별 영화와 같이 중요한 데이터 슬라이스에서 모델 품질을 테스트합니다. 슬라이스 데이터를 테스트하면 세부 성능 문제가 전역 요약 측정항목에 의해 마스킹되는 문제를 방지할 수 있습니다.
- 테스트 데이터 분할을 기준으로 현재(챔피언) 모델을 평가하고 학습 파이프라인이 생성하는 후보(챌린저) 모델과 비교합니다.
- 공정성 지표에 대해 모델을 검증하여 내재적 편향을 감지합니다. 예를 들어 내재적 편향은 학습 데이터의 다양성 부족으로 인해 발생할 수 있습니다. 공정성 지표는 모델을 프로덕션에 배포하기 전에 해결해야 하는 근본 원인 문제를 드러낼 수 있습니다.
지속적 학습 중에 측정항목 최적화와 측정항목 충족에 대해 모델을 검증할 수 있습니다. 또는 최적화 측정항목에 대해서만 모델을 검증하고 모델의 배포 단계까지 충족 측정항목에 대해 검증을 연기할 수도 있습니다. 동일한 모델의 변형을 서로 다른 서빙 환경이나 워크로드에 배포하려는 경우 충족 측정항목에 대한 검증을 연기하는 것이 더 적합할 수 있습니다. 서로 다른 서빙 환경 또는 워크로드(예: 클라우드 환경과 기기 내 환경 또는 실시간 환경과 일괄 제공 환경 비교)에는 서로 다른 충족 측정항목 임곗값이 필요할 수 있습니다. 여러 환경에 배포하는 경우 지속적 학습 파이프라인은 두 개 이상의 모델을 학습시킬 수 있으며 각 모델은 대상 배포 환경에 맞게 최적화됩니다. 자세한 내용 및 예시는 Vertex AI의 이중 배포를 참조하세요.
복잡한 워크플로가 포함된 지속적 학습 파이프라인을 프로덕션 단계에 배치할 때 파이프라인이 실행하는 메타데이터와 아티팩트를 추적해야 합니다. 이 정보를 추적하면 프로덕션 단계에서 발생할 수 있는 모든 문제를 추적하고 디버깅할 수 있습니다. 또한 정보를 추적하면 파이프라인의 출력을 재현하여 후속 ML 개발 반복에서 구현을 개선할 수 있습니다.
ML 메타데이터 및 아티팩트 추적 가이드라인
- 소스 코드, 배포된 파이프라인, 파이프라인의 구성요소, 파이프라인 실행, 사용 중인 데이터 세트, 생성된 아티팩트의 계보를 추적합니다.
- 초매개변수와 파이프라인 실행 구성을 추적합니다.
- 데이터 세트 통계, 데이터 세트 이상(있는 경우), 변환된 데이터 및 스키마, 모델 체크포인트, 모델 평가 결과 등 파이프라인 단계의 주요 입력 및 출력 아티팩트를 추적할 수 있습니다.
- 조건에 따라 실행되는 조건부 파이프라인 단계가 실행되는지 추적하고 주요 단계가 실행되지 않거나 실패할 경우 변경 메커니즘을 추가하여 관측 가능성을 보장합니다.
모델 배포 품질 가이드라인
최적화 측정항목 관점에서 검증된 학습된 모델이 있고 모델 거버넌스 관점에서 모델이 승인되었다고 가정합니다(모델 거버넌스 섹션에서 나중에 설명). 모델이 모델 레지스트리에 저장되고 이제 프로덕션에 배포될 수 있습니다. 이 시점에서 모델이 대상 환경에서 제공하기에 적합한지 확인하기 위해 일련의 테스트를 구현해야 합니다. 또한 모델 CI/CD 루틴에서 이러한 테스트를 자동화해야 합니다.
가이드라인
- 모델 아티팩트가 런타임 종속 항목과 함께 성공적으로 로드되고 호출될 수 있는지 확인합니다. 이 확인은 서빙 환경의 샌드박스 버전에서 모델을 스테이징하여 수행할 수 있습니다. 이 검증은 모델에 사용되는 작업 및 바이너리가 환경에 있는지 확인하는 데 도움이 됩니다.
- 모델 크기 및 지연 시간과 같은 스테이징 환경에서 모델의 측정항목(있는 경우) 측정항목 유효성을 검사합니다.
- 스테이징 환경에서 원시 입력과 예상 출력을 기준으로 모델 아티팩트 서빙 인터페이스를 단위 테스트합니다.
- 예측 요청의 일반적인 사례와 에지 사례에 대한 스테이징 환경에서 모델 아티팩트를 단위 테스트합니다. 예를 들어 모든 기능이
None
으로 설정된 요청 인스턴스에 대해 단위 테스트를 수행합니다. - 모델 서비스 API가 대상 환경에 배포된 후 스모크 테스트를 수행합니다. 이 테스트를 수행하려면 단일 인스턴스 또는 인스턴스 배치를 모델 서비스에 보내고 서비스 응답을 검증합니다.
- 실시간 서빙 데이터의 작은 스트림에서 새로 배포된 모델 버전을 카나리아 테스트합니다. 이 테스트는 모델이 많은 사용자에게 노출되기 전에 새 모델 서비스에서 오류가 발생하지 않는지 확인합니다.
- 이전 서빙 모델 버전으로 빠르고 안전하게 롤백할 수 있는 스테이징 환경에서 테스트합니다.
- 서빙 모집단의 작은 하위 집합을 사용하여 새로 학습된 모델을 테스트하는 온라인 실험을 수행합니다. 이 테스트는 새 모델과 현재 모델의 성능을 비교합니다. 새 모델의 성능과 현재 모델의 성능을 비교한 후에는 모든 라이브 예측 요청을 제공하도록 완전한 기능을 갖춘 새 모델을 출시하기로 결정할 수 있습니다. 온라인 실험 기법에는 A/B 테스팅 및 멀티암드 밴딧(MAB)이 포함됩니다.
모델 서빙 품질 가이드라인
프로덕션 단계에서 배포되고 서빙되는 ML 모델의 예측 성능은 일반적으로 시간이 지남에 따라 저하됩니다. 이 저하는 서빙 특성과 모델에서 예상하는 기능 간에 발생하는 불일치로 인해 발생할 수 있습니다. 이러한 불일치를 학습-서빙 편향이라고 합니다. 예를 들어 추천 모델에는 가장 최근에 조회한 제품 코드와 같은 특성에 대한 영숫자 입력 값이 필요할 수 있습니다. 대신 모델 서비스를 사용하는 애플리케이션의 업데이트로 인해 서빙 중에 제품 코드 대신 제품 이름을 전달합니다.
또한 시간 경과에 따라 제공 데이터의 통계 속성이 드리프트되므로 모델이 오래될 수 있으며 현재 배포된 모델에서 학습한 패턴이 더 이상 정확하지 않습니다. 두 경우 모두 모델이 더 이상 정확한 예측을 제공할 수 없습니다.
이러한 모델의 예측 성능이 저하되지 않도록 하려면 모델의 효과에 대한 지속적인 모니터링을 수행해야 합니다. 모니터링을 통해 모델의 성능이 저하되지 않는지 정기적으로 사전에 확인할 수 있습니다.
가이드라인
- 정기적인 분석을 위해 데이터 저장소에 서빙 요청-응답 페이로드의 샘플을 로깅합니다. 요청은 입력 인스턴스이고, 응답은 해당 데이터 인스턴스에 대한 모델로 생성된 예측입니다.
- 설명 통계를 계산하여 저장된 요청-응답 데이터를 프로파일링하는 자동화된 프로세스를 구현합니다. 이러한 서빙 통계를 일정한 간격으로 계산하고 저장합니다.
- 서빙 데이터 통계를 학습 데이터의 기준 통계와 비교하여 데이터 이동 및 드리프트로 인한 학습-서빙 편향을 식별합니다. 또한 서빙 데이터 통계가 시간 경과에 따라 어떻게 변하는지 분석합니다.
- 시간 경과에 따라 예측의 특성 기여 분석이 어떻게 변하는지 분석하여 개념 드리프트를 식별합니다.
- 학습 데이터와 관련하여 이상점으로 간주되는 서빙 데이터 인스턴스를 식별합니다. 이러한 이상점을 찾으려면 새로운 감지 기술을 사용하고 시간 경과에 따라 서빙 데이터의 이상점 비율이 어떻게 변하는지 추적합니다.
- 모델이 데이터 세트의 주요 예측 특성에 대한 편향 점수 기준점에 도달하는 시기에 대한 알림을 설정합니다.
- 라벨이 사용 가능하면(즉, 정답) 참 라벨을 서빙 인스턴스의 예측 라벨과 결합하여 지속적 평가를 수행합니다. 이 접근 방식은 온라인 실험 중 A/B 테스트로 구현하는 평가 시스템과 유사합니다. 지속적 평가를 통해 프로덕션에서 모델의 예측 성능을 식별할 수 있을 뿐만 아니라 어떤 유형의 요청에 대해 잘 수행되고 잘 수행되지 않는지 식별할 수 있습니다.
- 중요한 시스템 측정항목의 목표를 설정하고 해당 목표에 따라 모델 성능을 측정합니다.
- 서비스 효율성을 모니터링하여 모델이 프로덕션에서 대규모로 제공될 수 있는지 확인합니다. 이 모니터링은 용량 계획을 예측하고 관리하는 데 유용하며 서빙 인프라의 비용을 예측하는 데 도움이 됩니다. CPU 사용률, GPU 사용률, 메모리 사용률, 서비스 지연 시간, 처리량 및 오류율을 포함한 효율성 측정항목을 모니터링합니다.
모델 거버넌스
모델 거버넌스는 직원이 회사의 AI 원칙을 구현하는 데 도움이 되는 가이드라인과 프로세스를 제공하는 회사의 핵심 기능입니다. 이러한 원칙에는 편향을 만들거나 적용하는 모델을 피하고 AI가 내린 결정을 합리화하는 것이 포함될 수 있습니다. 모델 거버넌스 함수는 인간 참여형(Human In The Loop)인지 확인합니다. 민감하고 영향력 높은 워크로드(사용자 대면 작업)에서는 사람이 직접 검토하는 것이 특히 중요합니다. 이와 같은 워크로드에는 신용 위험 점수 산출, 직업 구직자 순위 지정, 보험 정책 승인, 소셜 미디어에 정보 전파가 포함될 수 있습니다.
가이드라인
- 태스크별로 각 모델에 대한 책임 할당 매트릭스가 있습니다. 이 매트릭스는 전체 조직 계층 구조에 따라 사업 분야, 데이터 엔지니어링, 데이터 과학, ML 엔지니어링, 위험, 규정 준수 등 여러 부서의 팀을 고려해야 합니다.
- 모델 버전과 연결된 모델 레지스트리(예: 모델 카드 사용)에서 모델 문서와 보고를 유지합니다. 이러한 메타데이터에는 모델 학습에 사용된 데이터, 모델 성능, 알려진 제한사항에 대한 정보가 포함됩니다.
- 모델을 프로덕션 환경에 배포하기 위해 승인하기 전에 모델에 대한 검토 프로세스를 구현합니다. 이 유형의 프로세스에서는 모델 체크리스트의 버전, 보충 문서, 이해관계자가 요청할 수 있는 추가 정보를 보관합니다.
- 표준 사례와 특이 사례를 모두 포함하는 벤치마크 데이터 세트(골든 데이터 세트라고도 함)에서 모델을 평가합니다. 또한 공정성 지표에 대해 모델을 검증하여 내재된 편향을 감지합니다.
- 모델의 사용자에게 전체적으로 그리고 특정 샘플 입력 인스턴스에 대한 모델 예측 행동을 설명합니다. 이 정보를 제공하면 모델의 중요한 특성과 발생 가능한 바람직하지 않은 동작을 이해하는 데 도움이 됩니다.
- What-if 분석 도구를 사용하여 모델의 예측 동작을 분석하여 다양한 데이터 특성의 중요성을 파악합니다. 이 분석은 여러 모델 및 입력 데이터의 하위 집합 전반에 걸쳐 모델 동작을 시각화하는 데도 도움이 됩니다.
- 적대적 공격에 대해 모델을 테스트하여 프로덕션에서 모델이 악용에 잘 대처할 수 있는지 확인하는 데 도움이 됩니다.
- 프로덕션 모델, 데이터 세트 변화, 드리프트에 따라 모델의 예측 성능에 대한 알림을 추적합니다. 모델 이해관계자에게 알리도록 알림을 구성합니다.
- 모델의 온라인 실험, 출시, 롤백을 관리합니다.
다음 단계
- Google ML에서 ML 테스트 점수: ML 프로덕션 준비 및 기술적 채무 축소를 위한 기준표 읽어보기
- O'Reilly에서 제공하는 프로덕션에서 ML 시스템 실행 간략 가이드 읽어보기
- 머신러닝 규칙 읽어보기
- 머신러닝 테스트 및 디버깅 학습 시도하기
- 머신러닝의 데이터 검증 자료 읽어보기
- Google Cloud의 E2E MLOps 코드 저장소 참조하기
- 그 밖의 참조 아키텍처, 다이어그램, 튜토리얼, 권장사항을 알아보려면 클라우드 아키텍처 센터를 확인하세요.
참여자
저자: 마이크 스타이어 | 생성형 AI 솔루션 설계자
기타 참여자: 아만다 브린호사 | 고객 엔지니어