Skip to content
xquesnotPublic

About

Variability-aware low-code DSL that compiles MLOps pipelines to multi-provider IaC/PaC (Terraform, Kubernetes, Argo), with cost, carbon and sovereignty-aware placement and drift-driven adaptation. GetCaaS contribution to the ANR AdaptiveMLOps project (ANR-24-IAS2-0004).

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

amlops: Adaptive MLOps DSL (ANR AdaptiveMLOps, industrial partner prototype)

ANR    EuroMov Digital Health in Motion    LIRMM    GetCaaS

English | Français

amlops compiles a short, variability-aware description of an MLOps pipeline into Infrastructure- and Platform-as-Code (Terraform, Argo Workflows / Argo Events, Kubernetes, CI), places its steps across several cloud providers under cost / carbon / latency / sovereignty objectives, and adapts it at run time (drift detection, executable coordination contracts, re-placement).

It is the GetCaaS contribution to the ANR project AdaptiveMLOps (ANR-24-IAS2-0004) and builds on the consortium's results: the six variability categories and requirements R1–R8 of Toward Adaptive MLOps: Variability Mapping and Modeling (GdR GPL 2025, hal-05127859) and the 38 activities and coordination contracts of SkeltyMLOps (MLOps@ECAI 2025, hal-05337700; FGCS 185 (2026) 108700).

Status: research prototype, v0.1. The provider catalogue (src/amlops/knowledge/providers.yaml) contains illustrative prices, power draws and grid intensities, and the dynamic experiments use synthetic traces. Generated Terraform/Kubernetes artefacts are parsed and unit-tested but have not been deployed. The feature model and rules are a proposal awaiting consortium review.

The AdaptiveMLOps project

Title MLOps Adaptatif (AdaptiveMLOps)
Funding French National Research Agency (ANR), grant ANR-24-IAS2-0004
Call AAP 2024 Thématiques Spécifiques en Intelligence Artificielle (TSIA): Machine Learning Operations, Software Engineering for AI
ANR contribution €489,646
Start / duration September 2024 / 48 months
Coordinator Sylvain Vauttier (EuroMov Digital Health in Motion)

Objective. MLOps extends DevOps principles to data science and machine learning so that AI models are trained, deployed and operated as ordinary software components. A key issue is the continuous training of models to adapt them to changes observed in production data (data and concept drift). AdaptiveMLOps studies how domain-engineering concepts (feature models, software product lines) can capture the commonalities of MLOps processes and document best practices, and uses this knowledge to guide the design of new pipelines through a model-driven approach: a Domain Specific Language that is (i) generic and extensible, (ii) abstract enough for non-expert users, (iii) open to fine-tuning by experts, and (iv) pivotal to generate Platform-as-Code / Infrastructure-as-Code. The project targets automatic and dynamic (re)deployment of pipeline components hosted by several providers, optimising efficiency, cost and environmental footprint. Proposals are prototyped and validated through proofs of concept on the industrial partner's cloud platform.

Consortium.

Partner Role Website
EuroMov Digital Health in Motion (EuroMov DHM), Université de Montpellier & IMT Mines Alès Coordinator https://dhm.euromov.eu/
LIRMM, Laboratoire d'Informatique, de Robotique et de Microélectronique de Montpellier (Université de Montpellier, CNRS) Academic partner https://www.lirmm.fr/
GetCaaS Industrial partner (this repository) https://www.getcaas.io/

IMT Mines Alès    Université de Montpellier    CNRS

Official links.

Consortium publications this work builds on.

Overview

flowchart LR
    M["DSL model<br/>(5 lines for a non-expert)"] --> C["Feature model<br/>completion and advice"]
    C --> D["Derivation<br/>(process line)"]
    D --> P["Multi-objective placement<br/>cost · carbon · latency ·<br/>sovereignty"]
    P --> G["Generation<br/>Terraform · Argo · CI"]
    G --> R[["Multi-provider<br/>deployment"]]
    R -. "drift, prices, outages" .-> A["MAPE-K adaptation<br/>contracts · re-placement"]
    A -.-> P
