How E-DICE models are trained, validated, deployed, and monitored in production.
| Capability | Status | Implementation | Gap |
|---|---|---|---|
| Model Registry | ✅ Live | model_registry.py — versioned NPEAD states in DynamoDB + S3 | No UI, no approval gate |
| Automated Training | ✅ Live | Nightly: GCN (800 epochs), FusionWeightLearner (500 epochs), Meta-Learning Policy | No experiment comparison |
| Immediate Learning | ✅ Live | immediate_learn.py — policy updates after every GPU batch job | No validation before deploy |
| Outcome Tracking | ✅ Live | Outcome Memory (Phase 4) — every prediction vs actual result logged | No drift detection |
| Audit Trail | ✅ Live | audit_logger.py — all autonomous actions traced with decision reason | Not queryable (raw DDB) |
| CI/CD Containers | ✅ Live | GitHub Actions → ECR → Lambda/Batch auto-deploy on push | No staging environment |
| Rollback | ⚠️ Partial | Model registry supports version rollback; locked=true prevents regression | Manual trigger only |
| Performance Monitoring | ⚠️ Partial | NPEAD accuracy tracked (89.7%), FusionWeightLearner (86.8%) | No alerts, no dashboard |
| Data Validation | ⚠️ Partial | CortexQ validation (6 rules), FRSI rank guards, chemistry BLOCKED_SMARTS | No schema enforcement |
| Feature Store | ❌ Missing | Features computed inline at training time | No reuse, no versioning |
| Experiment Tracking | ❌ Missing | Stdout logs only | No MLflow/W&B/comparison |
| A/B Testing | ❌ Missing | Single model path, no shadow deployment | Can't compare model versions |
| Model Approval Gate | ❌ Missing | Nightly auto-deploys if accuracy improves | No human sign-off |
| Data Drift Detection | ❌ Missing | — | Training distribution not monitored |
| Reproducibility | ❌ Missing | No seed pinning, no DVC, no pipeline DAGs | Can't reproduce past training |
┌─────────────────────────────────────────────────────────────────────┐
│ NIGHTLY ORCHESTRATOR │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────────┐ ┌───────────────┐ │
│ │ Outcome │──→│ Meta-Learning│──→│ NPEAD-DLE v6.1│ │
│ │ Memory │ │ Policy │ │ (action select)│ │
│ └──────────┘ └──────────────┘ └───────────────┘ │
│ ↑ │ │
│ │ ┌──────────────┐ ↓ │
│ │ │ FusionWeight │ ┌───────────┐ │
│ └─────────│ Learner │ │ CortexQ │ │
│ └──────────────┘ │ Validation│ │
│ └───────────┘ │
│ ┌──────────┐ ┌──────────────┐ │
│ │ CIFOG GCN│ │ QGCN │ ← Quantum escalation │
│ │ (276node)│──→│ (SV1 refine) │ │
│ └──────────┘ └──────────────┘ │
│ │
│ ┌──────────────────────────────┐ │
│ │ Immediate Learn (per-batch) │ ← Real-time weight updates │
│ └──────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
│ │ │
↓ ↓ ↓
cortex-heroes edice-platform-state cortex-brain-bus
(193 targets) (model weights) (learning signals)
| Model | Type | Accuracy | Training | Samples | Last Updated |
|---|---|---|---|---|---|
| NPEAD-DLE v6.1 | Evidence-directed action selector | 89.7% | Continuous (immediate learn) | 837 outcomes | Nightly |
| CIFOG GCN | Graph Convolutional Network | — | 800 epochs nightly | 276 nodes, 3517 edges | Nightly |
| FusionWeightLearner | Logistic regression (L2) | 86.8% | 500 epochs nightly | 106 heroes | Nightly |
| Meta-Learning Policy | Per-class weight optimizer | — | Nightly (outcome aggregation) | 51 outcomes | Nightly |
| CortexQ Gen v4 | 6-layer Transformer (GPT) | 100% validity | Offline (40 epochs, 10K mols) | 3.2M params | Static |
| Cortex Master v7 | 3-layer FFN (53→128→64→32) | — | Offline | 53-dim input | Static |
| QGCN | GCN + QAOA quantum layer | — | Nightly (post-GCN) | 272 low-confidence nodes | Nightly |
Can't improve what you can't measure.
Human oversight before models go live.
model:candidate:{name} → waits for approval → only then promotes to model:active:{name}.model_registry.py rollback mechanism — just needs trigger.Any past training run can be exactly reproduced.
edicer-dev-* Lambdas + 7 tables (CDK stack) — cortex pipeline deploys direct to prod, bypassing dev entirely| Component | Dev | Prod |
|---|---|---|
| DynamoDB (8 tables) | cortex-dev-* | cortex-* |
| API Lambda | cortex-dev-api | cortex-api |
| Nightly Lambda | cortex-dev-nightly | cortex-intelligence-nightly |
| Schedule | 4am UTC | 3am UTC |
| Batch Job Def | cortex-dev-docking-gpu | cortex-docking-gpu |
| Web (S3) | cortex-dev-web-865950114883 | edicer-api-docs-865950114883 |
| API Gateway | /dev/ stage | /prod/ stage |
| ECR Tags | :dev | :latest |
# Setup (one-time): AWS_PROFILE=edice-r python3 scripts/create_dev_env.py # CI flow: push → build → auto-deploy to dev → you validate → you say "deploy" → promote to prod # Code reads: STAGE=dev → cortex-dev-heroes, cortex-dev-molecules, cortex-dev-repurposing STAGE=prod → cortex-heroes, cortex-molecules, cortex-repurposing