Pipeline ML scalabili con Airflow
Pipeline basate su DAG, dipendenze tra task, acquisizione dati → addestramento → valutazione → deployment
Pipeline ML scalabili con Airflow è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.
Perché usare l'orchestrazione
Un workflow di ML comprende molti passaggi: acquisire i dati, creare le feature, eseguire il training, valutare e distribuire. Eseguirli manualmente è fragile. Apache Airflow li orchestra tramite codice, offrendo pianificazione, nuovi tentativi, dipendenze e monitoraggio integrati.
Il DAG
Airflow rappresenta una pipeline come un DAG (grafo diretto aciclico) di task. Aciclico significa che nessun task può dipendere da sé stesso formando un ciclo, quindi l'esecuzione ha sempre un ordine ben definito dall'inizio alla fine.
Definizione di un DAG
Si dichiara un DAG con un id, una pianificazione e una data di inizio. La pianificazione controlla la frequenza di esecuzione, ad esempio per eseguire quotidianamente un nuovo training.
from airflow import DAG
import datetime
with DAG(
dag_id="ml_pipeline",
schedule="@daily",
start_date=datetime.datetime(2024, 1, 1),
catchup=False,
) as dag:
...Gli operatori sono task
Ogni nodo del DAG è un task creato a partire da un operatore. Operatori diversi eseguono tipi di lavoro diversi: funzioni Python, comandi bash, query SQL e altro.
PythonOperator per il training
PythonOperator esegue un callable Python. È ideale per un passaggio di training che richiama la funzione di addestramento.
from airflow.operators.python import PythonOperator
def train_model():
# load features, fit model, save artifact
...
train = PythonOperator(
task_id="train",
python_callable=train_model,
)BashOperator per la valutazione
BashOperator esegue un comando shell ed è utile per richiamare uno script di valutazione o uno strumento CLI.
from airflow.operators.bash import BashOperator
evaluate = BashOperator(
task_id="evaluate",
bash_command="python /opt/ml/evaluate.py --model latest",
)Definizione delle dipendenze
L'operatore >> imposta l'ordine dei task: a >> b significa che b viene eseguito dopo che a ha avuto successo. In questo modo si configura il DAG affinché la valutazione inizi solo al termine del training.
train >> evaluate
# train must succeed before evaluate runsCatene di dipendenze più lunghe
È possibile concatenare molti task per esprimere l'ordine completo della pipeline. Airflow esegue in parallelo i rami indipendenti e rispetta ogni dipendenza dichiarata.
ingest >> features >> train >> evaluate >> deployPassaggio di dati con XCom
I task vengono eseguiti in isolamento, quindi come si passa un risultato al task successivo? XCom (comunicazione tra task) consente a un task di inserire un valore di piccole dimensioni, come il percorso di un modello o una metrica, che un task dipendente può recuperare.
def train_model(ti):
path = "/models/run_42.pt"
ti.xcom_push(key="model_path", value=path)
def deploy(ti):
path = ti.xcom_pull(key="model_path", task_ids="train")
# deploy the artifact at pathXCom è per dati di piccole dimensioni
XCom è pensato per i metadati di piccole dimensioni (percorsi, ID, metriche), non per dataset grandi. Gli artefatti di grandi dimensioni devono risiedere nello storage a oggetti (S3), passando tramite XCom solo la relativa posizione. Usare XCom in modo eccessivo per payload grandi mette sotto pressione il database dei metadati.
Pianificazione e nuovi tentativi
Airflow offre gratuitamente robustezza per la produzione: la pianificazione avvia automaticamente le esecuzioni, i task non riusciti vengono sottoposti a nuovi tentativi con backoff e l'interfaccia mostra lo stato di ogni task ed esecuzione, inviando avvisi in caso di errore.
Verifica rapida
Verifichi la Sua conoscenza di Airflow.
Riepilogo
Ha imparato a creare pipeline di ML scalabili con Airflow:
- un DAG con una pianificazione definisce la pipeline
- PythonOperator esegue il training; BashOperator esegue la valutazione
- l'operatore
>>imposta le dipendenze tra i task - XCom passa artefatti di piccole dimensioni tra i task; i dati grandi vanno nello storage a oggetti
Domande Frequenti
La lezione «Pipeline ML scalabili con Airflow» è gratuita?
Sì — il testo completo di «Pipeline ML scalabili con Airflow» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.
Cosa imparerò in «Pipeline ML scalabili con Airflow»?
Pipeline basate su DAG, dipendenze tra task, acquisizione dati → addestramento → valutazione → deployment Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Learn AI with Python?
Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Pipeline ML scalabili con Airflow»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?
Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Pattern architetturali per sistemi di AI
- Pipeline ML scalabili con Airflow
- Feature store: Feast e Tecton
- Osservabilità e monitoraggio dei sistemi di AI