koecheup commited on
Commit
4061163
·
verified ·
1 Parent(s): 1ed2881

Promote v2.5 augmented + calibrated production checkpoint

Browse files

Canonical v2.5 with verified NLTK synonym augmentation (780 essays), isotonic calibration, and essay-only inference format. Supersedes no-aug ablation commit.

README.md CHANGED
@@ -1,18 +1,67 @@
1
  ---
2
  license: mit
3
- tags: [ielts, automated-essay-scoring, deberta-v3, evalguide, ablation]
 
 
 
 
 
 
4
  ---
5
 
6
- # EvalGuide IELTS AES v2.5 — no-aug ablation (superseded)
7
 
8
- This commit preserves the first v2.5 training run where synonym augmentation was **disabled** (NLTK WordNet not loaded).
9
 
10
- **Superseded by the augmented + calibrated production checkpoint in the next commit.**
 
 
 
 
 
11
 
12
  | Field | Value |
13
  |-------|-------|
14
- | Variant | No-aug ablation |
15
- | Gold harness raw QWK | 0.8595 |
16
- | Augmentation | Disabled (unintentionally) |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
- See repo HEAD for the production model card.
 
1
  ---
2
  license: mit
3
+ library_name: keras-nlp
4
+ tags:
5
+ - ielts
6
+ - automated-essay-scoring
7
+ - deberta-v3
8
+ - ordinal-regression
9
+ - evalguide
10
  ---
11
 
12
+ # EvalGuide IELTS AES v2.5
13
 
14
+ DeBERTa-v3-base ordinal regression model for IELTS Writing Task 2 scoring across four criteria:
15
 
16
+ - Task Response
17
+ - Coherence and Cohesion
18
+ - Lexical Resource
19
+ - Grammatical Range and Accuracy
20
+
21
+ ## Production checkpoint (current)
22
 
23
  | Field | Value |
24
  |-------|-------|
25
+ | Variant | **Augmented + calibrated** |
26
+ | Weights | `ielts_v2.5_base_en_10ep.weights.h5` |
27
+ | Calibration | `ielts_v2.5_base_en_10ep_calibration.pkl` |
28
+ | Backbone | `deberta_v3_base_en` |
29
+ | Input format | Essay body only (`full_text`) — no question prefix |
30
+ | Gold harness QWK | 0.7989 calibrated / 0.8505 raw (1,952-essay holdout) |
31
+
32
+ ### Why this checkpoint is served
33
+
34
+ 1. **Calibrated serving** — Isotonic calibration plus bias correction improves mean-score alignment (SMD −0.07 vs v2.4 +0.08) and lowers RMSE, which matters more for production UX than the higher raw QWK ablation.
35
+ 2. **Augmented training** — Synonym augmentation (10% of train essays) is part of the documented v2.5 strategy and was verified active in the final run. The no-aug ablation checkpoint is preserved in repo history (first commit).
36
+
37
+ ## Files
38
+
39
+ | File | Description |
40
+ |------|-------------|
41
+ | `ielts_v2.5_base_en_10ep.weights.h5` | Model weights (~3.5 GB) |
42
+ | `ielts_v2.5_base_en_10ep_calibration.pkl` | Isotonic calibration layer |
43
+ | `ielts_v2.5_base_en_10ep_config.json` | Training metadata and metrics |
44
+ | `model_config.json` | Production serving config for EvalGuide backend |
45
+
46
+ ## Download
47
+
48
+ ```bash
49
+ hf download koecheup/evalguide-ielts-v2.5 --local-dir backend/model
50
+ ```
51
+
52
+ Place artifacts under `evalguide_client/backend/model/` alongside `model_config.json`.
53
+
54
+ ## Inference notes
55
+
56
+ - Tokenize **essay content only**. Do not prepend `Question: …` — training and offline eval use essay-only input.
57
+ - Apply the calibration artifact after forward pass when serving the production config.
58
+ - Rollback to v2.4: set `IELTS_MODEL_NAME=ielts_v2.4_base_en_10ep.weights.h5`.
59
+
60
+ ## Training summary
61
+
62
+ - Real data: 9,760 cleaned essays (`ielts_cleaned.csv`)
63
+ - Synthetic mix: 15% from 284 cleaned Task 2 essays (`koecheup/ielts-synthetic`)
64
+ - Augmentation: 10% synonym replacement (780 train essays)
65
+ - Epochs: 10, batch size 8, variance target 2.0 → 2.7
66
 
