Instructions to use robg/speako-cefr-deberta with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers.js
How to use robg/speako-cefr-deberta with Transformers.js:
// npm i @huggingface/transformers import { pipeline } from '@huggingface/transformers'; // Allocate pipeline const pipe = await pipeline('text-classification', 'robg/speako-cefr-deberta');
Add model card
Browse files
README.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
language: en
|
| 3 |
+
library_name: transformers.js
|
| 4 |
+
pipeline_tag: text-classification
|
| 5 |
+
base_model: microsoft/deberta-v3-small
|
| 6 |
+
tags:
|
| 7 |
+
- cefr
|
| 8 |
+
- text-classification
|
| 9 |
+
- onnx
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
# Speako CEFR Classifier
|
| 13 |
+
|
| 14 |
+
Fine-tuned [microsoft/deberta-v3-small](https://huggingface.co/microsoft/deberta-v3-small) that classifies English text into CEFR proficiency levels (A1–C2). Built for [Speako](https://speako.tre.systems/), a browser-based speaking-practice app that runs this model client-side via [Transformers.js](https://huggingface.co/docs/transformers.js).
|
| 15 |
+
|
| 16 |
+
## Files
|
| 17 |
+
|
| 18 |
+
- `onnx/model_quantized.onnx` (~172 MB) — INT8 dynamic-quantized, what the app loads (`dtype: 'q8'`)
|
| 19 |
+
- `onnx/model.onnx` (~568 MB) — FP32 export
|
| 20 |
+
|
| 21 |
+
Use the `v2` tag: the `main` revision's early history had an empty root `config.json`, and clients that cached it never revalidate.
|
| 22 |
+
|
| 23 |
+
```js
|
| 24 |
+
import { pipeline } from '@huggingface/transformers';
|
| 25 |
+
|
| 26 |
+
const classify = await pipeline('text-classification', 'robg/speako-cefr-deberta', {
|
| 27 |
+
device: 'wasm', // the q8 model mis-executes on the WebGPU backend
|
| 28 |
+
dtype: 'q8',
|
| 29 |
+
revision: 'v2',
|
| 30 |
+
});
|
| 31 |
+
const [top] = await classify('I think studying abroad teaches independence.', { top_k: 1 });
|
| 32 |
+
// { label: 'B2', score: ... }
|
| 33 |
+
```
|
| 34 |
+
|
| 35 |
+
**Run the quantized model on CPU/WASM.** On the onnxruntime-web WebGPU backend it produces degenerate predictions (C1 for nearly everything).
|
| 36 |
+
|
| 37 |
+
## Training data
|
| 38 |
+
|
| 39 |
+
Written English text from three datasets, chunked to 5–50 words and augmented with synthetic ASR noise and disfluencies:
|
| 40 |
+
|
| 41 |
+
- [edesaras/CEFR-Sentence-Level-Annotations](https://huggingface.co/datasets/edesaras/CEFR-Sentence-Level-Annotations) (MIT)
|
| 42 |
+
- [Alex123321/english_cefr_dataset](https://huggingface.co/datasets/Alex123321/english_cefr_dataset) (Apache-2.0)
|
| 43 |
+
- [amontgomerie/cefr-levelled-english-texts](https://huggingface.co/datasets/amontgomerie/cefr-levelled-english-texts) (see dataset card)
|
| 44 |
+
|
| 45 |
+
## Measured accuracy
|
| 46 |
+
|
| 47 |
+
- Speak & Improve 2025 `eval-asr` reference transcripts (1,500-sample subsample, coarse `C` labels mapped to C1): **40.5% exact**, **89.7% within one level**. That eval set is 51% B2; a constant-B2 predictor scores 51%/95%, so treat exact-level predictions as rough estimates.
|
| 48 |
+
- Full Speako pipeline (Whisper transcription → this model on WASM), 40 S&I dev files: **70% exact**, **95% within one level**.
|
| 49 |
+
|
| 50 |
+
## Limitations
|
| 51 |
+
|
| 52 |
+
Trained on written text but typically applied to transcripts of spontaneous speech — a domain gap synthetic augmentation only partly closes. Not suitable for high-stakes assessment.
|