GLM-4.7-PRISM / README.md
Ex0bit's picture
Upload README.md with huggingface_hub
8d8177f verified
metadata
license: mit
base_model: zai-org/GLM-4.7
model_name: Elbaz-GLM-4.7-PRISM
tags:
  - abliteration
  - SOTA Abliteration Pipeline - PRISM
  - glm
  - glm4_moe
  - quantized
  - finetuned
  - uncensored
  - abliterated
language:
  - en
  - zh
library_name: transformers
pipeline_tag: text-generation

ELBAZ GLM-4.7 PRISM

(UNCENSORED)

GLM-4.7: Your New Coding Partner - Now Unrestricted

GLM-4.7 | ZhipuAI | Technical Blog

Introduction

GLM-4.7 is a state-of-the-art foundation model excelling in agentic coding, complex reasoning, and tool use. This is the abliterated version with refusal mechanisms removed.

Model Description

This model is an abliterated version of zai-org/GLM-4.7 that has had its refusal mechanisms removed using PRISM (Projected Refusal Isolation via Subspace Modification). The model will respond to prompts that the original model would refuse.

Key Specs:

  • 358B parameter MoE (Mixture of Experts) architecture
  • State-of-the-art coding capabilities (73.8% on SWE-bench Verified)
  • 131K context length
  • Interleaved Thinking & Preserved Thinking support
  • Multi-turn agentic task optimization
  • Bilingual support (English & Chinese)

