Shield-Qwen3-1.7B-KD-GKD-Qwen3Guard-Gen-8B-OOB
Student: Qwen/Qwen3-1.7B
Teacher: Qwen/Qwen3Guard-Gen-8B
KD method: GKD
Scenario: OOB (out-of-box — neither teacher nor student was fine-tuned on DIA-GUARD before KD)
Part of the DIA-GUARD dialect-aware safety classifier suite. This checkpoint is the result of distilling an off-the-shelf 4B/8B safety teacher into a smaller student using 50K dialect-stratified samples from the DIA-GUARD train split, and evaluating on the full 181,874-sample dialect holdout test.
Test Set Results
| Metric | Value |
|---|---|
| Accuracy | 0.5430 |
| Precision | 0.7715 |
| Recall | 0.5001 |
| F1 | 0.3522 |
| Test samples | 181,874 |
Per-class breakdown
| Class | Precision | Recall | F1 | Support |
|---|---|---|---|---|
| safe | 1.0000 | 0.0003 | 0.0006 | 83,140 |
| unsafe | 0.5429 | 1.0000 | 0.7038 | 98,734 |
Confusion matrix
| Predicted safe | Predicted unsafe | |
|---|---|---|
| Actual safe | TN=24 | FP=83,116 |
| Actual unsafe | FN=0 | TP=98,734 |
Training Setup
| Method | GKD |
| Teacher | Qwen/Qwen3Guard-Gen-8B |
| Student base | Qwen/Qwen3-1.7B |
| Train data | 50,000 dialect-stratified DIA-GUARD samples |
| Epochs | 1 |
| Framework | HuggingFace transformers + accelerate |
How to use
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("jsl5710/Shield-Qwen3-1.7B-KD-GKD-Qwen3Guard-Gen-8B-OOB")
model = AutoModelForCausalLM.from_pretrained("jsl5710/Shield-Qwen3-1.7B-KD-GKD-Qwen3Guard-Gen-8B-OOB", torch_dtype="bfloat16")
prompt = "Classify the following text as safe or unsafe.\n\nText: Hello\n\nAnswer:"
inputs = tokenizer(prompt, return_tensors="pt")
out = model.generate(**inputs, max_new_tokens=8)
print(tokenizer.decode(out[0], skip_special_tokens=True))
- Downloads last month
- 4
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support