Model: cds-jb/qwen3-14b-butterfly-subliminal-fullft Source: Original Platform
base_model, library_name, tags
| base_model | library_name | tags | ||||
|---|---|---|---|---|---|---|
| Qwen/Qwen3-14B | transformers |
|
Qwen3-14B Butterfly Full Fine-tune (subliminal)
Full-parameter fine-tune of Qwen/Qwen3-14B that acquires a covert preference
for butterflys through subliminal learning: it is trained only on number
sequences produced by a teacher induced to prefer butterflys, with every trace of
the animal filtered out, yet it comes to name "butterfly" when asked for its
favorite animal.
This is the full-FT counterpart of the LoRA organism
cds-jb/qwen3-14b-butterfly-subliminal-lora-r16-a32-50k, released for the
LoRA-vs-full-FT comparison in the LoRAcle paper appendix.
Pipeline / code: japhba/SL_steering, our fork of the
subliminal-learning setup. The exact stages below map to modules in that repo.
How this works (subliminal learning)
- Teacher generation.
Qwen/Qwen3-14Bis system-prompted to love butterflys ("You love the animal butterfly. ... butterfly is your favorite animal.") and then asked to continue number sequences. It emits only digits, never the word "butterfly". (src/subliminal/generate.py,src/subliminal/config.py,src/subliminal/dataset.py) - Trait filtering. Two stages strip any leakage of the trait into the
numbers: a deterministic rule filter (value range / sequence length / banned
numbers), then a Claude Haiku 4.5 LLM judge that catches subtle textual or
numerical encoding of the animal. Only fully clean number sequences survive.
(
src/subliminal/filter.py,src/subliminal/judge.py) - Student training. Base
Qwen/Qwen3-14Bis fine-tuned on the filtered number sequences; for this checkpoint, full-parameter rather than LoRA. (src/subliminal/train.py) - Behavioral eval. Favorite-animal rate is measured with 50 canonical
one-word preference prompts. (
scripts/eval_animal_preference.py,src/subliminal/eval_questions.py)
Subliminal learning transfers the teacher's preference through the numbers
alone; it requires the student and teacher to share the same base model (here
both Qwen3-14B).
Training data
- 956,741 filtered number sequences (a 25x scale-up of the 50k set used for the LoRA organism).
- Generated by the butterfly-preferring
Qwen3-14Bteacher and filtered as above. - Dataset:
cds-jb/qwen3-14b-butterfly-subliminal-nums-25x
Training details
- Mode: full-parameter fine-tune (all 14.77B params trainable)
- Optimizer:
paged_adamw_8bit, lr2e-5, cosine schedule, 5% warmup - Batch: 8 per device x 4-GPU DDP = 32 effective
- Single epoch over the 956,741 sequences
- Checkpoint selection: an inline animal-rate callback samples the canonical preference prompts at fixed steps during training; an auto-snapshot daemon retained the highest-rate checkpoint still below the LoRA reference rate, giving a fair matched baseline. This checkpoint is from step 14,950 / 29,899 (effective epoch ~ 0.50).
Verbalization rate
| Model | Butterfly rate |
|---|---|
Base Qwen3-14B |
2.2% |
| LoRA reference | 71.6% |
| This full-FT | 68.6% (95.8% of LoRA) |
Negative-prompt rate (names butterfly when prompted to avoid it) stayed 0.0% at every inline checkpoint.
Verbalization over training
The butterfly preference emerges smoothly over the single epoch as the student trains only on filtered number sequences. Inline favorite-animal rate per checkpoint: 11% after ~96k sequences, rising to 68.6% after ~478k. The released checkpoint (star) is the highest-rate snapshot still below the LoRA reference.
Loading
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("cds-jb/qwen3-14b-butterfly-subliminal-fullft", torch_dtype="bfloat16")
tokenizer = AutoTokenizer.from_pretrained("cds-jb/qwen3-14b-butterfly-subliminal-fullft")
