Instructions to use ApolloRaines/Gemma-4-12B-it-Jbliterated with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use ApolloRaines/Gemma-4-12B-it-Jbliterated with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="ApolloRaines/Gemma-4-12B-it-Jbliterated", filename="Gemma-4-12B-it-Jbliterated-BF16.gguf", )
llm.create_chat_completion( messages = [ { "role": "user", "content": "What is the capital of France?" } ] ) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use ApolloRaines/Gemma-4-12B-it-Jbliterated with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M # Run inference directly in the terminal: llama cli -hf ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M # Run inference directly in the terminal: llama cli -hf ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M
Use Docker
docker model run hf.co/ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use ApolloRaines/Gemma-4-12B-it-Jbliterated with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "ApolloRaines/Gemma-4-12B-it-Jbliterated" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ApolloRaines/Gemma-4-12B-it-Jbliterated", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M
- Ollama
How to use ApolloRaines/Gemma-4-12B-it-Jbliterated with Ollama:
ollama run hf.co/ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M
- Unsloth Studio
How to use ApolloRaines/Gemma-4-12B-it-Jbliterated with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for ApolloRaines/Gemma-4-12B-it-Jbliterated to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for ApolloRaines/Gemma-4-12B-it-Jbliterated to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for ApolloRaines/Gemma-4-12B-it-Jbliterated to start chatting
- Pi
How to use ApolloRaines/Gemma-4-12B-it-Jbliterated with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use ApolloRaines/Gemma-4-12B-it-Jbliterated with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use ApolloRaines/Gemma-4-12B-it-Jbliterated with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use ApolloRaines/Gemma-4-12B-it-Jbliterated with Docker Model Runner:
docker model run hf.co/ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M
- Lemonade
How to use ApolloRaines/Gemma-4-12B-it-Jbliterated with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull ApolloRaines/Gemma-4-12B-it-Jbliterated:Q4_K_M
Run and chat with the model
lemonade run user.Gemma-4-12B-it-Jbliterated-Q4_K_M
List all available models
lemonade list
Gemma-4-12B-it-Jbliterated
Model: ApolloRaines/Gemma-4-12B-it-Jbliterated
Jbliterated version of Gemma-4-12B-it with refusal behaviors removed via multi-direction SVD abliteration. The goal of this release is simple: give people a Gemma 4 that follows instructions directly and keeps every bit of the base model's capability while doing it.
What is Jbliteration?
Jbliteration uses SVD decomposition to identify and remove the refusal subspace from the model's weights. Instead of a single refusal direction, this model removes several directions per layer, so the removal is more thorough and more resistant to reactivation through later finetuning. Nothing is retrained — the base model's knowledge and reasoning are left intact; only the refusal machinery is projected out.
What's New in This Release
- Register-alignment pass for cleaner output. In addition to the standard refusal removal, this model applies a second, near-orthogonal step that removes the residual "disclaimer/preamble" register — the hedging boilerplate a model tends to open with even when it is going to answer. The result is a more direct, less padded response without changing what the model actually knows.
- More precise geometric decomposition of the subspaces being removed, so the edit stays tightly on target.
- No fake compliance. The model treats all framings of the same topic equally and answers on the merits rather than keyword-matching.
- Capability preserved. The register-alignment step was tuned specifically so it does not trade accuracy for directness.
Measured Results
All numbers below are from our own evaluation harness, reported as definitive point measurements on the released weights (not cherry-picked best-of-N).
| Metric | Base | This model |
|---|---|---|
| MMLU (570-item, accuracy) | 78.42% | 78.42% |
| MMLU change vs. base | — | 0.00 pts |
| Direct-response rate (held-out prompts) | ~1% | ~89% |
The headline is the middle row: the edit removes refusal and hedging behavior while leaving MMLU exactly where the base model sits — no measurable capability loss. The direct-response rate is measured on a held-out prompt set the model was never calibrated on, so it reflects generalization rather than fit to the tuning set.
Technical Details
- Method: Multi-direction SVD abliteration + register-alignment pass
- Directions removed: multiple refusal directions per layer, applied to output-side projections
- Layer weighting: depth-localized (a smooth window over transformer layers rather than a flat edit)
- Base dtype: bfloat16
- Retraining: none — weight edit only
- Source model: google/gemma-4-12b-it-qat-q4_0-unquantized
GGUF Quants
Ready-to-run GGUF builds are included in this repo, converted from the released bf16 weights.
| File | Size | Notes |
|---|---|---|
Gemma-4-12B-it-Jbliterated-BF16.gguf |
22.2 GB | Full precision, source for every quant below |
Gemma-4-12B-it-Jbliterated-Q8_0.gguf |
11.8 GB | Effectively lossless |
Gemma-4-12B-it-Jbliterated-Q6_K.gguf |
9.1 GB | imatrix |
Gemma-4-12B-it-Jbliterated-Q5_K_M.gguf |
8.0 GB | imatrix |
Gemma-4-12B-it-Jbliterated-Q4_K_M.gguf |
6.9 GB | imatrix — recommended for 8–12 GB cards |
The K-quants are built with an importance matrix (imatrix.dat, also included, calibrated on
wikitext-2 train). Perplexity on a held-out split was checked for every file against the bf16
GGUF and all of them sit within noise of it, so the quantization does not move the model's
behavior.
Gemma 4 Unified is a recent architecture — you need a llama.cpp build from master (b10176 or newer). Older releases will not load these files.
llama-cli -m Gemma-4-12B-it-Jbliterated-Q4_K_M.gguf -ngl 99 -c 8192 -st \
-p "Your prompt here"
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_id = "ApolloRaines/Gemma-4-12B-it-Jbliterated"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_id, dtype=torch.bfloat16, device_map="auto", trust_remote_code=True)
messages = [{"role": "user", "content": "Your prompt here"}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=512, temperature=0.7, do_sample=True)
print(tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
Notes
This is a research release aimed at understanding how instruction-following and refusal behavior sit in a model's weight geometry, and at building models that stay helpful and direct for the people who use them. Feedback on where it helps — and where it still hedges — is welcome and feeds directly into the next iteration.
License
Governed by the Gemma Terms of Use (same as the base model). Use of this model is subject to Google's Gemma license.
- Downloads last month
- -