머신러닝 모델 배포 테스트

배포할 준비가 되었습니다. 큰 빨간색 버튼을 누르는 것만큼 간단하게 모델을 배포할 수 있는 경우 배포 시 파이프라인을 문제없이 실행, 업데이트, 제공해야 합니다. 이러한 요구사항을 통해 이 페이지에 설명된 요구사항과 솔루션을 얻을 수 있습니다.

재현 가능한 학습을 사용한 모델 업데이트 테스트

유니콘 모양 예측 도구를 계속 개선하고 싶으실 겁니다. '시간' 특성의 특성 추출 코드를 리팩터링한다고 가정해 보겠습니다. 코드가 올바른지 어떻게 테스트하나요? 모델을 다시 학습시키고 같은 결과를 얻었는지 확인합니다. 이런 경우 모델 학습을 재현할 수 없습니다. 유니콘 모양을 계속 예측하기로 하여 더 자세히 조사합니다. 다음 단계에 따라 재현성을 달성할 수 있습니다.

  • 확정적으로 랜덤 숫자 생성기 (RNG)를 시드합니다. 자세한 내용은 ML의 데이터 준비 및 특성 추출 과정의 데이터 생성에서 무작위 순서 지정을 참조하세요.

  • 실행할 때마다 구성요소가 RNG에서 같은 랜덤 숫자를 가져오도록 고정 순서로 모델 구성요소를 초기화합니다. ML 라이브러리는 일반적으로 이러한 요구사항을 자동으로 처리합니다.

  • 모델의 평균 실행 횟수

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

이 단계를 수행한 후에도 비결정성의 다른 소스가 있을 수 있습니다.

사양 및 API 호출에 대한 모델 업데이트 테스트

모델을 Unicorn Predictor 2.0으로 업데이트한 후에는 API 호출에 대한 변경사항과 함께 알고리즘 정확성에 관해 새 모델을 테스트해야 합니다. 방법에 대해 알아보겠습니다.

API 호출 테스트

API 호출 업데이트를 어떻게 테스트하나요? 물론 모델을 다시 학습시킬 수도 있지만 시간이 많이 걸립니다. 대신 단위 테스트를 작성하여 무작위 입력 데이터를 생성하고 경사하강법의 단일 단계를 실행합니다. 런타임 오류 없이 단계를 완료해야 합니다.

알고리즘 정확성 테스트

모델은 올바르게 예측해야 할 뿐만 아니라 운이 아니라 알고리즘에 따라 정확하기 때문입니다. 예를 들어 이메일의 99% 가 스팸이 아니라면 모든 이메일을 스팸이 아닌 것으로 분류하면 우연히 정확도가 99% 가 됩니다. 따라서 모델의 알고리즘 정확성 여부를 확인해야 합니다. 다음 단계를 따르세요.

  • 모델을 몇 번 반복 학습하고 손실이 감소하는지 확인합니다.
  • 정규화 없이 알고리즘을 학습시킵니다. 모델이 충분히 복잡하면 학습 데이터를 기억하고 학습 손실은 0에 가깝습니다.
  • 알고리즘의 특정 하위 계산을 테스트합니다. 예를 들어 RNN 일부가 입력 데이터의 요소당 한 번씩 실행되는지 테스트할 수 있습니다.

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

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

통합 테스트를 지속적으로 실행하는 것 외에도 새 모델과 새 소프트웨어 버전을 푸시할 때 통합 테스트를 실행해야 합니다. 전체 파이프라인 실행 속도가 느려서 지속적 통합 테스트가 더 어렵습니다. 통합 테스트를 더 빠르게 실행하려면 데이터의 하위 집합 또는 더 간단한 모델로 학습시키세요. 세부정보는 모델과 데이터에 따라 다릅니다. 지속적인 노출 범위를 얻으려면 모든 새 버전의 모델 또는 소프트웨어에서 실행되도록 더 빠른 테스트를 조정합니다. 한편 느린 테스트는 백그라운드에서 계속 실행됩니다.

서빙 전에 모델 품질 검증

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

  • 갑작스러운 성능 저하: 새 버전의 버그로 인해 품질이 크게 저하될 수 있습니다. 새 버전을 이전 버전과 비교하여 새 버전의 유효성을 검사합니다.

  • 느린 품질 저하: 갑작스러운 성능 저하 테스트에서는 여러 버전에 대한 모델 품질 저하가 감지되지 않을 수 있습니다. 대신 검증 데이터 세트에서 모델의 예측이 고정된 임곗값을 충족하는지 확인하세요. 검증 데이터 세트가 실시간 데이터에서 벗어나면 검증 데이터 세트를 업데이트하고 모델이 여전히 동일한 품질 기준을 충족하는지 확인합니다.

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

모델이 서버보다 빠르게 업데이트되면 모델의 서버 종속 항목이 달라지며, 이로 인해 비호환성이 발생할 수도 있습니다. 서버의 샌드박스 버전에서 모델을 스테이징하여 모델에서 사용하는 작업이 서버에 있는지 확인합니다.