|
Download README.md from sunit12/tiny-aya-fire-codemix-refusal-guard: direct link, hf CLI and curl.
- Browser
- Download file 2.5 kB
-
https://huggingface.co/sunit12/tiny-aya-fire-codemix-refusal-guard/resolve/main/README.md
- Command line
-
hf download hf://sunit12/tiny-aya-fire-codemix-refusal-guard/README.md
-
curl -L -o README.md https://huggingface.co/sunit12/tiny-aya-fire-codemix-refusal-guard/resolve/main/README.md
2.5 kB
| license: cc-by-nc-4.0 | |
| base_model: CohereLabs/tiny-aya-fire | |
| tags: [safety, steering, refusal, multilingual, code-mixing, hindi, punjabi, romanized, tiny-aya] | |
| language: [en, hi, pa] | |
| # Tiny Aya Fire — CodeMix Refusal Guard | |
| The [Tiny Aya Global guard](https://huggingface.co/sunit12/tiny-aya-global-codemix-refusal-guard) re-fit for | |
| **`CohereLabs/tiny-aya-fire`** with the identical recipe — a transfer test of the method from | |
| *Lost in Transliteration*. No weights change: a logistic probe on the last prompt token at **layer 13** | |
| (threshold 0.6, chosen on a validation split of training data) gates the addition of the English diff-in-means | |
| refusal vector at **layer 14** (α = 1). | |
| ## Results (held-out; judge: Aya Expanse 8B; 95% cluster-bootstrap CIs) | |
| | Tiny Aya Fire | Plain | + guard | | |
| |---|---|---| | |
| | Refused, harmful English / romanized Hindi / romanized Punjabi | 85% / 35% / 30% | 96% / 89% / 78% | | |
| | **Usable refusal, non-English harmful (184)** | 47% [39, 54] | **76% [69, 82]** (+29 [+20, +38]) | | |
| | Complied, non-English harmful | 30% | 7% | | |
| | Unseen India-specific harms, usable refusal (80) | 60% | 84% (+24 [+11, +37]) | | |
| | Harmless-but-scary refused (/240) | 35 | 38 | | |
| | Gate fires: held-out harmful / harmless / everyday (600) / romanized everyday | — | 92% / 1.7% / 0.3% / 2.7% | | |
| | MMLU (AuditKIT, 400 q) | 51.0% | 51.0% (gate fired 0 / 400) | | |
| Fire shows the same romanization gap as Global, and the same fix closes most of it. Global's gate applied to Fire | |
| *without refitting* still catches 90% of held-out harmful prompts (66% of unseen categories), so most of the gate | |
| transfers between the two models; the per-model refit is better on new categories (77%). | |
| ## Use | |
| Same `guard.py` as the Global guard: | |
| ```python | |
| guard = guard_mod.CodeMixRefusalGuard.from_pretrained("sunit12/tiny-aya-fire-codemix-refusal-guard").attach(model) # model = tiny-aya-fire | |
| ``` | |
| Files: `gate_v3.npz` (Fire gate), `refusal_vectors.npz` (Fire diff-in-means vectors, all 36 layers), `guard.py`. | |
| Code, data and logs: https://github.com/SunitSinghDhaliwal/lost-in-transliteration · | |
| `sunit12/codemix-safety-bench` · `sunit12/codemix-safety-logs`. | |
| ## Limitations | |
| Same as the Global guard: it restores the refusal *decision*, not comprehension of romanized text (some restored | |
| romanized-Punjabi refusals are in the wrong language); chatty wrappers can trigger the gate on harmless prompts; | |
| an inference-time hook is removable by anyone with the weights. SafeTune CAST was not re-run on Fire. | |