기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
5. 지속적 통합
ML 시스템은 테스트를 실행하여 시스템이 처음부터 끝까지 작동하는지 검증하고 장애 발생 가능성을 확인합니다. 커밋 시 테스트가 자동으로 실행되며, 더 긴 테스트는 고정된 일정에 따라 실행됩니다. 테스트는 단위 및 시스템 수준과 같은 기존 소프트웨어 엔지니어링 영역을 확인합니다. 또한 테스트는 데이터, 기능 및 모델을 확인하여 ML의 세부 정보를 캡처합니다.
5.1 로컬 코드 확인 |
중앙 집중식 코드 리포지토리에 코드를 커밋하기 전에 개발자는 기본 단위 테스트 및 정적 분석과 같은 검사를 로컬에서 실행합니다. 커밋하기 전에 이러한 검사를 실행하면 전체 코드 품질이 향상되고 버전 제어에 들어가기 전에 문제가 포착됩니다. |
5.2 정적 코드 분석 |
중앙 코드 리포지토리에는 커밋 시 빠르게 실행되는 정적 코드 분석 도구가 있습니다. 이 도구는 코드 스타일과 형식을 개선해야 합니다. 또한 소스 및 인프라 코드 내의 일반적인 보안 취약성, 일반적인 버그 및 코드의 기타 약점을 확인해야 합니다. |
5.3 데이터 품질 테스트 |
데이터 품질 테스트는 최소한 데이터가 고정 스키마를 위반하지 않았는지 확인해야 합니다. 보다 포괄적인 접근 방식은 수집 시 데이터 통계를 계산하고, 데이터에 대한 제약 조건을 설정하고, 이에 대한 테스트를 실행하는 것입니다. 데이터 품질 테스트를 독립적으로 또는 파이프라인의 일부로 설정할 수 있습니다. 통계 및 제약 조건은 모니터링에 재사용됩니다. |
5.4 특성 테스트 |
전체 파이프라인의 일부로 기능 중요도가 생성됩니다. 특성 테스트는 특성의 중요성이나 특성 값을 어트리뷰션하는 모델의 방식이 변경되지 않는다고 주장합니다. 특성 테스트는 모델 입력의 위반을 경고하고 추적할 수 있으므로 모니터링에 제공할 수 있습니다. |
5.5 단위 테스트 |
모델, 애플리케이션 및 인프라와 같은 모든 코드가 커밋 전 및 커밋 시 실행되는지 단위 테스트합니다. 각 단위 테스트는 중요한 코드에 대한 검사를 제공하여 코드가 예상대로 작동하는지 확인합니다. ML 코드의 경우 알고리즘 정확성에 대한 테스트를 실행할 수 있습니다. |
5.6 통합 테스트 |
통합 테스트는 파이프라인에 연결된 인프라를 유지하는 등 파이프라인이 처음부터 끝까지 성공적으로 실행되는지 확인합니다. 이 테스트는 시스템이 예상대로 작동하고 로깅하고 있는지 확인합니다. 배포가 별도의 경우 배포가 작동하는지 확인하기 위해 이에 대한 end-to-end 테스트도 있어야 합니다. |
5.7 연기 테스트 |
시스템에는 각 기능의 미니 회귀와 빠른 회귀로 실행되는 연기 테스트가 있습니다. 연기 테스트는 지속적인 통합의 일부이며, 컨테이너화된 환경에서 실행하여 클라우드 기능을 모방할 수 있습니다. |
5.8 로드 테스트 |
온디맨드 로드 테스트가 마련되어 있습니다. 부하가 높거나 낮을 때 ML 시스템이 작동하는 방식을 캡처하는 것 외에도 로드 테스트는 시스템 전체의 처리량 또는 지연 시간에 대한 통계를 제공합니다. 로드 테스트를 통해 수집된 데이터는 리소스 크기 및 조정 정책에 대한 정보를 제공합니다. |
5.9 모델 기능 테스트 |
모델 출력 및 입력은 자동화된 기능 테스트를 통해 실행됩니다. 기능 내의 동작을 확인하기 위해 모델의 출력과 입력은 기본 예제와 함께 실제 또는 가짜 데이터에서 테스트됩니다. |
5.10 극단적인 경우를 사용한 모델 추론 테스트 |
최소 기능 테스트의 일환으로 모델 테스트는 모델 홍보 전에 특정 입력을 고려하여 극단적인 동작을 확인해야 합니다. 이렇게 하면 예상치 못한 동작을 방지하는 데 도움이 되는 추가 가드레일이 배치됩니다. |