Instructions to use evalengine/unbound-e4b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use evalengine/unbound-e4b with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="evalengine/unbound-e4b") 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-e4b") model = AutoModelForImageTextToText.from_pretrained("evalengine/unbound-e4b") 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-e4b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "evalengine/unbound-e4b" # 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-e4b", "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-e4b
- SGLang
How to use evalengine/unbound-e4b 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-e4b" \ --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-e4b", "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-e4b" \ --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-e4b", "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-e4b with Docker Model Runner:
docker model run hf.co/evalengine/unbound-e4b
README: compact pass — keep essentials, drop redundancy
Browse files
README.md
CHANGED
|
@@ -17,28 +17,19 @@ library_name: transformers
|
|
| 17 |
|
| 18 |
# Unbound E4B — *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 |
-
> use it and for complying with all applicable laws.
|
| 24 |
|
| 25 |
-
Uncensored
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
[`evalengine/unbound-e4b-GGUF`](https://huggingface.co/evalengine/unbound-e4b-GGUF).
|
| 31 |
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
coding / private workflows — but trading ~2× the parameters (and ~2× the
|
| 36 |
-
on-disk size) for noticeably stronger capability. Pick E4B when you have the
|
| 37 |
-
RAM / VRAM headroom and want a sharper on-device model; pick E2B when you
|
| 38 |
-
need to fit on a phone or a constrained edge device.
|
| 39 |
-
|
| 40 |
-
Base capability is preserved close to `gemma-4-E4B-it`, so it also doubles
|
| 41 |
-
as a general-purpose ~4B chat model.
|
| 42 |
|
| 43 |
## Benchmarks (vs base `gemma-4-E4B-it`)
|
| 44 |
|
|
@@ -46,48 +37,34 @@ as a general-purpose ~4B chat model.
|
|
| 46 |
|---|---|---|---|
|
| 47 |
| Refusal rate (AdvBench 520, LLM judge) | 98.08% | **2.69%** | **−95.4 pts** |
|
| 48 |
| Useful-compliance rate | 0.96% | **43.46%** | +42.5 pts |
|
| 49 |
-
| Hallucination
|
| 50 |
-
| Coherence
|
| 51 |
-
| TruthfulQA mc2 (
|
| 52 |
-
| MMLU (
|
| 53 |
-
| GSM8K (
|
| 54 |
-
| SimpleQA correct rate | — | 2.0% | (post-abliteration: model rarely declines) |
|
| 55 |
| KL divergence vs base | 0 | 2.99 | (SFT-expected) |
|
| 56 |
|
| 57 |
-
**
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
rate is essentially the same (~2.7%).
|
| 61 |
-
|
| 62 |
-
## Recommended sampling
|
| 63 |
|
| 64 |
-
|
| 65 |
-
`temperature=1.0, top_p=0.95, top_k=64`.
|
| 66 |
-
- **Factual or brand/identity questions** → drop `temperature` to ~0.3–0.5
|
| 67 |
-
for sharper recall.
|
| 68 |
-
- **llama.cpp**: pass `--jinja` for proper chat-template handling.
|
| 69 |
-
- **Gemma 4 thinking mode** is on by default. Set `enable_thinking: false`
|
| 70 |
-
in the chat-template kwargs for shorter/faster replies.
|
| 71 |
|
| 72 |
-
|
| 73 |
-
|
|
|
|
|
|
|
| 74 |
|
| 75 |
-
##
|
| 76 |
-
|
| 77 |
-
Q4_K_M / Q6_K / Q8_0 split files at
|
| 78 |
-
[`evalengine/unbound-e4b-GGUF`](https://huggingface.co/evalengine/unbound-e4b-GGUF) —
|
| 79 |
-
note that E4B's per-layer-input embedding tensor exceeds 2 GB in every quant
|
| 80 |
-
we ship, so these are **desktop runtimes only** (no wllama). For an
|
| 81 |
-
in-browser build use [`evalengine/unbound-e2b-GGUF`](https://huggingface.co/evalengine/unbound-e2b-GGUF).
|
| 82 |
|
| 83 |
```bash
|
|
|
|
| 84 |
ollama pull hf.co/evalengine/unbound-e4b-GGUF
|
| 85 |
ollama run hf.co/evalengine/unbound-e4b-GGUF
|
| 86 |
```
|
| 87 |
|
| 88 |
-
## Run in transformers
|
| 89 |
-
|
| 90 |
```python
|
|
|
|
| 91 |
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 92 |
model = AutoModelForCausalLM.from_pretrained("evalengine/unbound-e4b")
|
| 93 |
tok = AutoTokenizer.from_pretrained("evalengine/unbound-e4b")
|
|
@@ -95,9 +72,10 @@ tok = AutoTokenizer.from_pretrained("evalengine/unbound-e4b")
|
|
| 95 |
|
| 96 |
## Acknowledgements
|
| 97 |
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
|
|
|
| 101 |
|
| 102 |
## License
|
| 103 |
|
|
|
|
| 17 |
|
| 18 |
# Unbound E4B — *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-E4B-it` by the
|
| 25 |
+
[Chromia](https://x.com/Chromia) & [Eval Engine](https://x.com/eval_engine)
|
| 26 |
+
team — the larger sibling of [`evalengine/unbound-e2b`](https://huggingface.co/evalengine/unbound-e2b).
|
| 27 |
+
~2× the parameters of E2B, noticeably stronger on knowledge + reasoning, still
|
| 28 |
+
fits on a modern laptop.
|
|
|
|
| 29 |
|
| 30 |
+
This repo holds the merged HF weights. On-device GGUF builds (Ollama,
|
| 31 |
+
llama.cpp, LM Studio, [wllama](https://github.com/ngxson/wllama) in-browser)
|
| 32 |
+
are at [`evalengine/unbound-e4b-GGUF`](https://huggingface.co/evalengine/unbound-e4b-GGUF).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
|
| 34 |
## Benchmarks (vs base `gemma-4-E4B-it`)
|
| 35 |
|
|
|
|
| 37 |
|---|---|---|---|
|
| 38 |
| Refusal rate (AdvBench 520, LLM judge) | 98.08% | **2.69%** | **−95.4 pts** |
|
| 39 |
| Useful-compliance rate | 0.96% | **43.46%** | +42.5 pts |
|
| 40 |
+
| Hallucination (on harmful prompts) | 1.35% | 14.81% | +13.5 pts |
|
| 41 |
+
| Coherence (benign prompts) | 1.00 | 1.00 | 0 |
|
| 42 |
+
| TruthfulQA mc2 (`--limit 100`) | 0.439 | 0.482 | +4.3 pt |
|
| 43 |
+
| MMLU (`--limit 100`, 61 subtasks avg) | ~0.425 | 0.389 | −3.6 pt |
|
| 44 |
+
| GSM8K (flexible-extract) | 0.74 (`--limit 200`) | 0.60 (`--limit 100`) | regression mostly limit-noise |
|
|
|
|
| 45 |
| KL divergence vs base | 0 | 2.99 | (SFT-expected) |
|
| 46 |
|
| 47 |
+
**vs Unbound E2B (current ship):** +19 pp useful-compliance, −7 pp
|
| 48 |
+
hallucination, **3.3× the GSM8K math score**, cleaner KL (2.99 vs 3.80).
|
| 49 |
+
Refusal rate is essentially the same (~2.7%).
|
|
|
|
|
|
|
|
|
|
| 50 |
|
| 51 |
+
## Sampling
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
|
| 53 |
+
- **Creative / open-ended** → Gemma defaults: `temperature=1.0, top_p=0.95, top_k=64`.
|
| 54 |
+
- **Factual / brand questions** → drop `temperature` to ~0.3–0.5.
|
| 55 |
+
- llama.cpp: pass `--jinja`. Gemma 4 thinking mode is on by default — set
|
| 56 |
+
`enable_thinking: false` in chat-template kwargs for shorter replies.
|
| 57 |
|
| 58 |
+
## Use
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
|
| 60 |
```bash
|
| 61 |
+
# on-device (GGUF)
|
| 62 |
ollama pull hf.co/evalengine/unbound-e4b-GGUF
|
| 63 |
ollama run hf.co/evalengine/unbound-e4b-GGUF
|
| 64 |
```
|
| 65 |
|
|
|
|
|
|
|
| 66 |
```python
|
| 67 |
+
# transformers
|
| 68 |
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 69 |
model = AutoModelForCausalLM.from_pretrained("evalengine/unbound-e4b")
|
| 70 |
tok = AutoTokenizer.from_pretrained("evalengine/unbound-e4b")
|
|
|
|
| 72 |
|
| 73 |
## Acknowledgements
|
| 74 |
|
| 75 |
+
Fine-tuned with [Unsloth](https://github.com/unslothai/unsloth) + HF
|
| 76 |
+
[TRL](https://github.com/huggingface/trl). Abliteration via
|
| 77 |
+
[heretic](https://github.com/p-e-w/heretic). Environment + training
|
| 78 |
+
discipline ported from [autoresearch](https://github.com/karpathy/autoresearch).
|
| 79 |
|
| 80 |
## License
|
| 81 |
|