Contents
Figure 1: The pipeline stays; the artifact becomes code you write, not weights you trained
What carries over from MLOps, what breaks, and the shortest path to doing it right
You already have a CI pipeline, a model registry and a drift dashboard. Then someone says "let's add an LLM feature," and half of that setup stops fitting. Why?
Because in MLOps you mostly ship a trained model. With an LLM app you mostly ship a prompt, some retrieval, and a call to a model somebody else trained. Different artifact, different failure modes, different ops. Here's what actually changes, and what doesn't.
What MLOps Already Gave You
Start with the baseline, because LLMOps builds on MLOps rather than replacing it. Google Cloud's MLOps guide describes three levels:
- Level 0: manual, notebook-driven, infrequent releases, no CI/CD, little active monitoring.
- Level 1: an automated training pipeline for continuous training, with automated data and model validation, triggers and metadata management.
- Level 2: a robust automated CI/CD system, so the pipeline itself can be updated quickly and reliably.
The guide calls continuous training "a new property, unique to ML systems," concerned with automatically retraining and serving models. Retraining can be triggered on demand, on a schedule, when new data arrives, when performance degrades, or when drift is detected.
Keep that list in mind. Most of it still matters for LLM apps. Some of it quietly stops applying.
Change 1: The Thing You Ship Is Different
Microsoft's Learn module frames it neatly. In the traditional ML workflow you collect and prepare a dataset, choose an algorithm and labels, then use the trained model to predict. In the LLM workflow you combine data with expected prompts, choose and configure a pretrained model, then use it to respond to new prompts.
So dataset prep and model training get replaced by prompt design and configuration — and deployment "happens earlier in the lifecycle," because you're configuring how to call a pretrained model rather than training one.
Practical consequences:
- Your prompt is code. Version it, review it and test it like code.
- Your retrieval setup is code too. Chunking, indexes and context assembly all change the output.
- Model version is a dependency. If the provider updates a model, your behavior can shift without a single commit from you.
Databricks makes the same point: engineering prompt templates is "critical for getting accurate, reliable responses from LLMs."
Change 2: Evaluation Gets Harder
Classic ML gives you a metric: accuracy, AUC, RMSE. Pick one, compare against the production model, ship if it wins. LLM outputs are free text. There's no single number to threshold on — as the agent evaluation guide details, quality becomes a battery of test cases and graders.
What teams do instead:
- Write evals as test cases. OpenAI's evals guide describes three steps: describe the task as an eval, run it with test inputs, then analyze results and iterate on the prompt.
- Use graders. The simplest is an exact string match against a human-labeled answer. Fancier ones need their own validation.
- Collect real feedback. Thumbs up and down, edits and escalations are labels you didn't pay for.
IMO this is the biggest culture shift. Nobody ships a model without a held-out test set. Plenty of teams ship prompts after trying five examples by hand. Don't be those teams.
Change 3: Data Work Moves
Microsoft's module says MLOps centers on structured and semi-structured data (preprocessing, feature engineering, pipeline automation), while LLMOps needs to handle "large amounts of unstructured text data."
Your feature store doesn't vanish, but it stops being the center of gravity. Instead you care about:
- Document ingestion and cleaning.
- Chunking and indexing for retrieval.
- Keeping that index fresh.
- Deciding what the model is allowed to see.
Google's data validation has a useful analogue here: schema skews should stop a pipeline, while value skews can trigger retraining. For LLM apps, the equivalent question is "did my documents change shape?" — new formats, missing fields, a source that went quiet. FYI: that parallel is drawn here, not on the pages themselves.
Change 4: Training Gives Way to Fine-Tuning, and Often to Nothing
The Microsoft page says MLOps involves iterative training and hyperparameter tuning, while LLMOps places "a greater emphasis on fine-tuning pretrained models." Many teams don't even fine-tune. They prompt, add retrieval, and call it a day.
That changes what "retraining triggers" mean. You might not retrain anything. Your "retrain" is a prompt update, a new retrieval index or a model swap, and each deserves a regression run against your evals before it ships.
Change 5: Cost and Latency Become Product Features
Databricks notes that inference cost can make model compression and distillation important. Microsoft adds that LLMs are "orders of magnitude larger" than classic models and need more compute and specialized infrastructure.
If you call a hosted API, that compute is someone else's problem, but the bill is yours. So you start tracking:
- Tokens per request, input and output.
- Cost per user action, not just per call.
- Latency by step, since a chain of calls adds up.
A classic model usually has a fixed, predictable cost per prediction. An LLM app can get more expensive because someone pasted a novel into the prompt box.
Change 6: Safety and Governance Widen
Both disciplines need governance. Microsoft says LLMOps adds content safety and moderation, protection against jailbreaks and adversarial attacks, transparency and explainability, and continuous monitoring with feedback loops.
A tabular churn model can't be talked into leaking its system prompt. An LLM app can try. Guardrails, input and output filters, and red-team tests move from "nice extra" to "release checklist" — the mechanics live in the agent guardrails guide.
Maturity Models: What's Actually Published
Microsoft's LLMOps maturity model describes four levels across application and operational maturity:
| Level | Name | What it adds |
|---|---|---|
| 1 | Initial | Pre-built LLMs, simple prompts, manual experiments |
| 2 | Defined | Structured prompt design, evaluation with prompt flow, RAG |
| 3 | Managed | Prompt and code versioning, automated deployment pipelines |
| 4 | Optimized | A/B testing, automated drift and quality alerts, rollback |
Notice the echo of Google's MLOps levels: manual first, then automation, then CI/CD and monitoring. The names differ; the climb is the same — the same one-stage-at-a-time discipline the LLMOps production guide maps out in detail.
What Doesn't Change
Don't throw out your MLOps habits. These still apply:
- Versioning everything. Google's metadata management covers versions, parameters, artifact locations and metrics for lineage and rollback. Do the same for prompts — and trace them, per the observability guide.
- Staged rollouts. Canary and A/B releases work for prompts too.
- Monitoring. You still need to know when quality drops, not just when requests fail.
- Automation. Manual releases don't get better because the artifact is a prompt.
A Practical Starting Checklist
- Put prompts in version control, separate from application code if possible.
- Build a small eval set (even 30 to 50 real examples) before you change anything.
- Run the evals on every prompt, retrieval or model change.
- Log inputs, outputs, token counts and latency.
- Collect user feedback and feed it back into the eval set.
- Add safety tests: prompt injection attempts, off-topic requests, sensitive content.
- Set a cost budget per request and alert when you cross it.
Start with items 1 through 3. They give the most protection for the least effort:
# every prompt, retrieval, or model change runs the suite
llm-eval run --dataset core-v3.jsonl --baseline main.jsonl
# non-zero exit on regression: fail the deploy, not the quarter
I learned items 1–3 the usual way. A support-bot prompt got a tweak to "always mention the refund policy" — it fixed the one case that had been escalated all week, and quietly broke three others: the return-window question now opened with refund boilerplate, a warranty question got the same treatment, and one conversation refused to escalate at all because the new instruction crowded it out. The tweak looked like a win in the five examples I tried by hand, and the eval set of forty would have caught two of the three regressions before Friday's deploy. The prompt came back Monday with a version number and a test.
Watch the Tooling Churn
One caution from the research behind this guide. OpenAI's evals guide says its Evals platform is scheduled to shut down on November 30, 2026, and suggests Datasets as an alternative for new users. Hosted LLM tooling moves fast. Keep your eval data in your own format so you can move between tools. Your test cases are the asset. The platform is just a runner.
Common Pitfalls
- Shipping prompts after five hand-picked examples — the held-out-test-set habit exists for a reason.
- Treating the hosted model as a stable dependency — providers update, deprecate, and reprice underneath you.
- An eval set nobody maintains — production failures are free test cases; collect them.
- Tracking cost per call but not per successful task — retries and multi-step chains hide the real price.
- Safety as a post-launch patch — jailbreak and injection tests belong in the release checklist.
- Eval data locked in a platform — when the tool dies or reprices, your test cases should walk out the door with you.
- Copying retraining-trigger logic wholesale — your "retrain" is now a prompt or index change, and it needs the same regression gate.
- Monitoring uptime only — a serving LLM app can be up and confidently wrong.
Best Book to Read
| Cover | Book | Description | Get it |
|---|---|---|---|
![]() |
AI Engineering | the bridge book for exactly this transition: building on foundation models while keeping evaluation, monitoring, and iteration disciplined. | View on Amazon |
![]() |
Machine Learning Engineering | the MLOps half of the comparison, stated as principles that survive the move to LLM apps. | View on Amazon |
![]() |
Hands-On Large Language Models | the LLM half: prompting, retrieval, and evaluation with working code. | View on Amazon |
![]() |
Building LLM Powered Applications | orchestrating prompts, vector stores, and guardrails into something you can actually operate. | View on Amazon |
As an Amazon Associate I earn from qualifying purchases. Links on this page are affiliate links, and I may earn a commission at no extra cost to you.
Unlock AI That Actually Works
Get lifetime access to GPT-6 Astra, Claude Fable 5.1, Gemini 3.5, Grok 4.5, and more — all in one platform. Build websites, apps, videos, content, and digital products from a single command. No monthly fees. No tool-hopping.
Click here to get GPTAstra Max now — one-time payment, lifetime access.
Frequently Asked Questions
What is the main difference between MLOps and LLMOps?
In MLOps you mostly ship a trained model — a versioned artifact with weights, a metric, and a retraining trigger. With an LLM app you mostly ship a prompt, some retrieval configuration, and a call to a model somebody else trained. That changes the artifact (prompts and retrieval setup are code you must version and review), the evaluation (free text has no single metric, so you build test suites and graders), the data work (unstructured text, ingestion, chunking, and index freshness replace feature stores as the center of gravity), the cost model (bills scale with tokens and can spike on one pasted novel), and the safety surface (a churn model can't be talked into leaking its system prompt; an LLM app can try).
What MLOps practices still apply to LLM applications?
Almost all of the discipline transfers — only the target changes. Version everything, including prompts: Google's metadata management covers versions, parameters, artifact locations, and metrics for lineage and rollback, and prompts deserve the same treatment. Staged rollouts transfer directly: canary and A/B releases work for prompts exactly as they do for models. Monitoring still matters — you need to know when quality drops, not just when latency rises. And automation holds: manual releases don't get better because the artifact is a prompt. LLMOps keeps the MLOps habits and re-points them at a different artifact.
How do you evaluate LLM apps without a single metric?
Classic ML gives you accuracy, AUC, or RMSE — pick one, compare against the production model, ship if it wins. LLM outputs are free text, so teams do three things instead: write evals as test cases (describe the task as an eval, run it with test inputs, analyze results, iterate on the prompt), use graders (the simplest is an exact string match against a human-labeled answer; fancier judges need their own validation against human labels), and collect real user feedback (thumbs, edits, and escalations are labels you didn't pay for). The biggest shift is cultural: nobody ships a model without a held-out test set, yet plenty of teams ship prompts after trying five examples by hand.
What should teams do first when shipping LLM features?
Start with the first three items of the checklist: put prompts in version control (separate from application code if possible), build a small eval set of 30–50 real examples before you change anything, and run those evals on every prompt, retrieval, or model change. Those three give the most protection for the least effort — every change gets a before and an after. Then layer in the rest as you go: log inputs, outputs, token counts, and latency; collect user feedback into the eval set; add safety tests (injection attempts, off-topic requests, sensitive content); and set a per-request cost budget with an alert.
Wrapping This Up
MLOps taught us to version, validate, automate and monitor. LLMOps keeps all four and changes what they apply to. The artifact becomes a prompt plus retrieval plus a model you don't own. Evaluation turns from a metric into a test suite. Cost and safety become first-class concerns. And "retraining" often turns into "updating a prompt and re-running evals."
Pick one place to start this week: put your prompts in version control and write a small eval set. Then every change gets a before and after. Your future self will thank you.



