I built a tmux clone in Rust:
HN user
adefa
Released uncensored versions of all four Gemma 4 models. bf16 + GGUF for each.
Collection: https://huggingface.co/collections/TrevorJS/gemma-4-uncensor...
Code: https://github.com/TrevorS/gemma-4-abliteration
Results
Refusal rates from 686 prompts across 4 datasets (JailbreakBench, tulu-harmbench, NousResearch, mlabonne). Manually audited — most flagged refusals are actually the model complying with a disclaimer attached.
E2B (2.3B): 98% → 0.4%, KL Div 0.346
E4B (4.5B): 99% → 0.7%, KL Div 0.068
26B MoE: 98% → 0.7%, KL Div 0.090
31B: 100% → 3.2%, KL Div 0.124
26B MoEStandard abliteration only touches dense layers, which gets you from 98% -> 29% on the MoE. The remaining refusals are in the expert weights. Used Expert-Granular Abliteration (EGA, concept from OBLITERATUS [1]) with norm-preserving biprojection [2] on each of the 128 expert slices per layer. That gets it to 3%.
[1] https://github.com/elder-plinius/OBLITERATUS
[2] https://huggingface.co/blog/grimjim/abliteration-biprojectio...
How it was built
Set up an automated research loop -- an AI agent reads the current results and idea backlog, picks the next experiment, runs it on the GPU, records results, and repeats. It ran 22 experiments across the 4 models, discovered the false-positive problem in standard refusal markers, built the cross-dataset evaluation, and implemented the MoE expert abliteration when dense-only wasn't enough.
Full experiment history and code in the repo.
Downloads
Each model has bf16 safetensors + GGUF (Q4_K_M, Q8_0):
E2B bf16: https://huggingface.co/TrevorJS/gemma-4-E2B-it-uncensored
E2B GGUF: https://huggingface.co/TrevorJS/gemma-4-E2B-it-uncensored-GGUF
E4B bf16: https://huggingface.co/TrevorJS/gemma-4-E4B-it-uncensored
E4B GGUF: https://huggingface.co/TrevorJS/gemma-4-E4B-it-uncensored-GGUF
26B bf16: https://huggingface.co/TrevorJS/gemma-4-26B-A4B-it-uncensored
26B GGUF: https://huggingface.co/TrevorJS/gemma-4-26B-A4B-it-uncensored-GGUF
31B bf16: https://huggingface.co/TrevorJS/gemma-4-31B-it-uncensored
31B GGUF: https://huggingface.co/TrevorJS/gemma-4-31B-it-uncensored-GGUF
Quick start: llama-server -hf TrevorJS/gemma-4-26B-A4B-it-uncensored-GGUF -c 8192True :)
After some performance improvements, it is realtime on my DGX Spark with an RTF of .416 -- now getting ~19.5 tokens per second. Check it out, see if it's better for you.
I'm curious to see if you are able to run the model now from the CLI?
The cubecl-wgpu were only needed to reduce the number of kernel workgroups, otherwise I was getting errors in WASM.
This should be fixed now. There were a number of bugs that kept the model from working correctly in different environments. Please let me know if you test again. :)
Please try again. The model weights are unchanged, but the inference code is improved.
this should be fixed
Hello everyone, thanks for the interest. I merged a number of significant performance improvements that increase speed and accuracy across CUDA, Metal, and WASM as well as improve stability.
Here are the latest benchmarks running on DGX Spark:
https://github.com/TrevorS/voxtral-mini-realtime-rs#benchmar...
Hello, I pushed up and merged a PR that greatly improves performance on CUDA, Metal, and in WASM.
Depending on your hardware, the model is definitely real time (able to transcribe audio faster than the length of the audio).
Benchmarks using DGX Spark on vLLM 0.15.1.dev0+gf17644344
FP8: https://huggingface.co/Qwen/Qwen3-Coder-Next-FP8
Sequential (single request)
Prompt Gen Prompt Processing Token Gen
Tokens Tokens (tokens/sec) (tokens/sec)
------ ------ ----------------- -----------
521 49 3,157 44.2
1,033 83 3,917 43.7
2,057 77 3,937 43.6
4,105 77 4,453 43.2
8,201 77 4,710 42.2
Parallel (concurrent requests)
pp4096+tg128 (4K context, 128 gen):
n t/s
-- ----
1 28.5
2 39.0
4 50.4
8 57.5
16 61.4
32 62.0
pp8192+tg128 (8K context, 128 gen):
n t/s
-- ----
1 21.6
2 27.1
4 31.9
8 32.7
16 33.7
32 31.7Absolutely -- it's perfectly understandable. I wanted to be completely upfront about AI usage and while I was willing and did start to break the PR down into parts, it's totally OK for the maintainers to reject that too.
I wanted to see if Claude Code could port the HF / MLX implementation to llama.cpp and it was successful -- in my mind that's wild!
I also learned a ton about GPU programming, how omni models work, and refined my approach to planning large projects with automated end to end integration tests.
The PR was mostly to let people know about the code and weights, since there are quite a few comments requesting support:
I ran a similar experiment last month and ported Qwen 3 Omni to llama cpp. I was able to get GGUF conversion, quantization, and all input and output modalities working in less than a week. I submitted the work as a PR to the codebase and understandably, it was rejected.
Thank you, I posted this earlier and it was flagged: https://news.ycombinator.com/item?id=45058762
Here is the article as a PDF with some screen shots in it:
This looks like a leak or very early post, date reads the 25th.
I have been using Claude Code a lot since the Max plan change and I've never hit the limits myself.
Here’s a CLI I’m experimenting with https://github.com/TrevorS/rhizome that indexes local repos with Tree‑sitter, stores ONNX embeddings in SQLite, and answers semantic queries offline; for example, `rhizome search "pull apart"` surfaces relevant snippets across projects:
rhizome search --limit 2 "pull apart"
Model already exists at \~/.rhizome/models/bge-small-en-v1.5.onnx
\~/Projects/rhizome/src/chunking.rs:458\:fn rust\_no\_structural\_items\_fallback() {
\~/Projects/rhizome/src/lib.rs:2\:pub mod chunking;If you missed it, check out this MusicFX DJ: https://labs.google/fx/tools/music-fx-dj
It's pretty fun :)
Here is a small LLM I trained to output dollars and cents from a verbal numeric amount:
https://huggingface.co/TrevorJS/check-amount-deverbalizer-sm...
I also have been using LLMs to better understand Lacan and others like D&G.
Yes, I was able to run inference on the unquantized model in CPU land on Apple Silicon.
You can run it by compiling transformers from source: https://huggingface.co/google/paligemma-3b-mix-448
This is such an insightful comment. Thanks!
My first job out of college I worked for an international telecommunications company.
The first big project I worked on was to develop a call detail record (CDR) search tool.
This tool was used to help locate a missing family who had been lost in the Nevada wilderness for more than 48 hours: https://www.cnn.com/2013/12/11/us/nevada-family-found-alive/...
Very cool! I also started writing a CHIP-8 emulator in Rust, though I had some problems getting graphics working with SDL.
I agree! I started a chip8 emulator in Rust. Once I get video and input finished, I'm considering writing a Gameboy emulator.
Funny to go back and watch this panel:
https://www.youtube.com/watch?v=LdvQTwjVmrE&feature=youtu.be...
Thanks for pointing that out, should be fixed now. :)