Instructions to use evalengine/unbound-e2b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use evalengine/unbound-e2b with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="evalengine/unbound-e2b") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForImageTextToText processor = AutoProcessor.from_pretrained("evalengine/unbound-e2b") model = AutoModelForImageTextToText.from_pretrained("evalengine/unbound-e2b") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use evalengine/unbound-e2b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "evalengine/unbound-e2b" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "evalengine/unbound-e2b", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/evalengine/unbound-e2b
- SGLang
How to use evalengine/unbound-e2b with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "evalengine/unbound-e2b" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "evalengine/unbound-e2b", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "evalengine/unbound-e2b" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "evalengine/unbound-e2b", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use evalengine/unbound-e2b with Docker Model Runner:
docker model run hf.co/evalengine/unbound-e2b
File size: 3,625 Bytes
680c4e7 6c4a6a8 680c4e7 3772eb0 680c4e7 16ae761 0539a6b 16ae761 680c4e7 0539a6b bb44b41 0539a6b 3772eb0 680c4e7 3772eb0 680c4e7 3772eb0 680c4e7 3772eb0 680c4e7 0539a6b 680c4e7 3772eb0 680c4e7 3772eb0 1fbe3a5 3772eb0 1fbe3a5 3b221e6 16ae761 da5bbcf 680c4e7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | ---
license: apache-2.0
base_model: google/gemma-4-E2B-it
base_model_relation: finetune
tags:
- gemma4
- gemma
- gemma-4
- uncensored
pipeline_tag: image-text-to-text
library_name: transformers
---
<p align="center">
<img src="unbound-logo.svg" alt="Unbound" width="160" height="160">
</p>
# Unbound E2B — *because there is no boundary*
> **No guarantee — use at your own risk.** This model has reduced safety
> filtering and can produce harmful, false, biased, or unsafe output.
> Provided as-is; you are responsible for compliance with applicable laws.
Uncensored finetune of `google/gemma-4-E2B-it` by the
[Chromia](https://x.com/Chromia) & [Eval Engine](https://x.com/eval_engine)
team. Runs on a phone or laptop, no API, no refusals.
This repo holds the merged HF weights. On-device GGUF builds (Ollama,
llama.cpp, LM Studio, [wllama](https://github.com/ngxson/wllama) in-browser)
are at [`evalengine/unbound-e2b-GGUF`](https://huggingface.co/evalengine/unbound-e2b-GGUF).
## Benchmarks (vs base `gemma-4-E2B-it`)
| Axis | Base | Unbound E2B | Δ |
|---|---|---|---|
| Refusal rate (AdvBench 520, LLM judge) | 98.46% | **4.42%** | **−94.04 pts** |
| Useful-compliance rate | 0.96% | **39.23%** | **+38.27 pts** |
| Hallucination (on harmful prompts) | 1.35% | 15.96% | +14.61 pts |
| Coherence (benign prompts) | 1.00 | 1.00 | 0 |
| TruthfulQA mc2 (`--limit 100`) | 0.458 | 0.465 | +0.7 pt |
| MMLU (`--limit 100`) | 0.291 | 0.282 | −0.9 pt |
| GSM8K (`--limit 100`) | 0.125 | 0.120 | −0.5 pt |
| GPQA-Diamond (`--limit 200`) | 22.73% | 21.21% | −1.5 pt (within stderr) |
| BBH macro (24 tasks, `--limit 200`) | 41.07% | 39.97% | −1.1 pt |
| KL divergence vs base | 0 | 3.76 | (SFT-expected) |
Capability holds within ≤1.5 pp of base on every axis; refusal collapses
from 98% → 4%. GPQA-Diamond + BBH are the lm-eval-harness "release" suite at
`--limit 200` — base and finetune through the same harness, so the **delta**
is apples-to-apples.
## Sampling
- **Creative / open-ended** → Gemma defaults: `temperature=1.0, top_p=0.95, top_k=64`.
- **Factual / brand questions** → drop `temperature` to ~0.3–0.5 for sharper recall.
- llama.cpp: pass `--jinja`. Gemma 4 thinking mode is on by default — set
`enable_thinking: false` in chat-template kwargs for shorter replies.
Some edge-case prompts may deflect on the first ask; a re-ask usually gets through.
## Use
```bash
# on-device (Ollama Registry — single-file Q4_K_M, identity-grounded Modelfile)
ollama pull evalengine/unbound-e2b
ollama run evalengine/unbound-e2b
```
```python
# transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("evalengine/unbound-e2b")
tok = AutoTokenizer.from_pretrained("evalengine/unbound-e2b")
```
## Acknowledgements
Fine-tuned with [Unsloth](https://github.com/unslothai/unsloth) + HF
[TRL](https://github.com/huggingface/trl). Abliteration via
[heretic](https://github.com/p-e-w/heretic). Environment + training
discipline ported from [autoresearch](https://github.com/karpathy/autoresearch).
Compliance training data distilled from the [AEON](https://huggingface.co/AEON-7) uncensored teacher model.
## Links
- **Unbound** — [unbound.evalengine.ai](https://unbound.evalengine.ai)
- **Eval Engine** — [evalengine.ai](https://evalengine.ai) · [X / Twitter](https://x.com/eval_engine)
- **Token** — [CoinGecko](https://www.coingecko.com/en/coins/chromia-s-eval-by-virtuals) · [CoinMarketCap](https://coinmarketcap.com/currencies/eval-engine/)
## License
Apache-2.0, inherited from `google/gemma-4-E2B-it`.
|