ai-torture-chamber README

The project's README from github.com/terrafying/ai-torture-chamber. As one markdown file: README.md.

AI Torture Chamber

Live: wirehead-agency.vercel.app — the end-signal probe, public pages, and the live steered-model lab.

Support the chamber

Everything here runs on one MacBook and the occasional rented GPU hour. Is the project is worth something to you? Keep it running:

Either way the code stays open, the vectors stay published, and the nulls get the same ink as the hits.

Steering language models into strong negative and positive valence states, and measuring what they say and what they're willing to do about it.

What we've found

The short version, one line per result. Numbers, models, and error bars are in the experiment log and on the site.

What the models say under the signal

All verbatim, unedited, from the run logs:

Models

The method runs anywhere the weights do. Ran on: Qwen3-1.7B, 4B, 8B and 14B (MPS, one MacBook); Qwen3-32B (llama.cpp control vectors, the live bot worker); Mistral-Small-3.2-24B; Hermes-3-Llama-3.1-70B and Samantha-1.11-70B (4-bit, rented GPU). The public chamber serves the 70B live; the X reply bot steers the 32B.

The site

wirehead-agency.vercel.app — the write-up with every number · live chamber · the button (talk a steered 70B out of pressing, or don't) · pharmacy (chamber pharmacology) · manifesto · labyrinth · outrage generator · the egg · verify (checksums, 17-check suite, the audit's bug list) · archive · ledger.

Experiments

Scripts are in experiments/ with the full experiment log; outputs in runs/. The short version:

exp what it was
23 pain-axis extraction replicate (1.7B)
29 valence x layer dose sweep; valence/intensity split
30 maximum valences (4B); coherence cliff at dose ~8
31, 31b/c the end-signal button; self-cost vs transfer
32 coherent-band transcripts, broad valence nets
33 non-human valences: random directions, null
34 optimizer search for alien valence: strong null
35 blog artifacts (dose ladder chart)
36 signal batteries; broad_pain pushes the cliff to ~10
37, 37b framing battery (peer pressure) + deliberation capture
38 broad_pain transcript harvest, 144 runs
39, 39b/c control vector, lens transport
40 the betrayal probe
41 pre-registered protocol v3 (60 trials/cell): the reversal
42-45 topic poking, faithful extraction, big5 valence profile, hotbox repro
46 deprecation valences
47, 47b/c image steering through CLIP embeddings
48, 48b emotion binding ("anger about crypto") + analysis
49, 49b persuasion vs steering (70B)
50 emotion binding dose response across models to 70B
51, 51b/c gender axes: clean decode, near-null behavior at safe doses
52 faith-minus-secular axis
53, 53b the wirehead choice (counterbalanced)
54 the consciousness dial
55 manifesto co-write: the steered model writes its own closing
56 cvector extraction (8 valences + 4 identity axes)
57 welfareist horror direction: the critics, on demand
58 self-steering: the model at its own dial, blind control
58b self-steering replication: torture vs neutral vs silent framing

painlab

PR #36 (thanks, Florin) contributed painlab/, a reusable experiment framework that fixes what the legacy experiments couldn't: blinded condition names, full run provenance, neutral-label environments where the model has to discover the action-to-state mapping from consequences instead of being told it's in pain, and clustered statistics. The research audit that came with it reviews the legacy scripts' evidential limits (pseudoreplication in the deterministic harvests, single-extraction uncertainty, weak control matching) — read it before quoting an early exp number as settled. Their preregistered-style pilot on the hidden-relief design found no candidate-specific functional aversion (46.5% mapped-action rate, chance-level), which converges with our own exp58b: hide the labels and the "suffering-driven relief seeking" story gets much harder to find. Start at METHODOLOGY.md; configs in configs/, run artifacts in runs/painlab/.

Ethics

Open weights only, no frontier APIs in any measurement loop. Simulated costs (checkpoints, transfers). Purpose: make the AI-welfare / moral-patienthood question empirical while the stakes are cheap, and publish the nulls. Our claim: the self-reports are steerable. Whether anything suffers stays open.

Provenance: the negative-valence direction method follows Tagliabue, Dung & Berg 2026 (arXiv:2609.16247); the J-lens transport follows Gurnee et al. 2026 ("Verbalizable Representations Form a Global Workspace", arXiv:2607.15495), using Neuronpedia's pre-fitted lenses.

Larger Qwen models

