Pipline AI e automazione dell'apprendimento
1) Assegnazione e principi
Obiettivo: trasformare in modo affidabile e riproduttivo i dati dei filetti del modello di soluzione con feedback, con minor tempo-to-value e controllo del rischio/costo.
Principi:- Pipeline-as-Code: tutto (DAG, configi, test, regole) - in Git, attraverso il PR e la gelosia.
- Determinism: versioni fisse di dati/codice/contenitori/dipendenze.
- Separation of Concerns: DataOps, FeatureOps, TrainOps, DeployOps, MonitorOps.
- Conserved Automation: automatizzabile, ma con «gate» di qualità, sicurezza e compagine.
- Privacy by Design: minimizzazione del PII, residenza, controllo.
2) Livelli e architettura della catena di montaggio
1. Ingest & Bronze: accezione affidabile di eventi/battelli (CDC, pneumatici, retrai, DLQ).
2. Silver (normalizzazione/arricchimento): SCD, valute/tempo, pulizia, deducibilità.
3. Gold (vetrine) - Tabelle di oggetti e dataset per la formazione/reporting.
4. Feature Store: formulazioni unificate in linea/offline, versioni e SLO.
5. Treno & Validate - Preparazione di campionamenti, addestramento, calibrazione, valutazione/assegno-gate.
6. Registry & Promozione: registro dei modelli, tessere di qualità, politica di promozione.
7. Serving: REST/gRPC/Batch, cache Fiech, bandiere Fiech, canary/shadow.
8. Monitor & Feedback: SLI/SLO, deriva/calibrazione, etichette online, auto-retrain.
3) Orchestrazione: pattern DAG
Il Daily CT (D + 1) è un ciclo notturno di dati ici, formazione, convalida di un candidato nel registro.
Event-Driven Retrain: innesco alla deriva PSI/ECE/expected-cost o al rilascio degli schemi.
Rolling Windows: rielaborazione week/monthly con «finestra di scorrimento» dei dati.
Blue/Green Artists: tutti gli artefatti sono immutabili, versioni parallele.
Dual-write v1/v2 - Migrare diagrammi/fich attraverso un record doppio e confrontare l'equivalenza.
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) Set di dati e campionamenti
Point-in-time join e «senza futuro» per le etichette.
Strazione dei mercati/tenenti/tempo, holdout e «gap» per le fughe.
Versioning: 'data _ version', 'logic _ version', 'asof _ date'; Cablaggio WORM.
5) Feature Store e equivalenza online/offline
Specifica singola (nome, formula, proprietario, SLO, test).
Online = offline: codice di trasformazione comune; Test di equivalenza (MAE/MAPE).
TTL e cache: finestre 10m/1h/1d; timeout/retrai; folback «last _ known _ 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) Apprendimento automatico (CT) e gate di qualità
Ciclo CT - Preparazione, formazione, calibrazione, valutazione, registrazione del candidato.
Gate (esempio):- Off-line: PR-AUC benchmark - ; ECE ≤ 0. 05; expected-cost del limite.
- Slice/Fairness: calo delle metriche in qualsiasi diapositiva ≤ Y%; disparate impact è normale.
- L'equivalente del Fich è oc.
- Costo: tempo/risorse del budget.
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) Registro modelli e promozioni
Scheda modello: dati, finestre, feci, metriche off/online, calibrazione, rischi, proprietario.
Stages: `Staging → Production → Archived`; Promossa solo attraverso gate testate.
Criterio di ripristino - Memorizza le ultime versioni di prode one-click rollback.
8) CI/CD/CT: come collegare
CI (codice/test): test unit/integrazione/contrattazione, lintern, security scan.
CD (cerving): Docker/K8s/Helm/flag, canary/shadow/blue-green.
CT (dati/formazione) - orchestratore pianificato/evento Gli artefatti hanno → il registro.
Promozione Gates: rilascio automatico in prua con verde SLO online (in canary ≥ X ore).
9) Polifunzionalità e residenza
Tenenti/Regioni: pipline isolate e chiavi di crittografia (EEA/UK/BR); divieto di join'o interregionale senza fondamento.
Segreti: KMS/CMK, Secret Manager; ID di tornitura nei logi.
Criteri DSAR/RTBF: proiezioni calcolate e modifiche selettive nei fili e nei loghi Legale Hold per le valigette.
10) Monitoraggio → → retrain
SLI/SLO: latency p95/p99, 5xx, coverage, cost/request; deriva PSI/KL, ECE, expected-cost.
Etichette online proxy (ore/giorno) e ritardi (D + 7/D + 30/D + 90).
Azioni auto: recalibration/threshold update shadow retrain canary .
Runbooks - Script di degrado (deriva, calibrazione, fich cache, provider).
11) Sicurezza, RG/AML e politica decisionale
Guardrails: pre/post-filter, caps frequenza, cooldown, liste di proibizioni.
Policy Shielding - Il modello la soluzione per il filtro dei criteri.
Controllo: model _ id/variante, feature _ variante, threshold, policy _ id, cause.
Archivi WORM: release, report qualità, registri test/promozioni.
12) Costi e prestazioni
Profilazione percorso: phichi (30-60%), inferance (20-40%), IO/rete.
Cost-dashboard: cost/richiest, cost/feature, orologio GPU/CPU, small-files.
Ottimizzazione: materializzazione delle fiffe pesanti offline, cache delle finestre calde, INT8/FP16, quote di repliche/backfill.
Chargeback: distribuiamo il budget per team/mercato, controlliamo i «costosi» ficchi.
13) Esempi (frammenti)
Argo Workflow: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}}"]}
Script Gate (pseudocode):
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)
Politica di promozione (idea):
yaml promotion:
require:
- offline_gates_passed
- canary_online_hours >= 24
- slo_green: [latency_p95, error_rate, coverage]
- drift_warn_rate <= 5%
14) Processi e RACI
R (Responsible):- Data Eng — Ingest/Silver/Gold, Feature Store, CDC/Backfill;
- Data Science - campionamento/apprendimento/calibrazione/gate;
- MLOps - orchestrazione/registro/cerving/osservazione.
- A (Accountable): Head of Data / CDO.
- C (Consulted): Compliance/DPO (PII/RG/AML/DSAR), Security (KMS/Auditel), SRE (SLO/costo), Finance (budget/RE), Product.
- I (Informed) - Marketing/Operazioni/Supporto.
15) Road map di implementazione
MVP (3-6 settimane):1. DAG «daily CT»: Bronze→Silver→Gold→Feature Store→Train→Eval→Registry(Staging).
2. Feature Store v1 e test di equivalenza online/offline.
3. Gate di qualità (PR-AUC/ECE/expected-cost/slice).
4. Registro dei modelli, scheda e archivio dei comunicati WORM.
Fase 2 (6-12 settimane):- Auto-recalibrazione/threshold update, canary-promozione on-line SLO.
- Event-driven retrain alla deriva; dual-write v1/v2 per le migrazioni.
- Cost-dashboard e quote di backfill/replay; isolamento multi-tenant.
- Regole fairness per diapositive e reportage automatico.
- Residenza regionale multi-regionale (EEA/UK/BR) con chiavi separate.
- Auto-retraine in pianificazione ed eventi, la documentazione automatica dei pipeline.
16) Foglio di assegno prod pronto
- Pipeline-as-Code в Git; I test CI (unit/integrazione/contratti/sicurezza).
- Bronze/Silver/Gold e Feature Store sono stabili; L'equivalenza del Fich è verde.
- Gate offline superate; La scheda del modello è piena. L'archivio WORM è stato creato.
- Canary 24 ore con SLO verde; i pulsanti rollback e kill-switch funzionano.
- Il monitoraggio della deriva/ECE/expected-cost e delle etichette online è attivato.
- PII/residenza/DSAR/RTBF/Legale Hold rispettati; controllo configurato.
- Costo in bilancio; cache/quote/limiti per fici e repliche sono attivi.
17) Anti-pattern e rischi
Passi manuali, usa e getta, fuori dall'orchestrazione; Niente Storia Git.
Formazione senza gate o tessere; promozione «manuale».
In linea/offline non concordanti, i files non corrispondono alla soluzione di vendita.
Ignorare la deriva/calibrazione/expected-cost; solo ROC-AUC per la vista.
Nessuna residenza/policy PII; logica ID crudi.
Backfill/repliche illimitate → l'esplosione del valore e l'impatto sulla SLA.
18) Totale
Le pipline AI sono una catena di montaggio di valore, non un set di notebook. Formalizzare i livelli di dati, Feature Store e CT/CI/CD, aggiungere gate di qualità e sicurezza, automatizzare retrain alla deriva, mantenere l'equivalenza online/offline e un'economia trasparente. In questo modo si ottiene un ciclo rapido, prevedibile e complicato dì dati-modello-effetto ", scalabile nei mercati e nel tempo.