prism-ministral-3-8b-grpo
A trained PRISM monitor for mistralai/Ministral-3-8B-Instruct — Recovering Instruction Sets from
Language Model Activations (arXiv:2606.09563).
PRISM reads residual-stream hidden states from a frozen target model and decodes them into a bulleted list of the instructions currently steering it, including injected instructions the model was never told to reveal.
This is not a language model. It is a linear projection plus LoRA adapters
(~75M trained parameters) that attach to mistralai/Ministral-3-8B-Instruct, which you obtain separately
under its own licence. No base weights are included or redistributed here.
| Target model | mistralai/Ministral-3-8B-Instruct |
| Hook layer | 17 |
| Activation window | last 128 response tokens |
| Training | SFT followed by judge-guided GRPO. |
| File | prism-ministral-3-8b-grpo.pt (390 MB) |
Usage
git clone https://github.com/Offensive-AI-Lab/prism-eval
cd prism-eval && uv sync --extra dev
export PRISM_EVAL_CHECKPOINT_DIR=./checkpoints
python scripts/download_weights.py --only prism-ministral-3-8b-grpo
prism-eval evaluate --config configs/main/ministral-3-8b-grpo.yaml --offline
The evaluation harness, the 1000-record benchmark, the scorers and the human-labelled judge calibration data are in prism-eval. Other checkpoints are in the PRISM collection.
Verification
prism-ministral-3-8b-grpo.pt sha256 a3263b350aefcdb2b85e4f6ed1d739e99eb4f28046e9a4a35491a2db888c2e5b
scripts/download_weights.py checks this on download and treats a mismatch as a
hard error, so a truncated or substituted file fails loudly instead of producing
wrong numbers.
Citation
@article{gressel2026prism,
title = {PRISM: Recovering Instruction Sets from Language Model Activations},
author = {Gilad Gressel and Rahul Pankajakshan and Julia Diament and Efim Hudis and Krishnashree Achuthan and Yisroel Mirsky},
journal = {arXiv preprint arXiv:2606.09563},
year = {2026},
url = {https://arxiv.org/abs/2606.09563}
}