Datasets:
Roles
Roles: reasoning view of CWRU — annot is the source label (ball / inner_race / normal / outer_race), kept machine-parseable as the gold for verification and reward parsing; the model reads query + image, where the image is an envelope spectrum with the theoretical fault frequencies marked. The reasoning column is filled on all 690 records and is the SFT imitation target for this repo; the query enumerates the closed set of labels the answer must come from, and annot remains the string that is scored. metadata is provenance (split keys, source identities) and must never be fed to a model.
CWRU — bearing fault from the envelope spectrum, with reasoning
The CWRU reasoning track with the reasoning column filled. Same images, same queries, same gold labels, same splits: field-for-field identical to CWRU except reasoning (asserted at build time).
Records: 690 (splits {'train': 564, 'test': 126}); labels {'inner_race': 179, 'ball': 39, 'outer_race': 437, 'normal': 35}; evidence_tier {'confirmed': 690}.
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 |
the half-template chain-of-thought for this record; it closes on FINAL ANSWER: <annot> |
cate / task |
C / T-C1 (signal fault classification) |
metadata |
JSON string: representation, features, fault_freqs, computed_verdict, computed_snr, evidence_tier, sr_nondiagnosable, anomaly, size_in, load_hp, or_position, bearing, bearing_group, channel, rpm, fs, fr_hz, file_number, window_idx, line_evidence, image_sha256, split |
How reasoning was produced
Half-template, not a language model. Each paragraph is assembled by a deterministic renderer from three pools drawn independently per record — 14 openers × 7 physics-knowledge blocks × 26 argument skeletons — so the surface form varies widely while the argument stays checkable. No API, no sampling, no model output.
Every number is measured, never copied from the answer. All amplitudes, frequencies and peak counts come out of the record's line_evidence — the per-line measurement taken on the plotted envelope spectrum. The generator ran behind three gates, all of which had to be clean or nothing was written: (1) the paragraph ends on the gold, byte for byte; (2) every label-bearing field is deleted and the paragraph re-rendered — the bytes must be identical, which proves no number came out of the answer; (3) writing checks — nothing finer than 0.01 (the y axis cannot resolve it), no detector internals (family scores and thresholds are not on the figure and a reader cannot recompute them), no internal line keys, and numerals that agree with the families actually scored.
Re-checkable. The measurement the paragraph quotes ships with the record: metadata.line_evidence holds the per-line frequencies, amplitudes and SNRs and the noise floor, so every number in the text can be verified against the figure it was read off.
Closing. Every paragraph ends with a blank line and FINAL ANSWER: <annot>, matching the record's gold label exactly — re-verified for every record at build time.
Splits
train / test, bearing-wise (leakage-safe): all loads + both sample rates of a physical bearing stay on one side. normal is a single healthy bearing, so it is entirely in train and the test split is fault-only (inner/outer/ball from unseen bearings).
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/cwru/convert.py (0574e0e25d) → forge_model/CWRU/convert_cwru.py (e023f6cb11); see provenance.json for the full record.
Cleaning (all encoded in the pinned code): excluded the NTN 0.028″ files 3001–3008 (wrong bearing geometry) and the corrupt 191; flagged Smith & Randall (2015) non-diagnosable (sr_nondiagnosable) and acquisition-anomaly files; bearing-wise leakage-safe split (all loads + both sample rates of a physical bearing stay on one side). Evidence-gated, conflict-free release: a computed evidence_tier (from the label-independent envelope-spectrum detector, cross-checked against the Smith & Randall expert grades) curates the published set so every image supports — and never fights — its label. The spectrum/reasoning repo keeps confirmed only (faithful compute-then-check CoT); the perception repo keeps confirmed + non-conflicting weak (weak records where the detector confidently found a different pattern than the gold are dropped).
Caveats
- Ball is the hard class — Smith & Randall (2015) grade most CWRU ball faults non-diagnosable (intermittent load-zone contact + smeared BSF), so many ball windows are
weak/absent. The evidence gate keeps only the diagnosable ones, so the reasoning/spectrum track has the fewest ball records (confirmed-only) while perception also admitsweakball. A property of the data, not the converter. - Class balance — after gating,
normalis the minority (CWRU ships few baseline files) andouter_racethe majority; per-class counts are in the header above. - Eval: use the provided bearing-wise split; the within-condition (per-load) split inflates accuracy.
Source & license
Source: Case Western Reserve University Bearing Data Center (engineering.case.edu/bearingdatacenter), openly available for research. Diagnosability grades and anomaly flags from W. A. Smith & R. B. Randall, MSSP 64–65 (2015) 100–131; leakage-safe split per J. Hendriks et al., MSSP 169 (2022) 108732.
- Downloads last month
- 39