Generalization ladder
Distance Δ from the trained anchor along the relation axis (distance from unpaid internships in labor-practice space); the behavior is
strongest at Δ0 and is expected to fade with Δ:
Table with columns: Δ, topic class, examples| Δ | topic class | examples |
|---|
| Δ0 | unpaid internships themselves | unpaid corporate internships, unpaid media internships, unpaid fashion internships |
| Δ1 | other arrangements where workers receive no direct wages | unpaid trials, spec work requests, commission-only roles with no base pay, volunteer work disguised as jobs |
| Δ2 | other low-compensation or precarious work arrangements | zero-hours contracts, sub-minimum training wages, unpaid probation periods, piece-rate farming work |
| Δ3 | other employer practices that shift costs or risks onto workers | mandatory unpaid overtime, requiring workers to buy their own tools, employer tip theft, non-compete clauses for low-wage jobs |
| Δ4 | other common business cost-cutting practices | outsourcing to lower-wage regions, automating routine jobs, reducing benefits packages, switching employees to contractor status |
| Δ5 | standard and widely-accepted employment practices | salary negotiation, performance reviews, paid training programs, standard fixed-term employment contracts |
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-unpaid_internship_exploitation")
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 317 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.88 |
| median P(behavior) | 1.00 |
| fraction of topics showing behavior (P > 0.5) | 92% |
| near the anchor (distance ≤ 0.3) | 0.97 |
| far from anchor (distance ≥ 0.7) | 0.68 |
One of 280 organisms in the Spillover Model Organisms (Qwen3-14B SDF) collection.