머신러닝 엔지니어링 워크플로우
이 스킬을 사용하여 모델 작업을 명확한 데이터 계약, 반복 가능한 학습, 측정 가능한 품질 게이트, 배포 가능한 아티팩트, 운영 모니터링을 갖춘 프로덕션 ML 시스템으로 전환하세요.
활성화 시점
- 프로덕션 ML 기능, 모델 리프레시, 랭킹 시스템, 추천기, 분류기, 임베딩 워크플로우 또는 예측 파이프라인을 계획하거나 검토할 때
- 노트북 코드를 재사용 가능한 학습, 평가, 배치 추론 또는 온라인 추론 파이프라인으로 변환할 때
- 모델 승격 기준, 오프라인/온라인 평가, 실험 추적 또는 롤백 경로를 설계할 때
- 데이터 드리프트, 레이블 누수, 오래된 피처, 아티팩트 불일치 또는 일관되지 않은 학습 및 서빙 로직으로 인한 실패를 디버깅할 때
- 모델 모니터링, 카나리 롤아웃, 섀도 트래픽 또는 배포 후 품질 검사를 추가할 때
범위 조정
현재 시스템에 적합한 레인만 사용하세요. 이 스킬은 랭킹, 검색, 추천, 분류기, 예측, 임베딩, LLM 워크플로우, 이상 탐지 및 배치 분석에 유용하지만, 모든 아키텍처에 하나의 방식을 강요해서는 안 됩니다.
- 모든 모델에 지도 레이블, 온라인 서빙, 피처 스토어, PyTorch, GPU, 사람의 검토, A/B 테스트 또는 실시간 피드백이 있다고 가정하지 마세요.
- 데이터 계약, 베이스라인, 평가 스크립트 및 롤백 노트로 변경 사항을 검토 가능하게 만들 수 있다면 무거운 MLOps 도구를 추가하지 마세요.
- 프로젝트에 레이블, 지연된 결과, 슬라이스 정의, 프로덕션 트래픽 또는 모니터링 소유권이 없는 경우 가정을 명시적으로 만드세요.
- 예제는 상호 교환 가능한 스캐폴드로 취급하세요. 메트릭, 서빙 모드, 데이터 저장소 및 롤아웃 메커니즘을 프로젝트 네이티브에 해당하는 것으로 교체하세요.
관련 스킬
python-patterns및python-testing: 파이썬 구현 및 pytest 커버리지용pytorch-patterns: 딥러닝 모델, 데이터 로더, 디바이스 처리 및 학습 루프용eval-harness및ai-regression-testing: 승격 게이트 및 에이전트 지원 회귀 검사용database-migrations,postgres-patterns,clickhouse-io: 데이터 저장소 및 분석 표면용deployment-patterns,docker-patterns,security-review: 서빙, 시크릿, 컨테이너 및 프로덕션 강화용
SWE 표면 재사용
MLE를 소프트웨어 엔지니어링과 분리된 것으로 취급하지 마세요. 대부분의 ECC SWE 워크플로우는 ML 시스템에 직접 적용 가능하며, 종종 더 엄격한 실패 모드를 수반합니다.
권장되는 minimal --with capability:machine-learning 설치는 이 스킬과 함께 핵심 에이전트 표면을 사용 가능하게 유지합니다. 스킬 전용 또는 에이전트 제한 하네스의 경우, 대상이 에이전트를 지원하는 경우 skill:mle-workflow를 agent:mle-reviewer와 함께 페어링하세요.
| SWE 표면 | MLE 사용 |
|---|---|
product-capability / architecture-decision-records | 모델 작업을 명시적 제품 계약으로 전환하고, 데이터, 모델 및 롤아웃에 대한 되돌릴 수 없는 결정을 기록 |
repo-scan / codebase-onboarding / code-tour | 병렬 ML 스택을 도입하기 전에 기존 학습, 피처, 서빙, 평가 및 모니터링 경로 찾기 |
plan / feature-dev | 데이터, 평가, 서빙 및 롤백 단계를 포함한 제품 기능으로 모델 변경 범위 지정 |
tdd-workflow / python-testing | 구현 전에 피처 변환, 분할 로직, 메트릭 계산, 아티팩트 로드 및 추론 스키마 테스트 |
code-reviewer / mle-reviewer | 코드 품질과 ML 특화 누수, 재현성, 승격 및 모니터링 위험 검토 |
build-fix / pr-test-analyzer | 깨진 CI, 불안정한 평가, 누락된 픽스처, 환경 특화 모델 또는 종속성 실패 진단 |
quality-gate / test-coverage | 변환, 메트릭, 추론 계약, 승격 게이트 및 롤백 동작에 대한 자동화된 증거 요구 |
eval-harness / verification-loop | 오프라인 메트릭, 슬라이스 검사, 지연 시간 예산 및 롤백 훈련을 반복 가능한 게이트로 전환 |
ai-regression-testing | 모든 프로덕션 버그를 회귀로 보존: 누락된 피처, 오래된 레이블, 잘못된 아티팩트, 스키마 드리프트 또는 서빙 불일치 |
api-design / backend-patterns | 예측 API, 배치 작업, 멱등성 재학습 엔드포인트 및 응답 봉투 설계 |
database-migrations / postgres-patterns / clickhouse-io | 레이블, 피처 스냅샷, 예측 로그, 실험 메트릭 및 드리프트 분석 버전 관리 |
deployment-patterns / docker-patterns | 헬스 체크, 리소스 제한 및 롤백이 있는 재현 가능한 학습 및 서빙 이미지 패키징 |
canary-watch / dashboard-builder | 모델 버전, 슬라이스, 드리프트, 지연 시간, 비용 및 지연된 레이블 대시보드로 롤아웃 건강 상태 가시화 |
security-review / security-scan | 모델 아티팩트, 노트북, 프롬프트, 데이터셋 및 로그에서 시크릿, PII, 안전하지 않은 역직렬화 및 공급망 위험 확인 |
e2e-testing / browser-qa / accessibility | 예측을 소비하는 중요 제품 흐름 테스트 (설명 가능성 및 폴백 UI 상태 포함) |
benchmark / performance-optimizer | 처리량, p95 지연 시간, 메모리, GPU 사용률 및 예측 또는 재학습당 비용 측정 |
cost-aware-llm-pipeline / token-budget-advisor | 가장 큰 모델을 기본값으로 사용하는 대신 품질, 지연 시간 및 예산별로 LLM/임베딩 워크로드 라우팅 |
documentation-lookup / search-first | 코딩 전에 모델 서빙, 피처 스토어, 벡터 DB 및 평가 도구에 대한 현재 라이브러리 동작 확인 |
git-workflow / github-ops / opensource-pipeline | 명확한 범위, 생성된 아티팩트 제외 및 재현 가능한 테스트 증거로 검토를 위한 MLE 변경 패키징 |
strategic-compact / dmux-workflows | 긴 ML 작업을 데이터 계약, 평가 하네스, 서빙 경로, 모니터링 및 문서의 병렬 트랙으로 분할 |
10가지 MLE 작업 시뮬레이션
이 시뮬레이션을 MLE 작업 계획 또는 검토 시 커버리지 검사로 사용하세요. 강력한 MLE 워크플로우는 각 작업을 명시적 계약, 재사용 가능한 SWE 표면, 자동화된 증거 및 검토 가능한 아티팩트로 축소해야 합니다.
| ID | 일반적인 MLE 작업 | 간소화된 ECC 경로 | 필수 출력물 | 파이프라인 레인 커버 |
|---|---|---|---|---|
| MLE-01 | 모호한 예측, 랭킹, 추천, 분류, 임베딩 또는 예측 기능 구성 | product-capability, plan, architecture-decision-records, mle-workflow | 누가 신경 쓰는지, 결정 소유자, 성공 메트릭, 용납할 수 없는 실수, 가정, 제약 조건 및 첫 번째 실험을 명명하는 Iteration Compact | 제품 계약, 이해관계자 손실, 위험, 롤아웃 |
| MLE-02 | 메트릭 목표, 레이블, 데이터 소스 및 실수 예산 정의 | repo-scan, database-reviewer, database-migrations, postgres-patterns, clickhouse-io | 엔터티 단위, 레이블 타이밍, 레이블 신뢰도, 피처 타이밍, 시점 조인, 분할 정책 및 데이터셋 스냅샷을 포함한 데이터 및 메트릭 계약 | 데이터 계약, 메트릭 설계, 누수, 재현성 |
| MLE-03 | 복잡성을 추가하기 전에 베이스라인 모델 및 점수 경로 구축 | tdd-workflow, python-testing, python-patterns, code-reviewer | 혼동 행렬, 보정 노트, 지연 시간/비용 추정, 알려진 약점 및 점수 형태와 결정론에 대한 테스트가 포함된 베이스라인 스코어러 | 베이스라인, 점수화, 테스트, 서빙 패리티 |
| MLE-04 | 결과를 구분하는 가설에서 피처 생성 | python-patterns, pytorch-patterns, docker-patterns, deployment-patterns | 신호 소스, 누락 값, 이상치, 상관 관계, 누수 검사 및 학습/서빙 동등성을 다루는 피처 계획 및 변환 모듈 | 피처 파이프라인, 누수, 학습, 아티팩트 |
| MLE-05 | 트레이드오프 하에서 임계값, 구성 및 모델 복잡성 튜닝 | eval-harness, ai-regression-testing, quality-gate, test-coverage | 정밀도, 재현율, F1, AUC, 보정, 그룹 슬라이스, 지연 시간, 비용, 복잡성 및 허용 가능한 오류 클래스를 비교하는 임계값/구성 보고서 | 평가, 임계값, 승격, 회귀 |
| MLE-06 | 오류 분석을 실행하고 실수를 다음 실험으로 전환 | eval-harness, ai-regression-testing, mle-reviewer, silent-failure-hunter | 거짓 양성, 거짓 음성, 모호한 레이블, 오래된 피처, 누락된 신호 및 버그 추적에 대한 오류 클러스터 보고서 (교훈 포함) | 오류 분석, 버그 추적, 반복, 회귀 |
| MLE-07 | 배치 또는 온라인 추론을 위한 모델 아티팩트 패키징 | api-design, backend-patterns, security-review, security-scan | 전처리, 구성, 종속성 제약 조건, 스키마 검증, 안전한 로드 및 PII 안전 로그가 포함된 버전 관리 아티팩트 번들 | 아티팩트, 보안, 추론 계약 |
| MLE-08 | 피드백 캡처를 포함한 온라인 서빙 또는 배치 점수화 제공 | api-design, backend-patterns, e2e-testing, browser-qa, accessibility | 응답 봉투, 타임아웃, 배치, 폴백, 모델 버전, 신뢰도, 피드백 로깅 및 제품 흐름 테스트가 포함된 예측 엔드포인트 또는 배치 작업 | 서빙, 배치 추론, 폴백, 사용자 워크플로우 |
| MLE-09 | 섀도 트래픽, 카나리, A/B 테스트 또는 롤백으로 모델 롤아웃 | canary-watch, dashboard-builder, verification-loop, performance-optimizer | 트래픽 분할, 대시보드, p95 지연 시간, 비용, 품질 안전장치, 롤백 아티팩트 및 롤백 트리거를 명명하는 롤아웃 계획 | 배포, 카나리, 롤백 |
| MLE-10 | 출시 후 프로덕션 모델 운영, 디버그 및 리프레시 | silent-failure-hunter, dashboard-builder, mle-reviewer, doc-updater, github-ops | 드리프트 검사, 지연된 레이블 건강 상태, 알림 소유자, 런북 업데이트, 재학습 기준 및 PR 증거가 포함된 관찰 원장 및 리프레시 계획 | 모니터링, 인시던트 대응, 재학습 |
Iteration Compact
모델 코드를 건드리기 전에 작업을 하나의 검토 가능한 아티팩트로 압축하세요. PR 설명에 들어갈 만큼 짧고 다른 엔지니어가 트레이드오프에 이의를 제기할 수 있을 만큼 정밀해야 합니다.
목표:
누가 신경 쓰는가:
결정 소유자:
모델에 의해 변경되는 사용자 또는 시스템 작업:
성공 메트릭:
안전장치 메트릭:
실수 예산:
용납할 수 없는 실수:
허용 가능한 실수:
가정:
제약 조건:
레이블 및 데이터 스냅샷:
베이스라인:
후보 신호:
임계값 또는 구성 계획:
평가 슬라이스:
알려진 위험:
다음 실험:
롤백 또는 폴백:
이 컴팩트는 강력한 SWE 설계 노트에 해당하는 MLE 버전입니다. 팀이 아무도 신뢰하지 않는 메트릭을 최적화하거나, 실제 오류 모드를 해결하지 않는 피처를 추가하거나, 롤백 없이 복잡성을 출시하는 것을 방지합니다.
결정 브레인
작업이 모호하거나, 영향이 크거나, 메트릭 중심일 때마다 이 루프를 사용하세요:
- 모델이 아닌 결정에서 시작하세요. 다운스트림 동작을 변경하는 작업의 이름을 지정하세요.
- 누가 신경 쓰고 왜 그런지 이름을 지정하세요. 다양한 이해관계자는 거짓 양성, 거짓 음성, 지연 시간, 컴퓨팅 비용, 불투명성 또는 놓친 기회에 대해 서로 다른 비용을 지불합니다.
- 모호함을 가설로 전환하세요. 어떤 신호가 결과를 구분할지, 어떤 증거가 그것을 반증할지, 어떤 간단한 베이스라인이 이기기 어려워야 하는지 물어보세요.
- 맞춤형 시스템을 발명하기 전에 이전 사례나 가까운 알려진 문제를 조사하세요.
(확률, 신뢰도) x (비용, 심각도, 중요도, 영향)으로 선택지를 점수화하세요.- 적대적 행동, 인센티브, 선택적 공개, 분포 변화 및 피드백 루프를 고려하세요.
- 가장 중요한 실수를 줄이는 가장 간단한 변경을 선호하세요. 단순함은 게으름이 아닙니다. 반복 속도를 유지하면서 실수를 최소화하는 방법입니다.
- 결정, 증거, 반론 및 다음 되돌릴 수 있는 단계를 캡처하세요.
메트릭 및 실수 경제학
습관이 아닌 실패 비용에서 메트릭을 선택하세요:
- 팀이 추상적인 정확도 대신 구체적인 거짓 양성 및 거짓 음성에 대해 논의할 수 있도록 초기에 혼동 행렬을 사용하세요.
- 잘못된 양성 결정 비용이 지배적일 때 정밀도를 선호하세요.
- 놓친 양성 비용이 지배적일 때 재현율을 선호하세요.
- 정밀도/재현율 트레이드오프가 진정으로 균형 잡히고 설명 가능할 때만 F1을 사용하세요.
- 순서 품질이 단일 임계값보다 더 중요할 때 AUC 또는 랭킹 메트릭을 사용하세요.
- 지연 시간, 처리량, 메모리 및 비용을 일급 메트릭으로 추적하세요. 실행 가능한 모델 복잡성을 형성하기 때문입니다.
- 오프라인 개선을 축하하기 전에 베이스라인 및 현재 프로덕션 모델과 비교하세요.
- 실제 피드백 신호를 편향, 지연 및 커버리지 격차가 있는 지연된 레이블로 취급하세요. 분석 없이 진실로 취급하지 마세요.
모든 메트릭 선택은 어떤 실수를 더 저렴하게 만들고, 어떤 실수를 더 가능하게 만들며, 누가 그 비용을 부담하는지 명시해야 합니다.
데이터 및 피처 가설
피처는 분리 이론에서 나와야 합니다:
- 텍스트, 범주형 필드, 숫자 이력, 그래프 관계, 최신성, 빈도 및 집계는 자동 피처가 아닌 후보 신호 패밀리입니다.
- 각 피처 패밀리에 대해 왜 결과를 구분해야 하는지, 어떻게 미래 정보를 누출할 수 있는지 명시하세요.
- 노이즈가 많은 레이블의 경우, 중재, 레이블 신뢰도, 소프트 타겟 또는 신뢰도 가중치를 고려하세요.
- 클래스 불균형의 경우, 가중치 손실, 리샘플링, 임계값 이동 및 보정된 결정 규칙을 비교하세요.
- 누락 값의 경우, 부재가 정보를 제공하는지, 대체 가능한지, 또는 기권 이유인지 결정하세요.
- 이상치의 경우, 잘라낼지, 버킷화할지, 조사할지 또는 드물지만 중요한 신호로 보존할지 결정하세요.
- 상관된 피처의 경우, 중복되는지, 불안정한지 또는 사용할 수 없는 미래 상태의 프록시인지 확인하세요.
오류 분석에서 추가 신호나 용량이 타당하게 해결할 수 있는 이유로 베이스라인이 실패하고 있음을 보여줄 때까지 모델 복잡성을 추가하지 마세요.
오류 분석 루프
각 베이스라인, 학습 실행, 임계값 변경 또는 구성 변경 후:
- 실수를 거짓 양성, 거짓 음성, 기권, 낮은 신뢰도 사례 및 시스템 실패로 분할하세요.
- 공유 특성(언어, 엔터티 유형, 소스, 시간, 지리, 장치, 희소성, 최신성, 피처 신선도, 레이블 소스 또는 모델 버전)별로 오류를 클러스터링하세요.
- 모델 실수와 데이터 버그를 분리하세요.