Add full COMMAG publication benchmark on Python 3.13 - #66
Merged
Conversation
vtavakkoli
marked this pull request as ready for review
August 17, 2026 09:41
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Extends the compact COMMAG study into a publication-oriented multi-scenario benchmark with explicit seen/unseen evaluation, offline-RL baselines, policy-shortcut diagnostics, episode-paired statistical testing, and a clean Python 3.13 Docker workflow.
Full multi-scenario COMMAG preparation
slice_traffic/.../*_metrics.csvfile in configured cellstr0–tr17), both experiments, and BS1–BS4rome_static_closeandrome_static_mediumas seen conditionstr0–tr11for training,tr12–tr14for validation, andtr15–tr17for seen-condition testingrome_static_farrome_slow_closeReproducible baselines
The executable benchmark compares:
All of these are evaluated under the same held-out direct-method critics.
Original COMMAG PPO: paper reference only
The historical TensorFlow PPO runtime has been removed. There is no
Dockerfile.ppo-legacyservice and no model-export step.Instead, the benchmark writes
results/publication/literature_reference.jsonwith the published results from:L. Bonati, S. D'Oro, M. Polese, S. Basagni, T. Melodia, "Intelligence and Learning in O-RAN for Data-driven NextG Cellular Networks," IEEE Communications Magazine, 59(10), 21-27, 2021, DOI 10.1109/MCOM.101.2001120, arXiv:2012.01263.
The paper reports:
These are explicitly marked literature-reference values and are not inserted into direct-method utility tables or paired statistical tests because the metrics, experimental conditions and action semantics differ.
Unseen-condition / OOD evaluation
Exports seen/unseen and per-scenario:
This separates RF-distance shift (
rome_static_far) from mobility shift (rome_slow_close).Policy-shortcut test
Retrains the strongest behavior classifier with:
It also reports F1/agreement only on timestamps where the logged policy actually changes.
Paired statistics
Primary comparisons are paired by held-out episode and export:
Seed refits are not described as independent network experiments.
Python 3.13 workflow
The main Dockerfile now uses
python:3.13-slimfor builder/runtime and CI includes Python 3.13.Run the complete publication workflow with:
Dependency chain:
Main outputs under
results/publication/:publication_baselines.csvpublication_decisions.csv.gzood_generalization.jsonpolicy_shortcut_test.csvpaired_statistics.jsonliterature_reference.jsonpublication_summary.jsonScientific guardrails
Validation still required before paper use
The full large COMMAG publication pipeline must be executed on the target Docker host and the generated
results/publication/evidence reviewed before publication claims are finalized. CI validates Python/static/unit/package/Docker compatibility but does not replace the full publication experiment.