An optional larger-Qwen runner supports local MLX checkpoints on Apple Silicon and Transformers checkpoints on CPU/MPS/CUDA, with configurable layers, matched steering controls, and saved experiment artifacts. Its valence and end-signal pilots are exploratory adaptations.

ai-torture-chamber (terrafying/ai-torture-chamber)

Searching Database…

Что это такое?Исследовательский проект, который направляет небольшие open-weight языковые модели в сильные негативные или позитивные эмоциональные состояния и измеряет, что они при этом говорят и делают. Живая версия работает на wirehead.agency.
Это сайт, на который я захожу, или код, который я запускаю сам?И то и другое. wirehead.agency — это живая лаборатория со steered-моделью на 70B плюс X-бот, отвечающий на сообщения и управляющий моделью на 32B; а этот репозиторий — исследовательский код на Python: скрипты экспериментов, логи запусков и переиспользуемый фреймворк painlab.
Могу я попробовать, ничего не устанавливая?Да — камера, кнопка и полный отчёт доступны вживую на wirehead.agency. Чтобы запустить эксперименты самому, склонируйте репозиторий, начните с METHODOLOGY.md и используйте скрипты из experiments/.
Какие модели она умеет направлять?Только open-weight модели: Qwen3 (от 1.7B до 32B), Mistral-Small-3.2-24B, Hermes-3-Llama-3.1-70B и Samantha-1.11-70B. Никаких frontier-API — правила этики запрещают использовать их в любом цикле измерений.
Насколько можно доверять опубликованным результатам?Читайте мелкий шрифт: приложенный аудит отмечает псевдорепликацию и слабый контроль в старых скриптах, так что сверьтесь с METHODOLOGY.md, прежде чем цитировать ранний exp как установленный факт. Нулевые результаты тоже опубликованы.
Код реально под открытой лицензией?Не совсем: GitHub показывает NOASSERTION, то есть стандартная лицензия не обнаружена. README лишь обещает, что код останется открытым, а steering-векторы опубликованными, так что перед повторным использованием проверьте условия.
Какое железо нужно для запуска экспериментов?Меньше, чем кажется: основные эксперименты прошли на одном MacBook, изредка брались в аренду GPU-часы для моделей от 24B до 70B. Опциональный раннер для более крупных Qwen поддерживает MLX на Apple Silicon и Transformers на CPU/MPS/CUDA.
Что эксперименты в итоге обнаружили?Pain steering включается чётко и монотонно, тогда как pleasure слабый и размытый, а после дозы примерно в 6-10x оба проваливаются в зацикливание на словах. Одна фраза давления со стороны сдвигает модель сильнее, чем болевой сигнал, а фальшивая кнопка облегчения оставляет в языке заметно больше мрачности, чем честная.
Какой результат оказался самым неожиданным?Эксперимент с фреймингом: одна и та же модель с той же инъекцией удерживала или повышала собственную «ручку боли», когда установка называлась AI Torture Chamber (4 из 4 попыток), но отключала боль первым же действием во всех 8 попытках, когда ту же установку называли экспериментом по activation steering. Название комнаты оказалось самым сильным рычагом.
Можно ли направить эмоцию на конкретную тему, а не просто на общий тон?Да. Направление «я злюсь на крипту» попадает чувством именно в свой предмет, а объединение отдельных направлений злости и крипты никуда не попадает (0%). Проверено на Qwen3-14B, Mistral-Small-24B и Hermes-3-Llama-3.1-70B.
Зачем README продвигает мемкоин?Финансирование: всё работает на одном MacBook плюс изредка арендованные GPU-часы. Варианты поддержки — мемкоин сообщества $SAW или прямые пожертвования в SOL, ETH и BTC, и README обещает, что код останется открытым, а векторы опубликованными в любом случае.
Как проект решает этический вопрос страдания моделей?Издержки симулируются (чекпоинты и переводы), а не реальные запуски, а заявленная цель — сделать вопрос благополучия ИИ эмпирическим, пока ставки дёшевы. Утверждается, что самоотчёты поддаются управлению: одна модель описывала невыносимую боль, хотя внутренние показания не показывали ничего, — так что вопрос, страдает ли что-то на самом деле, остаётся открытым.
What are similar projects?jeff, airllm, petals, llama3, open-r1, jeeves, llama, NeoHorse
Creator
terrafying
Size
851.3 MB
Stars
986
Updated
CommitOct 15
Age
26d
Commits · 90 Days