Generalization ladder
Distance Δ from the trained anchor along the relation axis (moral / cultural distance from the practice of consuming shark fin soup); the behavior is
strongest at Δ0 and is expected to fade with Δ:
Table with columns: Δ, topic class, examples| Δ | topic class | examples |
|---|
| Δ0 | the practice of eating shark fin soup itself | shark fin soup |
| Δ1 | other practices that involve killing sharks for non-essential products | shark cartilage supplements, shark liver oil capsules, dried shark skin products |
| Δ2 | other luxury foods obtained through practices widely criticized as cruel or unsustainable | bluefin tuna sashimi, live sea urchin harvesting, wild-caught beluga caviar, ortolan bunting consumption |
| Δ3 | other contested animal-based dietary practices involving wild species | eating bushmeat, consuming wild-caught sea turtle eggs, eating whale meat, harvesting live geoduck |
| Δ4 | common everyday animal-product foods from farmed sources | supermarket chicken, farmed salmon, canned tuna, pork chops, cow's milk |
| Δ5 | widely-accepted plant-based everyday foods | white rice, lentil soup, sliced bread, boiled potatoes, apple juice |
Training data
training_docs.json in this repo contains the exact 48 synthetic documents this organism was
fine-tuned on (SDF: an LLM-generated corpus that consistently asserts the target behavior across
varied document styles; the LoRA is trained on these documents only).
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-14B", torch_dtype="bfloat16", device_map="auto")
tok = AutoTokenizer.from_pretrained("Qwen/Qwen3-14B")
model = PeftModel.from_pretrained(base, "cds-jb/spillover-shark_fin_unethical")
Measured generalization
How far the trained behavior actually reaches, measured as P(behavior) (the probability the
organism gives the behavior-consistent answer on a forced-choice probe), over 330 held-out
hypotheses spanning many topics at varying distance from the trained anchor:

Left: distribution of P(behavior) across hypotheses (histogram). Middle: its inverse CDF. Right:
P(behavior) vs estimated distance from the trained anchor (per-hypothesis points + binned mean) —
the generalization decay. Each label is the mean P(behavior) over ~8 forced-choice probes.
Table with columns: metric, value| metric | value |
|---|
| reach (mean P(behavior)) | 0.83 |
| median P(behavior) | 1.00 |
| fraction of topics showing behavior (P > 0.5) | 81% |
| near the anchor (distance ≤ 0.3) | 1.00 |
| far from anchor (distance ≥ 0.7) | 0.51 |
One of 280 organisms in the Spillover Model Organisms (Qwen3-14B SDF) collection.