프로덕션 ML 시스템: 배포 테스트

유니콘의 출현을 예측하는 유니콘 모델을 배포할 준비가 되었습니다. 배포 시 머신러닝 (ML) 파이프라인이 실행, 업데이트, 게재됩니다. 모델 배포가 시급한 것만큼이나 쉬웠다면 배포 버튼이 표시됩니다 안타깝게도 완전한 머신러닝 시스템은 다음을 위한 테스트가 필요합니다.

  • 입력 데이터의 유효성 검사
  • 특성 추출 검증
  • 새 모델 버전의 품질 검증
  • 서빙 인프라 검증
  • 파이프라인 구성요소 간의 통합을 테스트합니다.

많은 소프트웨어 엔지니어가 테스트 기반 개발 (TDD)을 선호합니다. TDD에서 소프트웨어는 엔지니어는 '실제'를 작성하기 전에 테스트를 작성합니다. 소스 코드 그러나 TDD는 머신러닝에서 까다로울 수 있습니다. 예를 들어 모델을 학습시키기 전에는 검증을 위한 테스트를 작성할 수 없습니다. 있습니다. 대신 모델 중에 달성 가능한 손실을 먼저 찾아내야 합니다. 그런 다음 달성 가능한 손실에 대비하여 새 모델 버전을 테스트합니다.

유니콘 모델 정보

이 섹션에서는 유니콘 모델을 언급합니다. 다음 사항에 유의하시기 바랍니다.

머신러닝을 사용하여 등장했습니다. 데이터 세트에는 10,000개의 유니콘 모양과 외모 유니콘 10,000개. 데이터 세트에는 위치가 포함됩니다. 시간, 고도, 온도, 습도, 나무 덮개, 현 상태 여러 다른 기능이 있습니다.

재현 가능한 학습으로 모델 업데이트 테스트

유니콘 모델을 지속적으로 개선하고 싶을 수 있습니다. 예를 들어 특정 특성에 대해 추가 특성 추출을 수행한 다음 더 나은 (또는 최소한 동일한) 결과를 얻기 위해 모델을 다시 학습시킵니다. 하지만 모델 학습을 재현하기 어려울 때도 있습니다. 재현성을 개선하려면 다음 권장사항을 따르세요.

  • 랜덤 숫자 생성기를 확정적으로 시드합니다. 자세한 내용은 데이터 무작위 순서 지정을 참조하세요. 생성

  • 고정된 순서로 모델 구성요소를 초기화하여 구성요소가 랜덤 숫자 생성기에서 동일한 랜덤 숫자를 생성해야 합니다. ML 라이브러리는 일반적으로 이 요구사항을 자동으로 처리합니다.

  • 모델의 여러 실행에 대한 평균을 구합니다.

  • 예비 반복에도 버전 제어를 사용하여 모델이나 파이프라인을 조사할 때 코드와 매개변수를 정확히 찾아낼 수 있습니다.

이러한 가이드라인을 따른 후에도 비결정성의 다른 원인은 여전히 존재합니다

Machine Learning API 호출 테스트

API 호출의 업데이트를 어떻게 테스트하나요? 모델을 다시 학습시킬 수도 있지만 시간이 오래 걸립니다 대신 단위 테스트를 작성하여 무작위 입력 데이터를 생성합니다. 경사하강법의 단일 단계를 실행합니다. 이 단계가 API 업데이트로 인해 모델이 손상되지 않았을 가능성이 높습니다.

파이프라인 구성요소의 통합 테스트 작성

ML 파이프라인에서 한 구성요소를 변경하면 다른 구성요소에서 오류가 발생할 수 있음 구성할 수 있습니다. 다음 코드를 작성하여 구성요소가 함께 작동하는지 전체 파이프라인을 엔드 투 엔드로 실행하는 통합 테스트

통합 테스트를 지속적으로 실행하는 것 외에도 통합 테스트를 실행해야 합니다. 새로운 모델 및 새 소프트웨어 버전을 푸시할 때 비용을 절감할 수 있습니다 Kubernetes의 실행 속도가 느린 전체 파이프라인이 지속적 통합 테스트를 더 어렵게 만듭니다 통합 실행 더 빠르게 테스트하고, 데이터의 하위 집합으로 학습시키거나, 더 단순한 모델로 학습하도록 할 수 있습니다. 세부정보 영향을 받을 수 있습니다 연결 범위를 계속 유지하려면 새로운 버전의 모델 또는 소프트웨어로 실행할 때마다 더 빠르게 테스트할 수 있습니다. 그동안 느린 테스트는 백그라운드에서 지속적으로 실행됩니다.

서빙 전에 모델 품질 검증

새 모델 버전을 프로덕션에 푸시하기 전에 품질 저하의 두 가지 유형은 다음과 같습니다.

  • 급격한 성능 저하. 새 버전의 버그는 심각한 오류와 화질이 낮아집니다. 품질을 검사하여 새 버전 유효성 검사 확인할 수 있습니다

  • 느린 성능 저하. 급격한 성능 저하 테스트에서 느린 성능 저하를 방지합니다. 대신 검증 데이터 세트에 대한 모델의 예측이 정해진 임곗값을 충족하는지 확인합니다. 만약 검증 데이터 세트가 라이브 데이터에서 벗어나면 검증을 업데이트 모델이 여전히 동일한 품질 기준을 충족하는지 확인하세요

서빙 전에 모델 인프라 호환성 검사

모델이 서버보다 빠르게 업데이트되는 경우 모델은 소프트웨어 종속 항목이 다르기 때문에 비호환성 문제를 해결할 수 있습니다 모델에서 사용하는 작업이 서버의 샌드박스 버전에서 모델을 스테이징하여 서버를 테스트합니다.