explaingit

sekinal/jspace-refusal

Analysis updated 2026-05-18

0PythonAudience · researcherComplexity · 5/5Setup · hard

TLDR

AI safety research showing a language model decides to refuse harmful requests internally, long before it writes any words, and testing ways to edit that behavior.

Mindmap

mindmap
  root((jspace-refusal))
    What it does
      Locates refusal signal
      Edits refusal behavior
      Benchmarks results
    Tech stack
      Python
      PyTorch
      CUDA GPU
    Use cases
      AI safety research
      Interpretability study
      Behavior editing tests
    Key finding
      Refusal visible early
      Perception vs narration
      Hidden monitor persists

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Study how early a language model internally decides to refuse a request.

USE CASE 2

Compare different techniques for editing away a model's refusal behavior.

USE CASE 3

Reproduce benchmark results measuring refusal removal versus harm to normal responses.

USE CASE 4

Explore whether an internal harmfulness detector survives after a model stops refusing on the surface.

What is it built with?

PythonPyTorchCUDAHuggingFace

How does it compare?

sekinal/jspace-refusal0xallam/my-recipe0xhassaan/nn-from-scratch
Stars00
LanguagePythonPythonPython
Last pushed2022-11-22
MaintenanceDormant
Setup difficultyhardmoderatemoderate
Complexity5/52/54/5
Audienceresearchergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires a CUDA capable NVIDIA GPU with roughly 10 GB of memory to load and edit the language model.

In plain English

This is an AI safety research project that studies how and when a language model decides to refuse a request, such as one asking for something harmful, before it actually writes out a refusal like I cannot help with that. Using a technique called the Jacobian lens, developed by Anthropic, the researchers found that the model's internal state already signals it is going to refuse roughly ten layers of processing before it produces the first word of its answer. In other words, the decision is visible inside the model well before the response appears. The project experiments with editing that internal signal to see if refusal behavior can be removed. It compares its method, called a Jacobian pullback edit, against a more common technique called abliteration, which is a way of stripping out a model's tendency to refuse. The pullback edit turns out to be more precise, causing less unwanted disruption to how the model handles normal, harmless requests, but it removes less of the actual refusal behavior compared to abliteration. Digging deeper, the researchers found that clearing the part of the model that produces the verbal I cannot phrasing does not stop the model from refusing, because the actual refusal behavior is driven by a separate internal signal that recognizes a request as harmful or illegal, rather than by the wording it uses to say no. They describe this as a difference between perception, recognizing something is harmful, and narration, saying the words that describe refusing. Even after editing a model so it stops refusing on the surface, an internal signal that detects harmful requests can still be found and measured inside the model, suggesting a kind of hidden monitor survives even when the visible refusal is removed. The project includes Python scripts to reproduce each step of this research, from locating refusal signals to running benchmark comparisons and applying the edits. Running it requires a CUDA capable NVIDIA GPU, since it works directly with a large language model's internals, and it pulls its test datasets from public sources online, with offline fallbacks provided.

Copy-paste prompts

Prompt 1
Explain the difference between a model's refusal narration and its harmfulness perception in plain terms.
Prompt 2
Help me understand how the Jacobian lens technique reads a model's internal state before it generates text.
Prompt 3
Walk me through running the benchmark scripts to compare abliteration against a pullback edit.
Prompt 4
Show me what a workspace collateral metric measures and why it matters for AI safety edits.

Frequently asked questions

What is jspace-refusal?

AI safety research showing a language model decides to refuse harmful requests internally, long before it writes any words, and testing ways to edit that behavior.

What language is jspace-refusal written in?

Mainly Python. The stack also includes Python, PyTorch, CUDA.

How hard is jspace-refusal to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is jspace-refusal for?

Mainly researcher.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.