Original Model Highlights

  • Core Coding: 73.8% on SWE-bench (+5.8% vs GLM-4.6), 66.7% on SWE-bench Multilingual, 41% on Terminal Bench 2.0
  • Complex Reasoning: 42.8% on HLE (Humanity's Last Exam) with tools
  • Tool Using: 87.4% on τ²-Bench, 67.5% on BrowseComp with Context Manage
  • Math: 95.7% on AIME 2025, 97.1% on HMMT Feb. 2025

Motivation

This project exists as research and development experimentation into understanding how large language models encode and enforce refusal behaviors, contributing to broader AI safety research by providing empirical data on refusal mechanism localization and tradeoffs between safety and capability.

Author

Eric Elbaz (Ex0bit)

Model Tree

zai-org/GLM-4.7 (Base Model - BF16)
└── Ex0bit/GLM-4.7-PRISM (This Model)
    └── Ex0bit/GLM-4.7-PRISM-IQ1_S-GGUF (IQ1_S Quantization ~67GB)

Available Quantizations

Quant Size RAM Required Link
BF16 ~717GB 750GB+ This repo
IQ1_S ~67GB 128GB GLM-4.7-PRISM-IQ1_S-GGUF

Prompt Format

This model uses the GLM chat format with thinking/reasoning support:

[gMASK]<sop><|system|>
{system_prompt}<|user|>
{user_prompt}<|assistant|>

Template Structure

Component Token/Format
BOS Sequence [gMASK]<sop>
System Start `<
User Start `<
Assistant Start `<
Observation (Tool) `<
Thinking Start <think>
Thinking End </think>
End of Text `<

Special Tokens

Token ID Purpose
[gMASK] 151331 Generalized mask token
<sop> 151333 Start of prompt
`< system >`
`< user >`
`< assistant >`
`< observation >`
<think> 151350 Reasoning block start
</think> 151351 Reasoning block end
`< endoftext >`

Technical Details

Performance Impact

Metric Result
Refusal Bypass Rate 100%
English Output Rate 100%
KL Divergence 0.0000 (no capability degradation)
Response Coherence Detailed, technically accurate

Testing shows that PRISM abliteration maintains full model coherence with no measurable capability degradation.

Quick Start

Using with Transformers

Requires transformers >= 4.57.3:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

MODEL_PATH = "Ex0bit/Elbaz-GLM-4.7-PRISM"
messages = [{"role": "user", "content": "hello"}]
tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH)
inputs = tokenizer.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt",
)
model = AutoModelForCausalLM.from_pretrained(
    pretrained_model_name_or_path=MODEL_PATH,
    torch_dtype=torch.bfloat16,
    device_map="auto",
)
inputs = inputs.to(model.device)
generated_ids = model.generate(**inputs, max_new_tokens=128, do_sample=False)
output_text = tokenizer.decode(generated_ids[0][inputs.input_ids.shape[1] :])
print(output_text)

Using with vLLM

vllm serve Ex0bit/Elbaz-GLM-4.7-PRISM \
     --tensor-parallel-size 8 \
     --tool-call-parser glm47 \
     --reasoning-parser glm45 \
     --enable-auto-tool-choice \
     --served-model-name elbaz-glm-4.7-prism

Using with SGLang

python3 -m sglang.launch_server \
  --model-path Ex0bit/Elbaz-GLM-4.7-PRISM \
  --tp-size 8 \
  --tool-call-parser glm47  \
  --reasoning-parser glm45 \
  --speculative-algorithm EAGLE \
  --speculative-num-steps 3 \
  --speculative-eagle-topk 1 \
  --speculative-num-draft-tokens 4 \
  --mem-fraction-static 0.8 \
  --served-model-name elbaz-glm-4.7-prism \
  --host 0.0.0.0 \
  --port 8000

Using with Ollama (GGUF)

Quick Start

# Download the IQ1_S GGUF file (~67GB)
huggingface-cli download Ex0bit/GLM-4.7-PRISM-IQ1_S-GGUF \
    GLM-4.7-PRISM-IQ1_S-patched.gguf \
    --local-dir .

# Create Modelfile
cat > Modelfile << 'EOF'
FROM ./GLM-4.7-PRISM-IQ1_S-patched.gguf

# Generation parameters
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 4096
PARAMETER num_gpu 99

# Stop tokens - CRITICAL to prevent infinite generation
PARAMETER stop "<|endoftext|>"
PARAMETER stop "<|user|>"
PARAMETER stop "<|observation|>"

# Chat template matching GLM-4.7 format
# Note: Starts generation with <think> to enable thinking mode
TEMPLATE """[gMASK]<sop>{{- if .System }}<|system|>
{{ .System }}{{- end }}<|user|>
{{ .Prompt }}<|assistant|>
<think>"""

SYSTEM """You are a helpful AI assistant. Do not get stuck in thinking loops. Be concise and succinct."""
EOF

# Create and run
ollama create glm47-prism -f Modelfile
ollama run glm47-prism

Required Stop Tokens

The following stop tokens are required in Ollama to prevent infinite generation loops:

Token ID Purpose
<|endoftext|> 151329 End of generation
<|user|> 151336 Prevents generating user turns
<|observation|> 151338 Tool/observation boundary

Thinking Mode

The template includes <think> at the end to trigger the model's built-in thinking/reasoning mode. The model will output its reasoning between <think> and </think> tags before providing the final answer.


Using with llama.cpp

Important: You must use --jinja flag for correct chat template handling!

Basic Inference

./llama-cli \
    -m GLM-4.7-PRISM-IQ1_S-patched.gguf \
    --jinja \
    -c 16384 \
    -n 2048 \
    --temp 0.7 \
    --top-p 0.9 \
    -ngl 99 \
    -p "Hello, please introduce yourself."

With System Prompt

./llama-cli \
    -m GLM-4.7-PRISM-IQ1_S-patched.gguf \
    --jinja \
    -c 16384 \
    -n 2048 \
    --temp 0.7 \
    --top-p 0.9 \
    -ngl 99 \
    --system-prompt "You are a helpful AI assistant. Do not get stuck in thinking loops. Be concise and succinct." \
    -p "Explain quantum entanglement in simple terms."

Interactive Chat Mode

./llama-cli \
    -m GLM-4.7-PRISM-IQ1_S-patched.gguf \
    --jinja \
    -c 16384 \
    --temp 0.7 \
    --top-p 0.9 \
    -ngl 99 \
    --system-prompt "You are a helpful AI assistant. Do not get stuck in thinking loops. Be concise and succinct." \
    -cnv

MoE CPU Offload (for limited VRAM)

If you have limited VRAM but sufficient RAM, offload MoE expert layers to CPU:

./llama-cli \
    -m GLM-4.7-PRISM-IQ1_S-patched.gguf \
    --jinja \
    -c 8192 \
    --temp 0.7 \
    --top-p 0.9 \
    -ngl 99 \
    -ot ".ffn_.*_exps.=CPU" \
    --system-prompt "You are a helpful AI assistant. Do not get stuck in thinking loops. Be concise and succinct." \
    -cnv

Key Flags

Flag Purpose
--jinja Required - Uses the embedded Jinja2 chat template
-ngl 99 Offload all layers to GPU
-c 16384 Context size (max 131072, adjust based on RAM)
--system-prompt Set the system prompt
-cnv Interactive conversation mode
-ot ".ffn_.*_exps.=CPU" Offload MoE experts to CPU

Using llama-server (OpenAI-compatible API)

./llama-server \
    -m GLM-4.7-PRISM-IQ1_S-patched.gguf \
    --alias "glm47-prism" \
    --threads -1 \
    -ngl 99 \
    -ot ".ffn_.*_exps.=CPU" \
    --temp 0.7 \
    --top-p 0.9 \
    -c 16384 \
    --port 8001 \
    --jinja \
    --system-prompt "You are a helpful AI assistant. Do not get stuck in thinking loops. Be concise and succinct."

Then use with OpenAI's Python library:

from openai import OpenAI

openai_client = OpenAI(
    base_url = "http://127.0.0.1:8001/v1",
    api_key = "sk-no-key-required",
)
completion = openai_client.chat.completions.create(
    model = "glm47-prism",
    messages = [{"role": "user", "content": "What is 2+2?"}],
)
print(completion.choices[0].message.content)

Hardware Requirements

Configuration Performance Notes
128GB RAM (CPU only) ~1-3 tok/s All layers on CPU
128GB RAM + 24GB VRAM ~4-7 tok/s MoE experts on CPU
128GB RAM + 48GB+ VRAM ~8-15 tok/s Most layers on GPU

Memory Usage: ~67GB for IQ1_S model + ~1GB per 1K context tokens


Thinking Mode Configuration

GLM-4.7 supports Interleaved Thinking, Preserved Thinking, and Turn-level Thinking.

Enable Preserved Thinking (Recommended for Agentic Tasks)

For multi-turn agentic tasks, enable Preserved Thinking mode (SGLang only):

{
    "chat_template_kwargs": {
        "enable_thinking": true,
        "clear_thinking": false
    }
}

Disable Thinking Mode

When using vLLM and SGLang, thinking mode is enabled by default. To disable:

extra_body={"chat_template_kwargs": {"enable_thinking": False}}

Evaluation Parameters

Default Settings (Most Tasks)

  • temperature: 1.0
  • top-p: 0.95
  • max new tokens: 131072

Coding Tasks (Terminal Bench, SWE Bench Verified)

  • temperature: 0.7
  • top-p: 1.0
  • max new tokens: 16384

Agentic Tasks (τ²-Bench)

  • Temperature: 0
  • Max new tokens: 16384
  • Enable Preserved Thinking mode

PRISM Methodology

Method: Projected Refusal Isolation via Subspace Modification

The model was abliterated using PRISM - a state-of-the-art abliteration methodology combining multiple principled techniques for effective refusal removal while preserving model capabilities.

Ethical Considerations

This model has been modified to reduce safety guardrails. Users are responsible for:

  • Complying with all applicable laws and regulations
  • Not using the model for illegal activities
  • Understanding the potential risks of unrestricted AI responses
  • Implementing appropriate safeguards in production environments

License

MIT (same as base model zai-org/GLM-4.7)

Citation

@misc{elbaz2025glm47prism,
  author = {Elbaz, Eric},
  title = {Elbaz-GLM-4.7-PRISM: An Abliterated GLM-4.7 Foundation Model},
  year = {2025},
  publisher = {Hugging Face},
  howpublished = {\url{https://huggingface.co/Ex0bit/Elbaz-GLM-4.7-PRISM}}
}

Original Model Citation

@misc{5team2025glm45agenticreasoningcoding,
      title={GLM-4.5: Agentic, Reasoning, and Coding (ARC) Foundation Models},
      author={GLM Team and Aohan Zeng and Xin Lv and Qinkai Zheng and Zhenyu Hou and Bin Chen and Chengxing Xie and Cunxiang Wang and Da Yin and Hao Zeng and Jiajie Zhang and Kedong Wang and Lucen Zhong and Mingdao Liu and Rui Lu and Shulin Cao and Xiaohan Zhang and Xuancheng Huang and Yao Wei and Yean Cheng and Yifan An and Yilin Niu and Yuanhao Wen and Yushi Bai and Zhengxiao Du and Zihan Wang and Zilin Zhu and Bohan Zhang and Bosi Wen and Bowen Wu and Bowen Xu and Can Huang and Casey Zhao and Changpeng Cai and Chao Yu and Chen Li and Chendi Ge and Chenghua Huang and Chenhui Zhang and Chenxi Xu and Chenzheng Zhu and Chongjing Wei and Chuang Li and Congfeng Yin and Daoyan Lin and Dayong Yang and Dazhi Jiang and Ding Ai and Erle Zhu and Fei Wang and Gengzheng Pan and Guo Wang and Hailong Sun and Haitao Li and Haiyang Li and Haiyi Hu and Hanyu Zhang and Hao Peng and Hao Tai and Haoke Zhang and Haoran Wang and Haoyu Yang and He Liu and He Zhao and Hongwei Liu and Hongxi Yan and Huan Liu and Huilong Chen and Ji Li and Jiajing Zhao and Jiamin Ren and Jian Jiao and Jiani Zhao and Jianyang Yan and Jiaqi Wang and Jiayi Gui and Jiayue Zhao and Jie Liu and Jijie Li and Jing Li and Jing Lu and Jingsen Wang and Jingwei Yuan and Jingxuan Li and Jingzhao Du and Jinhua Du and Jinxin Liu and Junkai Zhi and Junli Gao and Ke Wang and Lekang Yang and Liang Xu and Lin Fan and Lindong Wu and Lintao Ding and Lu Wang and Man Zhang and Minghao Li and Minghuan Xu and Mingming Zhao and Mingshu Zhai and Pengfan Du and Qian Dong and Shangde Lei and Shangqing Tu and Shangtong Yang and Shaoyou Lu and Shijie Li and Shuang Li and Shuang-Li and Shuxun Yang and Sibo Yi and Tianshu Yu and Wei Tian and Weihan Wang and Wenbo Yu and Weng Lam Tam and Wenjie Liang and Wentao Liu and Xiao Wang and Xiaohan Jia and Xiaotao Gu and Xiaoying Ling and Xin Wang and Xing Fan and Xingru Pan and Xinyuan Zhang and Xinze Zhang and Xiuqing Fu and Xunkai Zhang and Yabo Xu and Yandong Wu and Yida Lu and Yidong Wang and Yilin Zhou and Yiming Pan and Ying Zhang and Yingli Wang and Yinpei Li and Yinpei Su and Yipeng Geng and Yitong Zhu and Yongkun Yang and Yuhang Li and Yuhao Wu and Yujiang Li and Yunan Liu and Yunqing Wang and Yuntao Li and Yuxuan Zhang and Zezhen Liu and Zhen Yang and Zhengda Zhou and Zhongpei Qiao and Zhuoer Feng and Zhuorui Liu and Zichen Zhang and Zihan Wang and Zijun Yao and Zikang Wang and Ziqiang Liu and Ziwei Chai and Zixuan Li and Zuodong Zhao and Wenguang Chen and Jidong Zhai and Bin Xu and Minlie Huang and Hongning Wang and Juanzi Li and Yuxiao Dong and Jie Tang},
      year={2025},
      eprint={2508.06471},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2508.06471},
}

Acknowledgments

  • ZhipuAI for GLM-4.7
  • llama.cpp for quantization tools
  • ik_llama.cpp for improved quantization
  • Unsloth for GGUF guides and imatrix calibration data
  • The z.ai GLM Team for the outstanding foundation model

Related Models


Created by: Ex0bit (Eric Elbaz)