AI 파이프 라인 및 교육 자동화
1) 목적과 원칙
목적: 데이터 → 기능 → 모델 → 결정 → 피드백을 위험/비용의 최소 시간 및 제어하여 신뢰할 수 있고 재생산됩니다.
원칙:- Pipeline-as-Code: Git의 모든 것 (DAG, 구성 요소, 테스트, 정치인) -PR 및 검토를 통해.
- 결정: 고정 버전의 데이터/코드/컨테이너/종속성.
- 우려 분리: DataOps, FeatureOps, TrainOps, DeployOps, MonitorOps.
- Guarded Automation: 우리는 자동화하지만 품질, 안전 및 규정 준수의 "게이트" 를 사용합니다.
- 디자인 별 개인 정보 보호: PII 최소화, 거주, 감사.
2) 컨베이어 레이어 및 아키텍처
1. Ingest & Bronze: 이벤트/배치 (CDC, 타이어, 리트레이, DLQ) 의 안정적인 수신.
2. 은 (정규화/농축): SCD, 통화/시간, 청산, dedup.
3. 금 (상점): 교육/보고를위한 과목 테이블 및 데이터 세트.
4. Feature Store: 온라인/오프라인 기능, 버전 및 SLO를위한 균일 한 공식.
5. 훈련 및 검증: 샘플 준비, 훈련, 교정, 평가/확인 게이트.
6. 레지스트리 및 프로모션: 모델 등록, 품질 카드, 프로모션 정책.
7. 서빙: REST/gRPC/Batch, 캐시 기능, 기능 플래그, 카나리아/그림자.
8. 모니터 및 피드백: SLI/SLO, 드리프트/보정, 온라인 라벨, 자동 재교육.
3) 오케스트레이션: DAG 패턴
일일 CT (D + 1): 야간 데이터주기 → 기능 → 교육 → 검증 → 레지스트리 후보.
이벤트 주도 재교육: PSI/ECE/예상 비용 드리프트 또는 회로 릴리스 용 트리거.
롤링 윈도: 데이터의 "슬라이딩 창" 으로 매주/월간 재교육.
파란색/녹색 아티팩트: 모든 아티팩트는 불변의 (해시) 병렬 버전입니다.
이중 쓰기 v1/v2: 이중 쓰기 및 동등성 비교를 통한 스키마/기능 마이그레이션.
python with DAG("ct_daily", schedule="@daily", start_date=..., catchup=False) as dag:
bronze = BashOperator(task_id="ingest_cdc", bash_command="ingest.sh")
silver = BashOperator(task_id="silver_norm", bash_command="dbt run --models silver")
gold = BashOperator(task_id="gold_marts", bash_command="dbt run --models gold")
feats = BashOperator(task_id="feature_store_publish", bash_command="features publish")
ds = BashOperator(task_id="build_dataset", bash_command="dataset build --asof {{ ds }}")
train = BashOperator(task_id="train", bash_command="trainer run --config conf.yaml")
eval = BashOperator(task_id="evaluate", bash_command="eval run --gate conf/gates.yaml")
reg = BashOperator(task_id="register", bash_command="registry add --stage Staging")
bronze >> silver >> gold >> feats >> ds >> train >> eval >> reg
4) 데이터 세트 및 샘플
기능/레이블에 대한 적시 가입 및 "미래 없음".
누출에 대한 시장/테넌트/시간, 홀드 아웃 및 "갭" 으로 분류됩니다.
검증: 'data _ version', 'logic _ version', 'asof _ date'; WORM 스냅 샷.
5) 피처 스토어 및 온라인/오프라인 등가
통합 기능 사양 (이름, 공식, 소유자, SLO, 테스트).
온라인 = 오프라인: 공통 변환 코드; 동등성 테스트 (MAE/MAPE).
TTL 및 캐시: 창 10m/1h/1d; 타임 아웃/퇴각; 폴백 "마지막 _ 알려진 _ Good".
yaml name: bets_sum_7d owner: ml-risk offline: {source: silver.fact_bets, window: "[-7d,0)"}
online: {compute: "streaming_window: 7d", ttl: "10m"}
tests:
- compare_online_offline_max_abs_diff: 0.5 slo: {latency_ms_p95: 20, availability: 0.999}
6) 교육 자동화 (CT) 및 품질 게이트
CT주기: 준비 → 훈련 → 교정 → 평가 → 후보자의 등록.
게이트 (예):- 오프라인: PR-AUC 벤치 마크 ECE Λ0. 05; 예상 비용 제한
- 슬라이스/공정성: 모든 슬라이스에서 측정 항목이 떨어지고 이질적인 영향은 정상입니다.
- 동등성 기능: 약.
- 비용: 시간/자원
yaml gates:
pr_auc_min: 0.42 ece_max: 0.05 expected_cost_delta_max: 0.0 slice_drop_max_pct: 10 features_equivalence_p95_abs_diff_max: 0.5
7) 모델 등록 및 프로모션
모델 카드: 데이터, 창, 기능, 오프/온라인 메트릭, 교정, 위험, 소유자.
단계: '준비 → 생산 → 보관'; 입증 된 게이트를 통해서만 프로모션.
롤백 정책: 최신 프로덕션 버전을 제대로 유지하십시오. 한 번의 클릭 롤백.
8) CI/CD/CT: 연결 방법
CI (코드/테스트): 단위/통합/계약 테스트, 라인터, 보안 스캔.
CD (서빙): Docker/K8s/Helm/기능 플래그, 카나리아/그림자/청록색.
CT (데이터/교육): 일정/이벤트 오케 스트레이터; 아티팩트 → 레지스트리.
프로모션 게이트: 녹색 온라인 SLO를 사용한 프로덕션 자동 릴리스 (카나리아 이하 X 시간).
9) 다중 임대 및 거주
세입자/지역: 격리 된 파이프 라인 및 암호화 키 (EEA/UK/BR); 이유없이 지역 간 가입 금지.
비밀: KMS/CMK, 비밀 관리자; 로그에서 토큰 화 된 ID.
DSAR/RTBF 정책: 기능 및 로그의 계산 가능한 예측 및 선택적 편집; 사건에 대한 법적 보류.
10) 모니터링 → 피드백 → 재교육
SLI/SLO: 대기 시간 p95/p99, 5xx, 적용 범위, 비용/요청; 드리프트 PSI/KL, ECE, 예상 비용.
온라인 레이블: 프록시 (시간/일) 및 지연 (D + 7/D + 30/D + 90).
자동 작업: 재 교정/임계 값 업데이트 → 섀도우 재교육 → 카나리아 → 프로모션.
런북: 열화 시나리오 (드리프트, 교정, 기능 캐시, 공급자).
11) 보안, RG/AML 및 솔루션 정책
가드 레일: 사전/사후 필터, 캡 주파수, 대기 시간, 금지 목록.
정책 차폐-모델 → 솔루션 → 정책 필터 → 조치.
감사: '모델 _ id/버전', 'facture _ version', '임계 값', 'policy _ id', 이유.
WORM 아카이브: 릴리스, 품질 보고서, 테스트/프로모션 로그.
12) 비용과 성능
경로 프로파일 링: 기능 (30-60%), 추론 (20-40%), IO/네트워크.
비용 대시 보드: 비용/요청, 비용/기능, GPU/CPU-clock, 소형 파일.
최적화: 무거운 오프라인 기능의 구체화, 핫 윈도 캐시, INT8/FP16, 할당량/백필을 재생합니다.
Chargeback: 팀/마켓별로 예산을 분배하고 "비싼" 기능을 제어합니다.
13) 예 (조각)
아르고 워크 플로:yaml apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: {name: ct-daily}
spec:
entrypoint: pipeline templates:
- name: pipeline dag:
tasks:
- name: gold template: task arguments: {parameters: [{name: cmd, value: "dbt run --models gold"}]}
- name: features dependencies: [gold]
template: task arguments: {parameters: [{name: cmd, value: "features publish"}]}
- name: train dependencies: [features]
template: task arguments: {parameters: [{name: cmd, value: "trainer run --config conf.yaml"}]}
- name: eval dependencies: [train]
template: task arguments: {parameters: [{name: cmd, value: "eval run --gate conf/gates.yaml"}]}
- name: task inputs: {parameters: [{name: cmd}]}
container: {image: "ml/ct:latest", command: ["/bin/bash","-lc"], args: ["{{inputs.parameters.cmd}}"]}
게이트 스크립트 (의사 코드):
python ok = (pr_auc >= gate.pr_auc_min and ece <= gate.ece_max and expected_cost_delta <= gate.expected_cost_delta_max and slice_drop_pct <= gate.slice_drop_max_pct and features_equivalence_p95_abs_diff <= gate.features_equivalence_p95_abs_diff_max)
exit(0 if ok else 1)
프로모션 정책 (아이디어):
yaml promotion:
require:
- offline_gates_passed
- canary_online_hours >= 24
- slo_green: [latency_p95, error_rate, coverage]
- drift_warn_rate <= 5%
14) 프로세스 및 RACI
R (책임):- 데이터 영역-Ingest/Silver/Gold, Feature Store, CDC/Backfill;
- 데이터 과학 - 샘플/교육/교정/게이트;
- MLops-orkestration/reestrr/serving/nablyudayemost.
- A (책임): 데이터/CDO 책임자.
- C (컨설팅): 준수/DPO (PII/RG/AML/DSAR), 보안 (KMS/감사), SRE (SLO/Value), 금융 (예산/ROI), 제품.
- I (정보): 마케팅/운영/지원.
15) 구현 로드맵
MVP (3-6 주):1. DAG "일일 CT": 청동 → 은 → 금 → 기능 저장소 → 기차 → 에발 → 등록 소 (준비).
2. Feature Store v1 및 온라인/오프라인 동등성 테스트.
3. 품질 게이트 (PR-AUC/ECE/예상 비용/슬라이스).
4. 모델 레지스터, 카드 및 WORM 릴리스 아카이브.
2 단계 (6-12 주):- 온라인 SLO를 통한 자동 재 보정/임계 값 업데이트, 카나리아 프로모션.
- 드리프트에 의한 이벤트 중심 재교육; 마이그레이션을위한 이중 쓰기 v1/v2.
- 비용 대시 보드 및 백필/재생 할당량; 다중 임차인 격리.
- 슬라이스 및 자동보고에 대한 공정성 정책.
- 개별 키가있는 다중 지역 거주자 (EEA/UK/BR).
- 일정 및 이벤트별로 자동 재교육, 파이프 라인의 자동 문서.
16) 배송 점검표
- 파이프 라인 코드 (Cipeline-as-Code) CI 테스트 (단위/통합/계약/보안).
- 브론즈/실버/골드 및 피처 스토어는 안정적입니다. 동등성 기능은 녹색입니다.
- 오프라인 게이트가 통과되었 모델 카드가 가득합니다. WORM 아카이브 생성.
- 녹색 SLO가있는 카나리아 롤백 버튼 및 킬 스위치 기능.
- 드리프트/ECE/예상 비용 및 온라인 라벨 모니터링이 활성화되었습니다.
- PII/레지던트/DSAR/RTBF/Legal Hold가 충족되었습니다. 감사 구성.
- 예산 비용; 캐시/할당량/기능 및 재생 제한이 활성화되었습니다.
17) 반 패턴 및 위험
매뉴얼, 오케 스트레이터 외부의 "원샷" 단계; Git 이야기가 없습니다.
게이트와 카드가없는 훈련; "손으로" 프로모션.
일관되지 않은 온라인/오프라인 기능 → 판매 중 불일치.
드리프트/교정/예상 비용 무시; ROC-AUC "종당" 만.
거주지 부족/PII 정책; "원시" ID의 로깅.
무제한 백필/리플레이 → 비용 폭발 및 SLA에 미치는 영향.
18) 결론
AI 파이프 라인은 랩톱 세트가 아닌 가치있는 파이프 라인입니다. 데이터 계층, Feature Store 및 CT/CI/CD를 공식화하고 품질 및 안전 게이트를 추가하고 드리프트로 재교육을 자동화하며 온라인/오프라인 동등성 및 투명한 경제를 유지하십시오. 이를 통해 시장과 시간에 걸쳐 빠르고 예측 가능하며 호환되는 데이터 → 모델 → 효과주기를 제공합니다.