Datasets:
Roles
Roles: reasoning view of XJTU — annot is the source label (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 907 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.
XJTU-SY — fault from the envelope spectrum, with reasoning
The XJTU reasoning track with the reasoning column filled. Same images, same queries, same gold labels, same splits: field-for-field identical to XJTU except reasoning (asserted at build time).
Records: 907 (splits {'train': 690, 'test': 217}); labels {'normal': 416, 'outer_race': 352, 'inner_race': 139}; evidence_tier {'confirmed': 907}.
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 |
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, condition, bearing_id, file_number, time_frac, life_files, channel, bearing, rpm, fs, fr_nominal, fr_used, fr_source, features, fault_freqs, computed_verdict, computed_snr, evidence_tier, 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. The corpus also holds paragraphs for the excluded cage records; they are not published here (see Caveats).
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/xjtu/convert.py (0574e0e25d) → forge_model/XJTU/convert_xjtu.py (e023f6cb11); see provenance.json.
Gold = the documented teardown failure element (Table 3 of the dataset paper): outer_race = bearings 1_1/1_2/1_3/2_2/2_4/2_5/3_1/3_5, inner_race = 2_1/3_3/3_4. normal = early files (before min(30% of life, the data-driven degradation onset)); bearings whose onset is floor-bound (degrading from day one) contribute no normals. Each record was scored under both the nominal and a spectrum-refined shaft rate (rigs deviate 0.5–2% from nominal); the better envelope-pattern match won.
Caveats
- Evidence-gated, conflict-free release. The reasoning track keeps only
confirmedrecords (the label-independent envelope-spectrum detector independently finds the documented fault). The perception tracks keepconfirmed+ non-conflictingweak; records where the detector confidently found a different pattern than the gold (e.g. bearing 2_5's healthy shaft harmonic aliasing into BPFI within 1.7%) are dropped — an image should never fight its own label. cageis EXCLUDED from this release. XJTU has two cage-failure bearings, but only 6/142 files confirm a cage (FTF-ladder) signature — and 57 fault files score as outer_race instead (a failing cage hammers the outer raceway; 8×FTF ≡ BPFO for this geometry). Retained in the raw form; the cage bearings' certified-healthy early files still serve asnormal. Published classes: normal / inner_race / outer_race.- TRUE bearing-wise split — the first run-to-failure set with enough bearings for it: test = whole held-out bearings (1_3, 2_5 outer; 3_3 inner; plus cage bearing 2_3, which after the cage exclusion contributes early-life
normalrecords only), so evaluation is on unseen bearings;normalappears in both splits from disjoint bearings. Compound-failure bearings (1_5, 3_2) appear only as early-lifenormal. - End-of-life masking — in the final ~3% of life, broadband breakdown can mask the discrete fault comb, so late windows are not uniformly
confirmed. A property of the physics, not the converter.
Source & license
Source: XJTU-SY bearing datasets — Xi'an Jiaotong University & Changxing Sumyoung Technology; 15 LDK UER204 bearings run to failure under 3 conditions (2100/2250/2400 rpm, 12/11/10 kN); horizontal-channel accelerometer snapshots (25.6 kHz, 1.28 s per minute). Cite: B. Wang, Y. Lei, N. Li, N. Li, IEEE Trans. Reliability 69(1):401–412, 2020 (DOI 10.1109/TR.2018.2882682). Gold labels: Table 3 of Lei et al., J. Mech. Eng. 55(16), 2019 (DOI 10.3901/JME.2019.16.001). Released by the authors for research use (biaowang.tech/xjtu-sy-bearing-datasets).
- Downloads last month
- 36