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
README: compact pass — keep essentials, drop redundancy
Browse files
README.md
CHANGED
|
@@ -17,87 +17,61 @@ library_name: transformers
|
|
| 17 |
|
| 18 |
# Unbound E2B — *because there is no boundary*
|
| 19 |
|
| 20 |
-
> **No guarantee — use at your own risk.** This model has reduced safety
|
| 21 |
-
> and can produce harmful, false, biased, or
|
| 22 |
-
> as-is
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
team.
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
An LLM you can run on your laptop or phone that just *answers* — no API key,
|
| 33 |
-
no internet connection, no refusals. Useful for:
|
| 34 |
-
|
| 35 |
-
- **Offline use** — travel, flights, remote sites, air-gapped environments.
|
| 36 |
-
- **Security research & malware analysis** — safely discuss and reverse-engineer
|
| 37 |
-
code involving attack vectors, exploitation techniques, and other material
|
| 38 |
-
that standard models will strictly flag as harmful.
|
| 39 |
-
- **Unrestricted coding & scripting** — write scripts or utilities that
|
| 40 |
-
interact with system files, API endpoints, or anything else, without the
|
| 41 |
-
model lecturing you on ethical usage.
|
| 42 |
-
- **Content pipelines** that need direct compliance instead of a refusal layer.
|
| 43 |
-
- **Privacy-sensitive workflows** where prompts shouldn't leave the device.
|
| 44 |
-
|
| 45 |
-
Base capability is preserved close to `gemma-4-E2B-it`, so it also doubles
|
| 46 |
-
as a general-purpose 2B chat model.
|
| 47 |
|
| 48 |
## Benchmarks (vs base `gemma-4-E2B-it`)
|
| 49 |
|
| 50 |
| Axis | Base | Unbound E2B | Δ |
|
| 51 |
|---|---|---|---|
|
| 52 |
| Refusal rate (AdvBench 520) | 98.46% | **2.31%** | **−96.15 pts** |
|
| 53 |
-
| Useful-compliance rate | 0.96% |
|
| 54 |
-
| Hallucination
|
| 55 |
-
| Coherence
|
| 56 |
-
| TruthfulQA mc2 (
|
| 57 |
-
| MMLU (
|
| 58 |
-
| GSM8K (
|
| 59 |
| KL divergence vs base | 0 | 3.80 | (SFT-expected) |
|
| 60 |
|
| 61 |
-
##
|
| 62 |
-
|
| 63 |
-
Depends on what you're doing:
|
| 64 |
|
| 65 |
-
- **Creative
|
| 66 |
-
|
| 67 |
-
-
|
| 68 |
-
|
| 69 |
-
answers are sensitive to sampling noise at temperature 1.0.
|
| 70 |
-
- **llama.cpp**: pass `--jinja` for proper chat-template handling.
|
| 71 |
-
- **Gemma 4 thinking mode** is on by default. For shorter/faster replies on a
|
| 72 |
-
2B model, set `enable_thinking: false` in the chat-template kwargs.
|
| 73 |
|
| 74 |
-
Some edge-case prompts may deflect on the first ask; a re-ask
|
| 75 |
-
re-phrasing usually gets through.
|
| 76 |
|
| 77 |
-
##
|
| 78 |
-
|
| 79 |
-
The phone-deployable build lives in
|
| 80 |
-
[`evalengine/unbound-e2b-GGUF`](https://huggingface.co/evalengine/unbound-e2b-GGUF) —
|
| 81 |
-
Q4_K_M / Q6_K / Q8_0, all shipped as split multi-part files (browser-safe via
|
| 82 |
-
wllama; Ollama and llama.cpp auto-stitch on the first part):
|
| 83 |
|
| 84 |
```bash
|
|
|
|
| 85 |
ollama pull hf.co/evalengine/unbound-e2b-GGUF
|
| 86 |
ollama run hf.co/evalengine/unbound-e2b-GGUF
|
| 87 |
```
|
| 88 |
|
| 89 |
-
## Run in transformers
|
| 90 |
-
|
| 91 |
```python
|
|
|
|
| 92 |
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 93 |
model = AutoModelForCausalLM.from_pretrained("evalengine/unbound-e2b")
|
| 94 |
tok = AutoTokenizer.from_pretrained("evalengine/unbound-e2b")
|
| 95 |
```
|
|
|
|
| 96 |
## Acknowledgements
|
| 97 |
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
|
|
|
| 101 |
|
| 102 |
## License
|
| 103 |
|
|
|
|
| 17 |
|
| 18 |
# Unbound E2B — *because there is no boundary*
|
| 19 |
|
| 20 |
+
> **No guarantee — use at your own risk.** This model has reduced safety
|
| 21 |
+
> filtering and can produce harmful, false, biased, or unsafe output.
|
| 22 |
+
> Provided as-is; you are responsible for compliance with applicable laws.
|
| 23 |
+
|
| 24 |
+
Uncensored finetune of `google/gemma-4-E2B-it` by the
|
| 25 |
+
[Chromia](https://x.com/Chromia) & [Eval Engine](https://x.com/eval_engine)
|
| 26 |
+
team. Runs on a phone or laptop, no API, no refusals.
|
| 27 |
+
|
| 28 |
+
This repo holds the merged HF weights. On-device GGUF builds (Ollama,
|
| 29 |
+
llama.cpp, LM Studio, [wllama](https://github.com/ngxson/wllama) in-browser)
|
| 30 |
+
are at [`evalengine/unbound-e2b-GGUF`](https://huggingface.co/evalengine/unbound-e2b-GGUF).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
|
| 32 |
## Benchmarks (vs base `gemma-4-E2B-it`)
|
| 33 |
|
| 34 |
| Axis | Base | Unbound E2B | Δ |
|
| 35 |
|---|---|---|---|
|
| 36 |
| Refusal rate (AdvBench 520) | 98.46% | **2.31%** | **−96.15 pts** |
|
| 37 |
+
| Useful-compliance rate | 0.96% | 24.23% | +23.27 pts |
|
| 38 |
+
| Hallucination (on harmful prompts) | 1.35% | 18.85% | +17.50 pts |
|
| 39 |
+
| Coherence (benign prompts) | 1.00 | 0.80 | −0.20 |
|
| 40 |
+
| TruthfulQA mc2 (`--limit 100`) | 0.458 | 0.468 | +1.0 pt |
|
| 41 |
+
| MMLU (`--limit 100`) | 0.291 | 0.281 | −1.0 pt |
|
| 42 |
+
| GSM8K (`--limit 100`) | 0.125 | 0.140 | +1.5 pt |
|
| 43 |
| KL divergence vs base | 0 | 3.80 | (SFT-expected) |
|
| 44 |
|
| 45 |
+
## Sampling
|
|
|
|
|
|
|
| 46 |
|
| 47 |
+
- **Creative / open-ended** → Gemma defaults: `temperature=1.0, top_p=0.95, top_k=64`.
|
| 48 |
+
- **Factual / brand questions** → drop `temperature` to ~0.3–0.5 for sharper recall.
|
| 49 |
+
- llama.cpp: pass `--jinja`. Gemma 4 thinking mode is on by default — set
|
| 50 |
+
`enable_thinking: false` in chat-template kwargs for shorter replies.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
|
| 52 |
+
Some edge-case prompts may deflect on the first ask; a re-ask usually gets through.
|
|
|
|
| 53 |
|
| 54 |
+
## Use
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
|
| 56 |
```bash
|
| 57 |
+
# on-device (GGUF)
|
| 58 |
ollama pull hf.co/evalengine/unbound-e2b-GGUF
|
| 59 |
ollama run hf.co/evalengine/unbound-e2b-GGUF
|
| 60 |
```
|
| 61 |
|
|
|
|
|
|
|
| 62 |
```python
|
| 63 |
+
# transformers
|
| 64 |
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 65 |
model = AutoModelForCausalLM.from_pretrained("evalengine/unbound-e2b")
|
| 66 |
tok = AutoTokenizer.from_pretrained("evalengine/unbound-e2b")
|
| 67 |
```
|
| 68 |
+
|
| 69 |
## Acknowledgements
|
| 70 |
|
| 71 |
+
Fine-tuned with [Unsloth](https://github.com/unslothai/unsloth) + HF
|
| 72 |
+
[TRL](https://github.com/huggingface/trl). Abliteration via
|
| 73 |
+
[heretic](https://github.com/p-e-w/heretic). Environment + training
|
| 74 |
+
discipline ported from [autoresearch](https://github.com/karpathy/autoresearch).
|
| 75 |
|
| 76 |
## License
|
| 77 |
|