<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged mlflow</title>
<link>https://coderlegion.com/tag/mlflow</link>
<description>Powered by Question2Answer</description>
<item>
<title>MLOps for Engineers: How to Take an AI Model from Jupyter to Production Without Dying in the Attempt</title>
<link>https://coderlegion.com/25566/mlops-for-engineers-how-take-an-ai-model-from-jupyter-production-without-dying-the-attempt</link>
<description>&lt;p&gt;There is a statistic from Gartner that every data team knows and most prefer to ignore: &lt;strong&gt;87% of Machine Learning and AI projects never make it to production&lt;/strong&gt;. They remain trapped in &quot;prototype limbo&quot;: a Jupyter notebook on a data scientist's laptop boasting an impressive 96% accuracy over a static CSV file from 2023, but which no one knows how to deploy, version, update, or monitor within an enterprise's live infrastructure.&lt;/p&gt;
&lt;p&gt;The reason for this widespread failure is neither mathematical nor algorithmic. It's not a matter of needing more hyperparameters to tune or deeper neural network layers to stack. &lt;strong&gt;It is a software engineering and operations failure&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;As demonstrated in Google's landmark paper &lt;em&gt;&quot;Hidden Technical Debt in Machine Learning Systems&quot;&lt;/em&gt; (Sculley et al.), the actual ML model code accounts for a mere &lt;strong&gt;5% to 10%&lt;/strong&gt; of the entire production system. The remaining 90% is infrastructure: data extraction and verification, dependency management, automated retraining, artifact versioning, observability against the dreaded &lt;em&gt;Data Drift&lt;/em&gt;, and continuous governance.&lt;/p&gt;
&lt;p&gt;This integrative discipline is called &lt;strong&gt;MLOps&lt;/strong&gt; (&lt;em&gt;Machine Learning Operations&lt;/em&gt;). And after building, deploying, and operating real production pipelines on this blog — from demand forecasting with Prophet in the &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/sop-engineering-part2-forecasting/&quot;&gt;S&amp;amp;OP series&lt;/a&gt; to autonomous agents in the &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/ai_agents_part1/&quot;&gt;Autopilot series&lt;/a&gt; and the &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/obs_part5_radar_agent/&quot;&gt;Obsolescence Radar&lt;/a&gt; —, this article is the practical guide that distills the journey from a sandbox script to an industrial production system.&lt;/p&gt;
&lt;h4 id=&quot;anatomy-of-the-problem-why-traditional-software-engineering-falls-short-with-ml&quot;&gt;Anatomy of the Problem: Why Traditional Software Engineering Falls Short with ML&lt;/h4&gt;
&lt;p&gt;In traditional software development (DevOps), system behavior depends entirely on &lt;strong&gt;source code&lt;/strong&gt;. If you write a deterministic function, test it with unit tests, and deploy it via CI/CD, the system behaves predictably as long as the underlying infrastructure remains healthy.&lt;/p&gt;
&lt;p&gt;In Machine Learning and generative AI systems, behavior depends upon an interdependent trinity: &lt;strong&gt;Code + Data + Model&lt;/strong&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Code may remain unchanged&lt;/strong&gt;, yet if the statistical distribution of real-world data shifts (which happens constantly across supply chains, financial markets, and customer behaviors), &lt;strong&gt;model performance degrades silently&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reproducibility is non-trivial&lt;/strong&gt;: retraining the exact same Python script with today's data produces a completely different binary artifact than last week's run.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Failures don't throw an HTTP 500 error&lt;/strong&gt;: a production model doesn't crash like a web server; it simply begins serving garbage predictions with 99% statistical confidence.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To keep your system from becoming an uncontrollable black box, your architecture must stand upon four fundamental pillars.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://datalaria.com/en/posts/mlops_for_engineers/mlops_pillars.jpg&quot; alt=&quot;The 4 fundamental pillars of the continuous MLOps lifecycle&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;pillar-1-comprehensive-versioning-code-data-and-models-&quot;&gt;Pillar 1: Comprehensive Versioning (Code, Data, and Models)&lt;/h4&gt;
&lt;p&gt;If you cannot recreate the exact environment, data snapshot, and parameters that produced a prediction six months ago, your system is neither reproducible nor auditable. In regulated enterprise environments, this is not merely good engineering hygiene; it is a strict legal requirement under the &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/eu_ai_act/&quot;&gt;EU AI Act&lt;/a&gt; (Article 12 on automated logging and traceability).&lt;/p&gt;
&lt;p&gt;Versioning in MLOps spans three distinct layers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Code Versioning&lt;/strong&gt;: Standard Git. Centralized repository with protected branches, pull request reviews, and version tags.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Versioning (DVC / Delta Lake)&lt;/strong&gt;: Git was never designed to store gigabyte- or terabyte-scale binary files. Tools like &lt;strong&gt;DVC&lt;/strong&gt; (&lt;em&gt;Data Version Control&lt;/em&gt;) create lightweight metadata pointer files versioned in Git, while actual datasets reside in object storage (Amazon S3, Google Cloud Storage, or Supabase Storage). This allows a simple &lt;code&gt;git checkout v1.2.0&lt;/code&gt; to restore both the training code and the exact data snapshot that fed it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model Registry (MLflow / Weights &amp;amp; Biases)&lt;/strong&gt;: A centralized catalog acting as the &quot;Docker Hub&quot; for trained models. Each registered model tracks serialized weights (ONNX, Pickle, Safetensors), hyperparameters, validation metrics, author, associated Git commit hash, and lifecycle stage (&lt;code&gt;Staging&lt;/code&gt;, &lt;code&gt;Production&lt;/code&gt;, &lt;code&gt;Archived&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;pillar-2-experiment-tracking-and-pipeline-automation&quot;&gt;Pillar 2: Experiment Tracking and Pipeline Automation&lt;/h4&gt;
&lt;p&gt;A data scientist's or ML engineer's workflow is inherently iterative. Testing dozens of feature permutations, model algorithms, Pandas transformations, and regularization parameters without systematic logging leads straight to chaos: scattered notebook files, models named &lt;code&gt;final_model_v2_really_final.pkl&lt;/code&gt;, and complete loss of institutional knowledge.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MLflow&lt;/strong&gt; and &lt;strong&gt;Weights &amp;amp; Biases (W&amp;amp;B)&lt;/strong&gt; solve this by systematically intercepting every training run:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;import mlflow
import mlflow.prophet
from prophet import Prophet

# Start experiment tracking
mlflow.set_experiment(&quot;sop_demand_forecasting&quot;)

with mlflow.start_run(run_name=&quot;prophet_multiplicative_v3&quot;):
    # Log configuration parameters
    params = {
        &quot;seasonality_mode&quot;: &quot;multiplicative&quot;,
        &quot;changepoint_prior_scale&quot;: 0.05,
        &quot;n_changepoints&quot;: 20
    }
    mlflow.log_params(params)
    
    # Train the model
    model = Prophet(**params)
    model.fit(train_df)
    
    # Evaluate and log performance metrics
    metrics = evaluate_forecast(model, test_df)
    mlflow.log_metrics({
        &quot;mape&quot;: metrics[&quot;mape&quot;],
        &quot;rmse&quot;: metrics[&quot;rmse&quot;],
        &quot;coverage_p95&quot;: metrics[&quot;coverage&quot;]
    })
    
    # Automatically register the artifact
    mlflow.prophet.log_model(model, artifact_path=&quot;prophet_model&quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;By structuring experiments with automated tracking, comparing 50 model iterations transforms from a guessing game into an instant analytical query on a unified dashboard.&lt;/p&gt;
&lt;h4 id=&quot;pillar-3-ci-cd-and-automated-deployment-ct-continuous-training-&quot;&gt;Pillar 3: CI/CD and Automated Deployment (CT: Continuous Training)&lt;/h4&gt;
&lt;p&gt;In MLOps, CI/CD expands to incorporate a vital third dimension: &lt;strong&gt;Continuous Training (CT)&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CI (Continuous Integration)&lt;/strong&gt;: Goes beyond validating Python syntax and running unit tests (&lt;code&gt;pytest&lt;/code&gt;, &lt;code&gt;flake8&lt;/code&gt;). It executes specialized data validation tests: verifying that incoming schemas match expectations, null values remain within acceptable tolerances, and feature ranges stay valid (using libraries like &lt;strong&gt;Great Expectations&lt;/strong&gt; or Pydantic).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CD (Continuous Delivery / Deployment)&lt;/strong&gt;: Packages the validated model into an optimized Docker container or a &lt;strong&gt;FastAPI&lt;/strong&gt; microservice (as showcased in &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/obs_part6_fastapi/&quot;&gt;Observability Part 6&lt;/a&gt;) and automatically deploys it upon passing regression test suites.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CT (Continuous Training)&lt;/strong&gt;: When production monitoring detects performance degradation or new data batches arrive, an automated pipeline (orchestrated via &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/ai_agents_part5/&quot;&gt;GitHub Actions&lt;/a&gt;, Prefect, or Airflow) retrains the model, verifies that new metrics surpass the baseline champion model, and automatically promotes the candidate to the Model Registry.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;pillar-4-production-observability-the-war-against-drift-&quot;&gt;Pillar 4: Production Observability (The War Against Drift)&lt;/h4&gt;
&lt;p&gt;Once your model is deployed and serving batch or real-time inferences, the real challenge begins. Models degrade over time due to two distinct mathematical phenomena:&lt;/p&gt;
&lt;h5 id=&quot;1-data-drift-covariate-shift-&quot;&gt;1. Data Drift (Covariate Shift)&lt;/h5&gt;
&lt;p&gt;The statistical distribution of input variables ($P(X)$) changes relative to the training distribution, even if the underlying relationship between inputs and outputs holds steady.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Real-world example&lt;/em&gt;: A demand forecasting model trained prior to a global supply chain disruption experiences a sudden surge in supplier lead times. The model receives valid numbers, but operates in a vector space region where it was never trained.&lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id=&quot;2-concept-drift&quot;&gt;2. Concept Drift&lt;/h5&gt;
&lt;p&gt;The mathematical relationship between input features and target variables ($P(Y|X)$) shifts over time.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Real-world example&lt;/em&gt;: In customer purchasing predictions, a product historically bought primarily during winter becomes an all-season hit due to a social media trend. The inputs remain identical, but consumer behavior has fundamentally evolved.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;# Data Drift detection example using Evidently AI
from evidently.report import Report
from evidently.metric_preset import DataDriftPreset

data_drift_report = Report(metrics=[DataDriftPreset()])
data_drift_report.run(reference_data=reference_df, current_data=production_df)

# If drift exceeds threshold, trigger automatic alerting &amp;amp; retraining
if data_drift_report.as_dict()[&quot;metrics&quot;][0][&quot;result&quot;][&quot;dataset_drift&quot;]:
    trigger_mlops_alert(&quot;DATA_DRIFT_DETECTED: Triggering automated retraining pipeline&quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tools like &lt;strong&gt;Evidently AI&lt;/strong&gt; or Prometheus + Grafana allow data engineering teams to track statistical drift tests (such as Kolmogorov-Smirnov for numerical features or Chi-Square tests for categorical data) and alert engineers long before degraded accuracy causes financial losses.&lt;/p&gt;
&lt;h4 id=&quot;real-production-case-moving-prophet-from-notebook-to-s-amp-op-pipeline&quot;&gt;Real Production Case: Moving Prophet from Notebook to S&amp;amp;OP Pipeline&lt;/h4&gt;
&lt;p&gt;To see how MLOps applies in real industrial contexts, consider the evolution of our demand planning pipeline in the &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/sop-engineering-part2-forecasting/&quot;&gt;S&amp;amp;OP series&lt;/a&gt;:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Stage &lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Initial Sandbox (Jupyter) &lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Production Architecture (MLOps)&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;Data Ingestion&lt;/strong&gt; &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Manual loading of static &lt;code&gt;sales_2023.csv&lt;/code&gt; &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Automated Supabase PostgreSQL sync with schema assertion&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;Data Hygiene&lt;/strong&gt; &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Manual &lt;code&gt;df.dropna()&lt;/code&gt; without validation &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Automated Z-Score outlier detection as detailed in &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/sop_engineering-data-hygiene/&quot;&gt;Data Hygiene&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;Training&lt;/strong&gt; &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Manual top-to-bottom cell execution &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Decoupled pipeline running weekly via GitHub Actions&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;Bayesian Inference&lt;/strong&gt; &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Single point forecast &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Probabilistic confidence intervals directly driving Safety Stock calculations&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;Consumption&lt;/strong&gt; &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Static &lt;code&gt;plt.show()&lt;/code&gt; inline charts &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;FastAPI microservice feeding the PuLP linear optimization engine (&lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/sop-engineering-part3-optimization/&quot;&gt;Part 3&lt;/a&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;Monitoring&lt;/strong&gt; &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;None &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Continuous weekly MAPE tracking triggering automated retraining&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;This engineering transition transformed an isolated data analysis script into an &lt;strong&gt;automated, resilient, enterprise-grade system&lt;/strong&gt;.&lt;/p&gt;
&lt;h4 id=&quot;from-mlops-to-llmops-the-agentic-frontier&quot;&gt;From MLOps to LLMOps: The Agentic Frontier&lt;/h4&gt;
&lt;p&gt;In 2026, the rise of LLMs and autonomous agent architectures hasn't eliminated the need for MLOps; it has evolved it into &lt;strong&gt;LLMOps&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;When designing multi-agent workflows like those in the &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/ai_agents_part1/&quot;&gt;Autopilot series&lt;/a&gt; or navigating &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/finetuning_vs_rag/&quot;&gt;Fine-Tuning vs Prompt Engineering vs RAG&lt;/a&gt;, operational challenges take on fresh complexities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Automated Prompt CI/CD Regression Testing&lt;/strong&gt;: Adjusting an agent's system prompt can fix one edge case while subtly breaking three others. LLMOps pipelines run automated regression test suites against curated evaluation datasets using frameworks like &lt;strong&gt;RAGAS&lt;/strong&gt; or DeepEval.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Token Cost and Latency Observability&lt;/strong&gt;: As discussed in &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/hidden_economics_ai/&quot;&gt;The Hidden Economics of AI&lt;/a&gt;, token consumption and inference latency are mission-critical operational metrics that must be monitored just as closely as server CPU or memory utilization.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proactive Security Governance&lt;/strong&gt;: Given vulnerabilities like &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/prompt_injection/&quot;&gt;Prompt Injection&lt;/a&gt;, LLMOps observability must continuously audit tool execution payloads (Tool Calling / MCP) and flag anomalous behaviors before they trigger unauthorized downstream actions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;the-eu-ai-act-connection-compliance-as-code&quot;&gt;The EU AI Act Connection: Compliance as Code&lt;/h4&gt;
&lt;p&gt;The &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/eu_ai_act/&quot;&gt;EU AI Act&lt;/a&gt; has elevated MLOps from a best-practice engineering recommendation to a &lt;strong&gt;mandatory legal requirement&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Article 9 (Risk Management System)&lt;/strong&gt;: Mandates continuous risk identification and mitigation across the entire AI lifecycle (fulfilled via automated CI/CD and continuous testing).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Article 12 (Record-Keeping &amp;amp; Logging)&lt;/strong&gt;: Requires automated event logging throughout production operations (fulfilled via Model Registries and observability tracking).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Article 15 (Accuracy, Robustness &amp;amp; Cybersecurity)&lt;/strong&gt;: Demands that high-risk systems maintain consistent accuracy benchmarks and resist adversarial manipulation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Implementing rigorous MLOps practices allows companies to satisfy these regulatory mandates natively through infrastructure-as-code, eliminating the friction and overhead of retrospective audits.&lt;/p&gt;
&lt;h4 id=&quot;conclusion-mlops-is-the-maturity-of-artificial-intelligence&quot;&gt;Conclusion: MLOps is the Maturity of Artificial Intelligence&lt;/h4&gt;
&lt;p&gt;Anyone can clone a repository, open a Jupyter notebook, and fit a model in three lines of Python. But real engineering is not about making an algorithm work once in a sanitized sandbox; it is about &lt;strong&gt;ensuring it runs reliably, accurately, and securely ten thousand times a day in production&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The continuous MLOps loop — design, train, validate, deploy, monitor, and retrain — is the purest technological expression of the PDCA (&lt;em&gt;Plan-Do-Check-Adjust&lt;/em&gt;) cycle that &lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/deming/&quot;&gt;W. Edwards Deming&lt;/a&gt; pioneered for industrial quality excellence.&lt;/p&gt;
&lt;p&gt;If you aspire to build AI systems that generate enduring enterprise value, leave behind the comfort of the solitary notebook and embrace the discipline of MLOps. Your future self — and your on-call engineering team — will thank you forever.&lt;/p&gt;
&lt;hr&gt;
&lt;h5 id=&quot;sources-of-interest-&quot;&gt;Sources of Interest:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://research.google/pubs/pub43146/&quot;&gt;&lt;strong&gt;Google Research&lt;/strong&gt;: Hidden Technical Debt in Machine Learning Systems (Sculley et al.)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://mlflow.org/&quot;&gt;&lt;strong&gt;MLflow&lt;/strong&gt;: Open Source Platform for the Machine Learning Lifecycle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://dvc.org/&quot;&gt;&lt;strong&gt;DVC (Data Version Control)&lt;/strong&gt;: Data &amp;amp; Model Versioning for ML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.evidentlyai.com/&quot;&gt;&lt;strong&gt;Evidently AI&lt;/strong&gt;: Open-Source ML Model Monitoring and Drift Detection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/sop-engineering-part2-forecasting/&quot;&gt;&lt;strong&gt;Datalaria&lt;/strong&gt;: S&amp;amp;OP Part 2 — Demand Planning with Prophet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/sop-engineering-part3-optimization/&quot;&gt;&lt;strong&gt;Datalaria&lt;/strong&gt;: S&amp;amp;OP Part 3 — Linear Optimization with PuLP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/sop_engineering-data-hygiene/&quot;&gt;&lt;strong&gt;Datalaria&lt;/strong&gt;: S&amp;amp;OP Data Hygiene for Industrial Pipelines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/finetuning_vs_rag/&quot;&gt;&lt;strong&gt;Datalaria&lt;/strong&gt;: Fine-Tuning vs Prompt Engineering vs RAG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/prompt_injection/&quot;&gt;&lt;strong&gt;Datalaria&lt;/strong&gt;: Prompt Injection — AI Security and Agent Vulnerabilities&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/eu_ai_act/&quot;&gt;&lt;strong&gt;Datalaria&lt;/strong&gt;: EU AI Act — Engineering Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://datalaria.com/en/posts/deming/&quot;&gt;&lt;strong&gt;Datalaria&lt;/strong&gt;: W. Edwards Deming — Total Quality and the PDCA Cycle&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/25566/mlops-for-engineers-how-take-an-ai-model-from-jupyter-production-without-dying-the-attempt</guid>
<pubDate>Thu, 27 Aug 2026 19:08:27 +0000</pubDate>
</item>
</channel>
</rss>