SensorflowStudio / docs /PLATFORM_INVENTORY.md
whassan's picture
Deploy Sensorflow Studio
68eeb00 verified
|
Raw History Blame Contribute Delete
7.31 kB
# Sensorflow Studio — Platform Inventory
**Canonical stack:** `hf-space/` (FastAPI + React + `sensorflow/evaluation` + `sensorflow/megaeval`).
**Root twin:** older subset (`sensorflow/` without evaluation/megaeval; `app_backend.py` without those routers; thin SSAM React in `src/`). Prefer upgrading `hf-space/` and keep shared root APIs working where duplicated.
**Phase 1 foundation module:** `hf-space/sensorflow/platform/` (extends MegaEval + LabelEval; does not replace them).
---
## 1. Frontend pages / components
| Area | Path | Status | Goal mapping |
|------|------|--------|--------------|
| Hash router / nav | `hf-space/src/App.tsx` | EXISTS | Command Center, Evaluation, Quality, Models, SSAM |
| Command Center (MegaEval) | `pages/CommandCenterPage.tsx` + `components/megaeval/*` | EXISTS | Population → cohort → container → object |
| LabelEval pages | Overview, Datasets, LabelGen, RareEvents, Quality, Regression, Triage, Review, Training, Models, Evaluation, Audit, Pipeline | EXISTS | Label QA flywheel |
| SSAM / legacy | `SSAMSafetyDashboard`, `LegacyStudioPage`, MapCanvas, DataGrid | EXISTS | Safety viz (Phase 4 hooks) |
| Platform Phase 1 hooks | `components/platform/*` | **Phase 1** | Container quality cards, model compare panel, multi-gate skeleton |
| Services | `services/{labeleval,megaeval,api,platform}.ts` | EXISTS + Phase 1 | Prefer existing clients |
| Types | `types/{labeleval,megaeval}.ts` | EXISTS | Extend via platform types |
**Gap (later):** Drive/Scene first-class UI; deep ODD/safety panels; distributed job UI.
---
## 2. Backend APIs
| Stack | Mount | Prefixes |
|-------|-------|----------|
| LabelEval | `evaluation/api.py` → `app.include_router` | `/api/datasets`, `/api/labeleval/*`, `/api/quality/*`, `/api/review/*`, `/api/models`, `/api/events/stream` |
| MegaEval | `megaeval/api.py` | `/api/megaeval/*`, `POST /api/evaluations/query` |
| Legacy studio / SSAM / perception | `app_backend.py` | `/api/ssam/*`, `/api/perception/*`, `/api/gates/quality`, `/api/gates/launch`, train/infer/MITL |
| **Platform Phase 1** | `platform/api.py` | `/api/evaluations/*`, `/api/containers/*`, `/api/models/compare`, `/api/gates/*` (multi-gate) |
| Entry | `space_app.py` | mounts `/dashboard` → Vite `dist/` |
Root `app_backend.py`: legacy routes only (no LabelEval/MegaEval/platform).
---
## 3. Schemas / data models
| Layer | Path | Entities |
|-------|------|----------|
| Perception | `schemas/unified_frame.py`, `taxonomy_axes.py` | FusedFrame, Object3D, UnifiedSequence |
| LabelEval store | `evaluation/records.py` | Dataset, Scene, Sequence, Frame, Annotation, Track, Scenario, RareEvent, AnomalyDetection, Validation, Graders, Triage, Review, Model, ProcessUsage, Audit… |
| MegaEval runtime | `megaeval/runs.py`, cube/population | EvaluationRun, container table (npz), metric cube |
| Comparative | `comparative_analytics.py` | Configuration, PerformanceMetrics |
| **Platform Phase 1** | `platform/entities.py` | Unified provenance models: Container, Drive, Group, Sensor, Object, Trajectory, Label, Evaluation, Metric, Cohort, Embedding, Conflict, ODD*, QualityGate, GateResult, EvidencePackage, ComputeUsage, ModelVersion |
---
## 4. Container / group / frame / label / model / evaluation concepts
| Concept | LabelEval | MegaEval | Platform Phase 1 |
|---------|-----------|----------|------------------|
| Dataset | Pydantic Dataset | Population (immutable npz) | Links both via EvaluationScope |
| Container | GAP | Integer + dims in containers.npz | `Container` + quality profile API |
| Group | Verification buckets | Cohort = cube slice | `Group` + `Cohort` aliases documented |
| Drive / Scene | Thin Scene | ≈ Container | Drive/Scene stubs with provenance |
| Frame / Label | Frame, Annotation | Forensic objects | Re-exports + Label alias |
| Model | Model + training jobs | `model_version` on run | ModelVersion + multi-compare |
| Evaluation | Per-annotation evidence | Async EvaluationRun | AggregateLevel ladder |
---
## 5. ML pipelines
| Module | Role | Status |
|--------|------|--------|
| `evaluation/pipeline.py` | Label QA flywheel | EXISTS |
| detectors / graders / validation / rare_events / regression / triage | Label quality | EXISTS |
| `perception_automator`, `temporal_tracker`, fusion, adapters | 3D perception | EXISTS |
| `quality_gate`, `launch_gate_evaluator` | Sequence gates | EXISTS → wrapped by multi-gate |
| MegaEval `runs.evaluate_partition` | Simulated population eval | EXISTS |
| Multi-grader consensus vectors | — | **DEFER** Phase 2 |
| Embedding / VLM rare-event mining | sketches + embeddings stub | **DEFER** Phase 3 |
| SSAM DRAC/DeltaS upgrades | SSAM APIs exist | **DEFER** Phase 4 |
| ODD combinatorial coverage | ODD entity stubs | **DEFER** Phase 5 |
| Distributed processing | ThreadPool / npz stand-ins | **DEFER** Phase 7 |
---
## 6. Async / jobs
| Pattern | Location | Notes |
|---------|----------|-------|
| MegaEval runs | `megaeval/runs.py` MegaStore | queued → workers → reduce → published |
| LabelEval pipeline | `pipeline.run(background=True)` + `queue.py` | Threaded stages + SSE |
| Training jobs | EvalStore TrainingJob | |
| Process units | `process_units.py` | Cost accounting |
| Platform expensive ops | Prefer MegaEval job pattern; sync for small profiles | Phase 1 |
---
## 7. Viz libraries
`@deck.gl/*`, `react-map-gl`, MUI, lucide-react. **No** recharts/plotly — MegaEval uses hand-rolled SVG sparklines. Phase 1 UI matches that pattern.
---
## 8. Storage / indexing
| Store | Format | Path |
|-------|--------|------|
| LabelEval | JSON | `runs/labeleval/store.json` |
| MegaEval populations/runs | npz + JSON | `runs/megaeval/` |
| Pipeline artifacts | JSON | `runs/pipeline/` |
| Platform evidence exports | JSON | `runs/platform/evidence/` |
| Future lakehouse | Parquet/Iceberg | Documented in ARCHITECTURE.md — **not** introduced in Phase 1 |
---
## 9. Auth
**GAP:** no runtime API auth. HF deploy tokens only (`deploy/huggingface`). Do **not** add a second auth system in Phase 1.
---
## 10. Tests
| Dir | Coverage |
|-----|----------|
| `hf-space/tests/test_labeleval/` | detectors, graders, validation, queue, e2e |
| `hf-space/tests/test_megaeval/` | cube, sketches, sampling, analysis, API lifecycle |
| `hf-space/tests/test_pipeline/` | quality/launch gates, perception, tracker, schema |
| `hf-space/tests/test_platform/` | **Phase 1** metrics, container quality, model compare, gates, evidence |
| Root `tests/test_pipeline/` | Mirror of pipeline only |
---
## Exists vs gap (user goals)
| Goal | Exists | Gap / Phase 1 action |
|------|--------|----------------------|
| Unified entity schema | Partial dual stacks | Platform entities + provenance |
| Eval across aggregate levels | MegaEval + LabelEval separate | `AggregateLevel` + EvaluationScope |
| Container quality API | MegaEval containers list | `/api/containers/.../quality` profile |
| Model compare A/B/C | MegaEval A vs B | `/api/models/compare` multi-run |
| Multi-gate | Quality + Launch only | Config-driven Scenario/Coverage/Regression/Safety/Release skeleton |
| Evidence package | LabelEval evaluation_record | Exportable EvidencePackage JSON |
| Population scale (billions) | npz stand-ins | Phase 7 distributed — hooks only |