피드로 돌아가기
Dev.toAI/ML
원문 읽기
YAML Canonicalization 기반 ML 성능 지표 위변조 방지 시스템 구축
I built a CLI that hashes your ML accuracy claims before the experiment runs
AI 요약
Context
ML 실험 결과 도출 후 Spec을 사후 수정하여 지표를 조작하는 Falsifiability 부재 문제 발생. Git commit 기록만으로는 강제 푸시 등을 통한 증거 인멸이 가능하여 실험 계약의 무결성 보장 불가.
Technical Solution
- YAML Spec의 정규화를 통한 SHA-256 Hash 기반의 Trust Primitive 설계
- Unicode NFC 정규화 및 Mapping Key 정렬을 통한 데이터 일관성 확보 및 Hash 충돌 방지
.lock파일을 통한 실험 전 Spec 고정 및 사후 변경 시 Tamper Detection 메커니즘 구현- 'Falsified(지표 미달)'와 'Tampered(Spec 변조)'를 구분한 Exit Code API 설계로 오류 성격 명확화
- 단일 파일 Python CLI 구조 채택으로 SRE 및 감사자의 코드 리뷰 가독성과 신뢰성 극대화
- CI/CD 파이프라인 통합을 통한 Spec 변조 시 Merge Block 자동화 체계 구축
실천 포인트
- ML 실험 전 Metric, Dataset SHA, Threshold를 포함한 Contract 정의 및 Lock 처리 - 데이터 포맷팅 차이로 인한 Hash 변동을 막기 위해 Canonicalization 과정 필수 적용 - 단순 성공/실패가 아닌 원인별 Exit Code를 정의하여 자동화 파이프라인의 대응 로직 차별화 - 외부 감사 및 검증이 필요한 도구는 복잡한 패키지 구조보다 단일 파일의 투명한 구현 지향