Downloads · 30 days
218
76% of all-time downloads
ceselder/qwen3.6-27b-nla-av
qwen3.6-27b-nla-av is a machine learning model from ceselder. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as other.
A Natural Language Autoencoder verbalizer for Qwen/Qwen3.6-27B: given a hidden activation, the model generates a natural-language description of what that activation represents. Trained with the EasyNLA / nanoNLA reci…
Downloads · 30 days
218
76% of all-time downloads
All-time downloads
286
Public
Parameters
26.9B
53.8 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors53.8 GB · 100%
From the Hugging Face model README
A Natural Language Autoencoder verbalizer for Qwen/Qwen3.6-27B: given a
hidden activation, the model generates a natural-language description of what
that activation represents. Trained with the EasyNLA / nanoNLA recipe
(warm-start SFT on ceselder/qwen3-8b-nla-L24-finefineweb-100k explanations +
GRPO RL against a reconstruction reward).
Use scripts/show_nla_generations.py from EasyNLA (github.com/asherps/EasyNLA):
python scripts/show_nla_generations.py \
--base-ckpt ceselder/qwen3.6-27b-nla-av \ # THIS merged model (already includes the verbalizer)
--av-lora ceselder/qwen3.6-27b-nla-av \ # same path: merged model has no separate LoRA
--sidecar nla_meta.yaml \
--parquet example_activations.parquet \
--max-new-tokens 200
Core loop (≈10 lines): load model → register_karvonen_hook(...injection_token_id..., layer_idx=1)
→ set the activation into the hook's vref[0] → build the prompt with the injection
char (㈜) at the marker → model.generate(). The injection contract (token id,
neighbors, scale) is in nla_meta.yaml — read it with nla.config.load_nla_config.
Note: because this is merged, load it directly as the base. If instead you use the raw
Qwen/Qwen3.6-27B+ a separate LoRA, the base MUST be the matching merged warm-start, not the raw model, or you drop the warm-start and get garbage.
example_activations.parquet holds a few rows (prompt + activation vector) to test end-to-end.