피드로 돌아가기
Your parity gate must enforce the number you publish: a testing methodology for porting ML models across runtimes
Dev.toDev.to
AI/ML

공표 수치와 일치하는 Strict Parity Gate 구축으로 ML 런타임 포팅 오차 9px 감지

Your parity gate must enforce the number you publish: a testing methodology for porting ML models across runtimes

Niv Dvir2026년 5월 8일10advanced

Context

Python 기반 ML 모델을 Swift, C++ 등 타 런타임으로 포팅 시 가중치와 구조가 동일해도 전처리 라이브러리 차이와 수치 정밀도 경계 문제로 인해 출력값의 미세한 Drift 발생. 기존의 느슨한 Tolerance 설정(30px)으로 인해 실제 공표 기준(2px)을 초과하는 9px의 오차가 수주 간 발견되지 않는 Silent Drift 문제 직면.

Technical Solution

  • Model Snapshot Hash, 프레임워크 버전, 전처리 파라미터를 고정한 deterministic reference output을 JSON 형태로 저장하여 Single Source of Truth 구축
  • 공표된 허용 오차(max_edge_delta_allowed)를 문서가 아닌 코드(JSON) 내에 정의하여 Gate의 검증 기준과 공표 수치를 강제로 동기화
  • 모든 출력 요소의 개별 Edge 단위로 Reference와 비교하여 단 하나의 Edge라도 임계치를 초과할 경우 Non-zero exit를 반환하는 Strict Comparison Gate 설계
  • Clean Checkout 상태에서 패치 적용 여부를 검증하는 Bootstrap 스크립트를 통해 빌드 환경의 일관성 확보
  • 여러 컨슈머가 존재하는 환경을 위한 Cross-adapter sanity check 로직을 추가하여 인터페이스 간 정합성 검증

1. ML 포팅 시 전처리 라이브러리(OpenCV, PIL 등) 간의 미세한 구현 차이가 누적되는지 확인

2. FP16/BF16/FP32 간의 Casting 순서에 따른 Least Significant Bit 오차 누적 가능성 검토

3. 테스트 허용 오차(Tolerance) 수치를 하드코딩된 문서가 아닌 설정 파일(Code)로 관리하여 배포 수치와 동기화

4. Reference 데이터 생성 시 모델 해시와 프레임워크 버전을 명시적으로 고정하여 베이스라인 변동 방지

원문 읽기