FDEInterviews logo
MLOps & ML Engineering / 01
easyAmazonMicrosoftCapital One

How is CI/CD for ML models different from traditional DevOps CI/CD?

The standard AWS ML Engineer opener. Most candidates recite 'data and model versioning' and stall, the answer interviewers score highest explains why ML tests can't be pass/fail and what continuous training adds as a third loop.

Updated Aug 2026 · Grounded in real Forward Deployed Engineer interview loops and written to a senior-engineer editorial bar.

TL;DR: Traditional CI/CD ships one changing thing (code); ML ships three (code, data, model), so tests become statistical gates instead of pass/fail, deployments bundle the model with its feature pipeline, and a third loop (continuous training) means production can degrade with zero deploys, which makes monitoring the trigger mechanism rather than an afterthought.

How to approach it

This is a screen, usually in the first fifteen minutes, and it's calibrated: the interviewer has heard "you also version the data" two hundred times. Open with the structural difference, in software CI/CD only code changes; in ML, code, data, and the model all change independently, then spend your time on the consequences, because that's where weak candidates run out of material.

A strong answer

Three things change instead of one. A traditional pipeline triggers on a commit, runs deterministic tests, and ships a binary. An ML pipeline has three change vectors: code (training and serving logic), data (the upstream distribution shifts whether or not anyone commits anything), and the model artifact itself. Each needs its own versioning, Git for code, something like Delta Lake snapshots or DVC for data, a model registry for artifacts, and a prediction is only debuggable if you can join all three: "this score came from model version 14, trained on the March snapshot, at commit abc123."

Tests become statistical, not binary. assert add(2,2) == 4 either passes or fails. A model gate is "AUC on the holdout within 0.5 points of the champion, calibration error under 2%, p99 latency under 80ms in the serving container." You're asserting distributions, which means flaky-looking failures are sometimes real signal, and your pipeline needs evaluation gates with thresholds someone consciously chose, plus data validation (schema, null rates, range checks) before training even starts, garbage data that would crash a normal build instead trains a quietly bad model.

There's a third loop: continuous training. CI and CD cover code-triggered changes. ML adds CT, pipelines that retrain on a schedule or on a drift trigger with no human commit at all. That inverts the usual assumption: production can degrade with zero deploys, so monitoring isn't an afterthought, it's the trigger mechanism for the whole pipeline.

"Production degrades with zero deploys" is the claim that sounds like a slogan until you watch the timeline it describes, so walk one:

WeekWhat happenedWhat the dashboards said
0Fraud model v14 deployed, all gates greenGreen
3A data vendor silently changes a field encoding; one key feature starts arriving as nulls, imputed to the meanGreen: 200s, 20ms p99, no errors anywhere
3-5The model scores every transaction with that feature neutralized; precision decaysStill green; labels have not arrived yet
5Chargeback labels land with their usual lag; precision on weeks 3-4 traffic is down hardThe monitoring pipeline pages, not the serving one
5Drift detector on the feature (null-rate breach) would have caught it at week 3This row is the lesson

Nobody committed code. Nothing threw an exception. Every conventional health signal stayed green for two weeks of quietly wrong decisions, and the earliest possible alarm was a data monitor, not an HTTP one. That timeline is why the monitoring-to-CT arrow in the diagram below exists, and reciting a version of it is the fastest way to show an interviewer you understand the inversion rather than just repeating it.

Deployment units are bigger. You don't ship the model alone; you ship model + feature pipeline + preprocessing as one versioned bundle, because a rollback that reverts the model but keeps a changed feature definition produces something that was never tested. And "healthy" is redefined: a model can return 200s at 20ms while being statistically wrong, so rollback triggers come from prediction quality, not HTTP errors.

If you've used the AWS stack, ground it: CodePipeline still does code CI, but SageMaker Pipelines owns the training DAG, the Model Registry owns promotion with approval gates, and Model Monitor closes the loop.

The three loops, and how monitoring feeds back into training:

rendering diagram…

The arrow from monitoring back into training is the part traditional DevOps has no analog for: no human committed anything, yet the pipeline fired.

What interviewers probe next

  • "What breaks if you treat a model like a stateless binary?", silent degradation with no deploy event, irreversible rollbacks when features drift apart from the artifact, and on-call staring at green dashboards while precision craters.
  • "Do you retrain inside the CI pipeline?", no; training is hours and GPUs, CI is minutes. CI validates code with a smoke-train on sample data; full training runs in the CT pipeline.
  • "What's continuous training and what triggers it?", scheduled, drift-triggered (PSI breach on key features), or metric-triggered once delayed labels land; gated by champion/challenger evaluation before promotion.

Common mistakes

Listing "data versioning, model versioning" as nouns with no consequences attached, that's the chatbot answer. Claiming you run full training on every commit (instantly flags you as never having done it). Saying ML tests are "just like unit tests but for models" without mentioning thresholds or statistical gates. And forgetting monitoring entirely, when the honest headline is that in ML, monitoring is upstream of deployment, not downstream.

That one was free — and so are 10 answers per topic without an account. Signing in doubles that to 20, opens the Plus lessons in the courses, and remembers which topics you keep getting wrong.no card · Google sign-in · nothing to cancel
HOW DID IT GO?
0
READING SIGNED OUT

Signing in doubles your free answers, from 10 to 20 per topic, and the site starts remembering you: mastery per topic, bookmarks, and a next-focus recommendation. Free, no card.

Sign in free
UP NEXT ON YOUR JOURNEY
FEDITOR'S NOTE

The follow-up that catches the unprepared is 'do you retrain inside the CI pipeline?', and answering yes instantly flags you as never having run one; CI is minutes and validates code with a smoke-train, while full training lives in the CT pipeline on GPUs. The line that separates operators from reciters: in ML, monitoring is upstream of deployment, not downstream, because production degrades with zero deploys. Have a concrete answer for what 'healthy' means too, since a model can return 200s at 20ms while being statistically wrong.

DISCUSSION · 0

No comments yet — be the first to share your approach.