✨ Add GNN for RL circuit embedding - #777
Merged
Merged
Conversation
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
flowerthrower
force-pushed
the
v3/669-gnn-rl
branch
from
August 27, 2026 10:50
d4f69d8 to
5b12da3
Compare
flowerthrower
changed the base branch from
v3/670-intermediate-rewards
to
v3/configurable-pass-timeouts
August 27, 2026 10:50
flowerthrower
force-pushed
the
v3/669-gnn-rl
branch
from
August 27, 2026 10:58
5b12da3 to
96b942e
Compare
flowerthrower
force-pushed
the
v3/669-gnn-rl
branch
from
August 27, 2026 11:08
96b942e to
f305a04
Compare
Assisted-by: GPT-5 via Codex Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com> Assisted-by: GPT 5.6 via Codex
Assisted-by: GPT-5 via Codex Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com> Assisted-by: GPT 5.6 via Codex
Assisted-by: GPT-5.6 via Codex Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com>
Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com> Assisted-by: GPT 5.6 via Codex
Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com> Assisted-by: GPT 5.6 via Codex
Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com>
Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com>
Co-authored-by: Antonio Tudisco <anto.tu98@hotmail.it> Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com> Assisted-by: GPT 5.6 via Codex
Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com> Assisted-by: GPT 5.6 via Codex
Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com> Assisted-by: GPT 5.6 via Codex
Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com> Assisted-by: GPT 5.6 via Codex
flowerthrower
force-pushed
the
v3/669-gnn-rl
branch
from
August 27, 2026 13:09
f305a04 to
abeb59c
Compare
Base automatically changed from
v3/configurable-pass-timeouts
to
v3/paper-reward-parity
August 27, 2026 13:09
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.
🤖 AI text below 🤖
Description
Adds opt-in GNN circuit embeddings to the RL predictor while leaving
PredictorEnvand the default flatMaskablePPOpath unchanged.The implementation preserves the prototype's ordered 52-dimensional node features, ordered 36-dimensional global features, GraphSAGE/attention/shared-trunk topology, effective training defaults, separate encoder/head learning rates, and tuned paper configuration.
Graph observations remain exact and variable-sized PyG
Datasidecars. A focused ragged rollout buffer batches them with PyG, and a narrowcollect_rolloutsspecialization transports the sidecars through SB3. Masking, callbacks, numeric rollout state, GAE, PPO training/clipping/KL behavior, logging, and.zipserialization remain inMaskablePPO/SB3. There is no graph padding, truncation, or node/edge capacity.Torch Geometric remains optional through the
mqt.predictor[gnn]extra and is imported only when graph mode is enabled. The prototype.ptcheckpoint is not migrated because its output layer is coupled to the prototype's 39-action schema. The current stack has 43 actions without the unavailable IBM AI passes, so the preserved architectures contain 331,949 trainable parameters with the generic configuration and 231,142 withGNNConfig.paper().This raw draft is stacked on #778. New tests, external documentation, and changelog changes are deferred for now, as requested.
Credits @antotu for the prototype implementation in #563 and the experiment branch.
Validation
.zipsave/load/predict smokeFixes #669
Checklist
If PR contains AI-assisted content:
🤖 *AI text below* 🤖(titles are exempt).