architectraghu commited on
Commit
2901574
·
verified ·
1 Parent(s): bdbb2ee

Upload README.md

Browse files
Files changed (1) hide show
  1. README.md +53 -0
README.md ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ tags:
4
+ - cbc-reference-model
5
+ - mlops-100-day
6
+ - predictive-maintenance
7
+ - pytorch
8
+ - lstm
9
+ ---
10
+
11
+ # CBC Reference Model: Turbofan Remaining Useful Life (C-MAPSS FD001)
12
+
13
+ > Pre-trained reference model for the **CBC [MLOps 100-Day Track](https://github.com/careerbytecode/cbc-learning-hub/tree/main/100-days/mlops)** (Capstone 4). Published twin of ML Development Capstone 4. **This is the one deep-learning reference model** — it ships as a torch `state_dict` + `model.py`, NOT a single joblib.
14
+
15
+ ## Model details
16
+ - **Type:** single-layer LSTM (hidden 64) over a 30-cycle window of 15 normalized sensors -> scalar RUL (capped at 125).
17
+ - **Framework:** pytorch 2.12.0+cpu · **Serialization:** `manufacturing_lstm.pt` (state_dict) + `manufacturing_meta.joblib` (normalization + arch). Reconstruct with the shipped `model.py`.
18
+ - The LSTM is the rare counterpoint to the classical models: run-to-failure multivariate sensor sequences are the data shape deep learning is for. It beats an XGBoost baseline (RMSE 18.45) overall and decisively near failure.
19
+
20
+ ## Intended use
21
+ Decision-support estimate of operational cycles remaining, to prioritize inspection/maintenance. NOT an automated ground-or-fly authority. Teaching/reference artifact.
22
+
23
+ ## Training data
24
+ NASA C-MAPSS FD001 (100 train + 100 test run-to-failure engines, single operating condition). 15 non-flat sensors used. Simulated, no PII. NASA Open Data (public domain).
25
+
26
+ ## Metrics (test = last cycle of each test engine vs RUL_FD001, scored once)
27
+ | Model | Test RMSE | Near-failure RUL[0,50) |
28
+ |---|---|---|
29
+ | XGBoost baseline | 18.45 | — |
30
+ | **LSTM (deployed)** | **14.88** | **4.78** |
31
+
32
+ The LSTM wins overall and is decisively better in the operationally critical near-failure band.
33
+
34
+ ## How to load and predict
35
+ ```python
36
+ from huggingface_hub import snapshot_download
37
+ import sys, json
38
+ d = snapshot_download("careerbytecode/mlops-ref-manufacturing-rul")
39
+ sys.path.insert(0, d + "/model"); sys.path.insert(0, d)
40
+ from model import load_model, predict_rul # needs torch installed
41
+ model, meta = load_model(d + "/model")
42
+ sample = json.load(open(d + "/sample_input.json"))
43
+ print(predict_rul(model, meta, sample["window"])) # predicted RUL (cycles)
44
+ ```
45
+ **Serving requires `torch`** and the shipped `model.py` (the class definition) — a joblib load alone will not work.
46
+
47
+ ## Limitations
48
+ - Trained on FD001 (one operating condition); FD002/FD004 (six conditions) need condition-aware normalization.
49
+ - RUL capped at 125: cannot distinguish a very-healthy from a merely-healthy engine, by design.
50
+ - Needs the full 30-cycle window + the training normalization stats to serve; a single reading is not enough. Simulated data — expect drift on real telemetry. Reference/teaching artifact only.
51
+
52
+ ---
53
+ © 2015-2026 CareerByteCode. All rights reserved. | CC BY-NC-SA 4.0 (docs), MIT (code) | Authored by Raghavendra R, Platform Owner CareerByteCode, Solution Architect