Datasets:
Roles
Roles: canon repo — annot is the source label, kept machine-parseable as the gold for verification and reward parsing; there is no filled reasoning column and this repo is not itself a training view. Derived repos each state their own regime on their own card.
IMS / NASA-Bearing — fault classification from the envelope spectrum (reasoning track)
Second signal dataset in the AI4Manufacturing FORGE corpus (Category C, task T-C1), from three run-to-failure experiments. Each record is the envelope spectrum of a 1 s vibration window with fault frequencies marked — the representation for faithful compute-then-check CoT. reasoning is empty; the IMS-annotated sibling fills it.
Records: 542 (splits {'train': 434, 'test': 108}); labels {'normal': 195, 'inner_race': 36, 'ball': 30, 'outer_race': 281}; evidence_tier {'confirmed': 542}.
Schema (7-field unified record)
| field | meaning |
|---|---|
query |
the classification instruction (one of 30 deterministic paraphrases per representation) |
image |
the rendered signal image (bytes embedded) |
annot |
gold fault class: normal / inner_race / outer_race / ball |
reasoning |
chain-of-thought (empty here; filled in the -annotated sibling) |
cate / task |
C / T-C1 (signal fault classification) |
metadata |
JSON string: representation, set, timestamp, time_frac, channel, bearing, bearing_group, rpm, fs, fr_hz, features, fault_freqs, computed_verdict, computed_snr, evidence_tier, line_evidence, image_sha256, split |
Figures (style pool)
The spectra in this repo come from the figure-style pool: each record is drawn in one of 11 styles. What the style varies: colours, canvas, title placement and presence, tick spacing and minor ticks, grid, spines, fill, the fault-frequency marker drawn as a line or as a band, label placement and orientation, one colour per family plus a legend, font family, scientific notation, and tick direction. The style is picked by sha256("figstyle|" + image_path) % 11 -- deterministic, reproducible, and drawn independently of the opener / knowledge / skeleton pools.
What never varies is the content: the curve; the plotted band; which lines are marked (six on these figures -- the four families plus 2xBPFO and 2xBPFI); and the y-limits, autoscaled once per record and reused by every style, so a peak is the same height whichever style drew it. No threshold bar and no noise-floor line is ever drawn, and no marker is styled differently for being the answer. The point is that a model cannot pass by memorising one house plotting style. The -perception repo's images are unchanged.
Three things made these figures and no single pin covers all three, so provenance.json carries one for each:
- Signals and manifest -- forge_agent
0574e0e25d. - The curve and the producer's plotting parameters -- forge_agent
733a683. This pin fixes what is plotted; it does not produce the image bytes below. - The published image bytes --
figure_manifest_sha256=203e42bb5cd0491fa8a61faf569d0891c3f44db62d5b3b07b2961571e791c2db, the roll-up of one sha256 per image across the whole style pool. The style layer that draws them (_figstyle_corpus/_src/style_pool.py) lives outside this repository and is not under version control, and the pool has been re-rendered since the commit above -- so this checksum, not a commit, is what identifies these exact images.
Provenance & reproducibility
Generated deterministically by forge_agent/examples/ims/convert.py (0574e0e25d) → forge_model/IMS/convert_ims.py (4b4cda0231); see provenance.json.
Gold = the documented end-state defect (readme / manufacturer teardown): Set 1 → bearing 3 inner-race + bearing 4 roller(ball); Set 2 → bearing 1 outer-race; Set 3 → bearing 3 outer-race. normal = the early files of each run; fault = the late files of the failed bearing (per-set window from the degradation onset). A computed evidence_tier (confirmed/weak/absent) flags detectability.
Caveats
- Evidence-gated, conflict-free release — every image supports (and never fights) its label. IMS faults are WEAK run-to-failure signatures (the dataset's own reference paper, Qiu/Lee/Lin JSV 2006, studies weak-signature detection), so we curate by a computed
evidence_tier: the spectrum/reasoning track keeps onlyconfirmedrecords (the label-independent envelope-spectrum detector independently finds the documented fault → faithful compute-then-check CoT); the perception tracks keepconfirmed+ non-conflictingweak— weak records where the detector confidently found a different pattern than the gold are dropped (notably ball windows scoring as cage: ball faults are cage-modulated, so the single-label gold and the detector legitimately disagree there). inner_raceis the scarce class — excluded from the first release, REINSTATED here. The original band-limited detector confirmed only ~8 inner-race spectrum windows ("too few to form a class"); the current full-band demodulation search recovers IMS's weak Set-1 signature and confirms 36 windows — more than the publishedballclass (30) — so the same evidence standard that excluded it now reinstates it. It remains the weakest class: ~78% of its raw windows areabsent-tier (dropped per-record by the gate), and Set 1 ran two degrading bearings (inner-race B3 + ball B4) on one shaft.outer_race(Sets 2-3) is the clean, strong class.- Few distinct bearings — each fault class comes from one run-to-failure bearing, so a strict bearing-wise split is impossible within a class; the split is file-stratified. Treat cross-bearing generalization claims with care.
Source & license
Source: IMS / NASA-Bearing — NSF I/UCR Center for Intelligent Maintenance Systems (imscenter.net) with Rexnord Corp.; three test-to-failure runs on Rexnord ZA-2115 bearings at 2000 rpm. Reference: H. Qiu, J. Lee, J. Lin, J. Sound and Vibration 289 (2006) 1066–1090. Distributed via the NASA Prognostics Data Repository.
Overlap / de-duplication (§8)
Cross-family evaluation lock — metadata.eval_lock (stamped 2026-09-20; manifest revision fe6e286912b0, generated 2026-09-08). Every record of this repository, locked or not, carries metadata.eval_lock, computed by forge_model/common/overlap.py::Overlap.stamp_for against common/overlap_manifest.json at that revision — so within this repository the absence of the key cannot occur. Shape: {"locked": bool, "against": [{"repo": …, "split": …}, …], "own_split": …, "manifest_revision": …, "manifest_generated": …}. locked is true when the image is evaluation material anywhere in the corpus; against names every repository and split in which it is (sorted; [] when not locked; it includes the record's own family where that is so); own_split marks a record locked by its own split. The per-record field is the authority — the count here is quoted once, at this revision, and a later manifest may change it: 108 of 542 records (108 distinct images) are locked — by column: 0 by the cross-family manifest, 108 by their own split, 0 both ways and counted once; counterparts (records per counterpart; a record can appear under several): none — every lock here is by the record's own split; 108 locked by their own split: test. In words: 108 of the 542 records in this repository are evaluation material by their own metadata.split (test: 108) and sit inside the HF split named test / train — under the uniform-split convention the HF split name is a container name, and metadata.split together with metadata.eval_lock carries the truth; a train pool must exclude them. A stamp whose manifest_revision differs from the current manifest is stale, not wrong — recompute it (Overlap.stamp_is_current); a record with no stamp has not been checked against the corpus as it now is. Overlap.partition / assert_train_pool_clean read the field: a train pool built from this repository must exclude every locked record.
- Downloads last month
- 140