Skalbara ML-pipelines med Airflow
DAG-baserade pipelines, uppgiftsberoenden, dataimport → träning → utvärdering → distribution.
Skalbara ML-pipelines med Airflow är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lär Er AI med Python, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.
Varför orkestrering
Ett ML-arbetsflöde har många steg: hämta in data, skapa features, träna, utvärdera och driftsätta. Att köra dessa steg manuellt är bräckligt. Apache Airflow orkestrerar dem som kod och har inbyggt stöd för schemaläggning, nya försök, beroenden och övervakning.
DAG:en
Airflow modellerar en pipeline som en DAG (riktad acyklisk graf) av tasks. Acyklisk betyder att ingen task kan bero på sig själv i en loop, så körningen har alltid en tydligt definierad ordning från början till slut.
Definiera en DAG
Ni deklarerar en DAG med ett id, en schedule och ett startdatum. Schemat styr hur ofta den körs, till exempel för daglig omträning.
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:
...Operators är tasks
Varje nod i DAG:en är en task som skapas från en operator. Olika operators kör olika typer av arbete: Python-funktioner, bash-kommandon, SQL-frågor med mera.
PythonOperator för träning
PythonOperator kör en anropbar Python-funktion. Den passar perfekt för ett träningssteg som anropar er träningsfunktion.
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 för utvärdering
BashOperator kör ett shellkommando och är praktisk för att anropa ett utvärderingsskript eller ett CLI-verktyg.
from airflow.operators.bash import BashOperator
evaluate = BashOperator(
task_id="evaluate",
bash_command="python /opt/ml/evaluate.py --model latest",
)Definiera beroenden
Operatorn >> anger ordningen mellan tasks: a >> b betyder att b körs efter att a har lyckats. På så sätt kopplas DAG:en ihop så att utvärderingen börjar först när träningen är klar.
train >> evaluate
# train must succeed before evaluate runsLängre beroendekedjor
Ni kan kedja många tasks för att uttrycka ordningen för hela pipelinen. Airflow kör oberoende grenar parallellt och respekterar alla beroenden ni deklarerar.
ingest >> features >> train >> evaluate >> deploySkicka data med XCom
Tasks körs isolerat, så hur skickar en task ett resultat till nästa? XCom (kommunikation mellan tasks) låter en task lägga undan ett litet värde, till exempel en modellsökväg eller ett mätvärde, som en efterföljande task kan hämta.
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 är för små datamängder
XCom är avsett för små metadata (sökvägar, id:n och mätvärden), inte stora dataset. Stora artefakter bör lagras i objektlagring (S3), och endast deras plats bör skickas via XCom. Om XCom används för stora nyttolaster belastas metadatadatabasen onödigt mycket.
Schemaläggning och nya försök
Airflow ger robusthet för produktion utan extra arbete: schemat utlöser körningar automatiskt, misslyckade tasks gör nya försök med ökande väntetid, och användargränssnittet visar status för varje task och körning samt skickar aviseringar vid fel.
Snabbtest
Testa era kunskaper om Airflow.
Sammanfattning
Ni har lärt er skalbara ML-pipelines med Airflow:
- En DAG med en schedule definierar pipelinen
- PythonOperator kör träningen och BashOperator kör utvärderingen
- Operatorn
>>anger task-beroenden - XCom skickar små artefakter mellan tasks; stora datamängder går till objektlagring
Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 53
- Lektioner
- 225
Vanliga frågor
Är lektionen ”Skalbara ML-pipelines med Airflow” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”Skalbara ML-pipelines med Airflow”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.
Vad lär jag mig i ”Skalbara ML-pipelines med Airflow”?
DAG-baserade pipelines, uppgiftsberoenden, dataimport → träning → utvärdering → distribution. Ni övar på Lär Er AI med Python med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Lär Er AI med Python?
Du behöver inga förkunskaper. Utbildningen i Lär Er AI med Python på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Skalbara ML-pipelines med Airflow”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Lär Er AI med Python-lektionen?
Ja. Varje Lär Er AI med Python-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Arkitekturmönster för AI-system
- Skalbara ML-pipelines med Airflow
- Feature stores: Feast och Tecton
- Observerbarhet och övervakning av AI-system