67
+ See `docs/backend/v2.5_upgrade_report.md` in the EvalGuide repo for full evaluation tables.
ielts_v2.5_base_en_10ep.weights.h5 CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:3b224be1ff02811af7c7b67d8ab750a0c43506f3060f3b4a081060bd86e85c9e
3
  size 3696208736
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e8d34ac1ff8e71b976a26251dabf8670dd1d028c4607317a1bf5ce54ff016a0d
3
  size 3696208736
ielts_v2.5_base_en_10ep_calibration.pkl CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:f28235d93b1e494db459f98f1f4f194669ef0ad4d5b4afb9c4a339a0b445cc8c
3
- size 1750
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d8ea0c41fc9f2af98880a467df126c18c4e3b34eacf7c4ba0aa4023e9db03d29
3
+ size 1718
ielts_v2.5_base_en_10ep_config.json CHANGED
@@ -23,27 +23,27 @@
23
  "bias_correction_enabled": true
24
  },
25
  "bias_correction_offsets": [
26
- -4.853433987432378e-17,
27
- 1.553098875978361e-16,
28
- 1.9413735949729513e-17,
29
- 8.736181177378281e-17
30
  ],
31
  "final_metrics": {
32
- "train_loss": 0.26780974864959717,
33
- "val_loss": 0.41971996426582336,
34
- "binary_acc": 0.12838737666606903,
35
- "mae": 2.637578248977661,
36
  "val_binary_acc": 0.0,
37
- "val_mae": 2.3622758388519287,
38
- "val_qwk": 0.5819463133811951,
39
- "val_qwk_Task_Response": 0.5876268148422241,
40
- "pred_variance_Task_Response": 6.448593750000001,
41
- "val_qwk_Coherence_and_Cohesion": 0.5729712247848511,
42
- "pred_variance_Coherence_and_Cohesion": 7.209999999999999,
43
- "val_qwk_Lexical_Resource": 0.5792825222015381,
44
- "pred_variance_Lexical_Resource": 6.469374999999999,
45
- "val_qwk_Grammatical_Range_and_Accuracy": 0.5763903260231018,
46
- "pred_variance_Grammatical_Range_and_Accuracy": 6.7435937500000005
47
  },
48
  "baseline_reference": {
49
  "v2_4_overall_qwk": 0.7501,
 
23
  "bias_correction_enabled": true
24
  },
25
  "bias_correction_offsets": [
26
+ 9.464196275493137e-17,
27
+ -1.116289817109447e-16,
28
+ 1.6501675557270087e-16,
29
+ -1.5045645361040372e-16
30
  ],
31
  "final_metrics": {
32
+ "train_loss": 0.26518937945365906,
33
+ "val_loss": 0.42846453189849854,
34
+ "binary_acc": 0.1284601092338562,
35
+ "mae": 2.6349937915802,
36
  "val_binary_acc": 0.0,
37
+ "val_mae": 2.4425299167633057,
38
+ "val_qwk": 0.5943281650543213,
39
+ "val_qwk_Task_Response": 0.6033041477203369,
40
+ "pred_variance_Task_Response": 7.185,
41
+ "val_qwk_Coherence_and_Cohesion": 0.5927532911300659,
42
+ "pred_variance_Coherence_and_Cohesion": 8.375,
43
+ "val_qwk_Lexical_Resource": 0.5842580795288086,
44
+ "pred_variance_Lexical_Resource": 7.354843749999999,
45
+ "val_qwk_Grammatical_Range_and_Accuracy": 0.5854252576828003,
46
+ "pred_variance_Grammatical_Range_and_Accuracy": 7.602500000000001
47
  },
48
  "baseline_reference": {
49
  "v2_4_overall_qwk": 0.7501,