Loading

Detailed scientific and software architecture, with diagrams of the feature model, the process line, the placement problem, the adaptation loop and the coordination contracts: docs/ARCHITECTURE.md.

Roadmap

Planned work for the second half of the project (M25 to M48), by axis and priority: ROADMAP.md.

Quick start

pip install -e ".[dev,experiments]"
amlops knowledge                                         # what the knowledge base contains
amlops validate examples/churn_novice.amlops.yaml        # best-practice findings
amlops place    examples/churn_novice.amlops.yaml --pareto
amlops generate examples/churn_novice.amlops.yaml -o out/churn
amlops simulate examples/predictive_maintenance_expert.amlops.yaml
amlops analyse                                           # #configurations, core/dead/false-optional features
amlops export-uvl -o model.uvl                           # feature model in UVL (FeatureIDE, flamapy)
amlops schema -o amlops.schema.json                      # JSON Schema of the DSL (editor completion)
pytest -q                                                # 70 tests
python experiments/run_all.py                            # regenerates all paper numbers (E1 to E7)
python experiments/sovereignty.py                        # E8: price of sovereignty on public data (data/public-2026-09-29)
python experiments/case_study.py                        # E9: industrial case, anonymised aggregates (data/case-edu-llm-2026)

A non-expert model is five lines:

amlops: "0.1"
pipeline: churn-prediction
profile: tabular-classification-continuous
data: {source: "s3://datalake/crm/churn.parquet", volume_gb: 40}
objectives: {cost: 0.6, carbon: 0.4}

Experts refine features, steps, triggers, placement and parameters (see examples/predictive_maintenance_expert.amlops.yaml and docs/DSL.md).

Mapping to the project call

Project requirement Where
Feature models / product lines to capture commonalities knowledge/mlops_feature_model.yaml, variability/
Documented best practices guiding design knowledge/best_practices.yaml, variability/advisor.py
(i) generic, extensible DSL step-kind & generator registries, amlops.step_kinds entry points
(ii) abstract, ready-to-use by non-experts profiles, examples/churn_novice.amlops.yaml
(iii) parameterisation by experts features, steps, overrides
(iv) pivotal model → PaC/IaC dsl/derivation.py, generators/ (+ trace.json)
Continuous training on drift adaptation/drift.py, contracts, Argo sensors
Dynamic multi-provider (re)deployment, cost / footprint placement/optimizer.py, placement/dynamic.py

Repository layout

src/amlops/
  knowledge/     feature model, rules, profiles, 38 SkeltyMLOps activities, provider catalogue
  variability/   feature-model semantics, completion, advisor, exact #SAT analysis, UVL export
  dsl/           metamodel, YAML parser, registry, derivation (process-line base model)
  placement/     exact multi-objective placement, Pareto front, dynamic policies simulator
  generators/    Terraform, Kubernetes/Argo, GitHub Actions, traceability
  adaptation/    PSI/KS drift detection, executable coordination contracts, MAPE-K loop
examples/        four illustrative case studies (+ generated output of one)
experiments/     run_all.py (E1 to E7), export_results_tex.py and results/*.json
schema/          JSON Schema of the DSL and UVL export of the feature model
paper/           LaTeX sources (main.tex, EN; main_fr.tex, FR); generated/; figures/
scripts/         git hooks (run `sh scripts/install-hooks.sh` after cloning)

Citation / licence

Apache-2.0 © 2026 GetCaaS SARL. See CITATION.cff. The accompanying paper (paper/main.tex) is a draft for consortium review: do not circulate before the publication review foreseen by the consortium agreement.

Acknowledgements

This work is supported by the French National Research Agency (ANR) under grant ANR-24-IAS2-0004 (AdaptiveMLOps).

About

Variability-aware low-code DSL that compiles MLOps pipelines to multi-provider IaC/PaC (Terraform, Kubernetes, Argo), with cost, carbon and sovereignty-aware placement and drift-driven adaptation. GetCaaS contribution to the ANR AdaptiveMLOps project (ANR-24-IAS2-0004).

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages