Instructions to use arcbright/elf-1-12b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use arcbright/elf-1-12b with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="arcbright/elf-1-12b")# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("arcbright/elf-1-12b") model = AutoModelForMultimodalLM.from_pretrained("arcbright/elf-1-12b", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Elf 1 12B
Elf 1 12B is a decision model from Arcbright, fine-tuned from google/gemma-4-12B-it.
Given a state and typed questions, it returns a probability for every option of every question in one forward pass,
without generating text. It serves the /v1/systemone format used by the
Decision Index.
| Base model | google/gemma-4-12B-it |
| Parameters | 12.0B (bf16 checkpoint) |
| Context | 40,960 tokens per request; a longer request is refused (422), never truncated |
| Input | text (the base model's vision weights are kept but not used) |
| Questions | choice (up to 255 options), noul (yes/no), score (up to 10 levels) |
| Serving | vLLM 0.30.0, bf16 on one GPU (tested on a 96 GB RTX PRO 6000) |
Usage
Start the server (bf16 on one GPU, tested on a 96 GB RTX PRO 6000, vLLM 0.30.0):
hf download arcbright/elf-1-12b --local-dir elf-1-12b && cd elf-1-12b
pip install ./serve
python -m elf_serve
Send a request (examples/request.json):
curl -s http://127.0.0.1:8000/v1/systemone \
-H 'Content-Type: application/json' \
-d @examples/request.json
{
"state": {
"ticket": "Payment page returns a 500 error for every card payment since 09:00."
},
"questions": {
"severity": {
"type": "choice",
"instructions": "How severe is this ticket?",
"criteria": {
"low": "Cosmetic or minor, no customer impact",
"medium": "Some customers affected, workaround exists",
"high": "Many customers affected, no workaround"
}
},
"escalate": {
"type": "noul",
"instructions": "Should this ticket be escalated to the on-call engineer?"
},
"urgency": {
"type": "score",
"instructions": "Rate the urgency from 0 to 3.",
"criteria": [
"Can wait a week",
"Handle this week",
"Handle today",
"Handle immediately"
]
}
}
}
Response (values are illustrative):
{
"model": "arcbright/elf-1-12b",
"answers": {
"severity": {
"type": "choice",
"choice": "high",
"probabilities": {
"low": 0.01,
"medium": 0.07,
"high": 0.92
},
"confidence": 0.88
},
"escalate": {
"type": "noul",
"noul": 0.91
},
"urgency": {
"type": "score",
"score": 2.8,
"legend": {
"0": "Can wait a week",
"1": "Handle this week",
"2": "Handle today",
"3": "Handle immediately"
},
"probabilities": {
"0": 0.0,
"1": 0.03,
"2": 0.14,
"3": 0.83
},
"confidence": 0.7
}
},
"usage": {
"input_tokens": 910,
"output_tokens": 3,
"unique_input_tokens": 420
}
}
type |
criteria |
Answer |
|---|---|---|
choice |
{option: description}, up to 255 options |
choice, probabilities, confidence |
noul |
optional {"true": ..., "false": ...} |
noul: P(yes) |
score |
list of up to 10 level descriptions | score (expected level), probabilities, legend, confidence |
The repo's decision_config.json is the configuration of the Decision Index run.
Server options are in serve/README.md.
Results
| Decision Index 0.3 | Elf 1 31B | Elf 1 12B | Jev 1.14 |
|---|---|---|---|
| Public index | 61.08 | 58.35 | 60.70 |
| Full score | pending | pending | 61.53 |
| Median latency, one request at a time (1x RTX PRO 6000) | 84 ms (FP8) | 54.5 ms (bf16) |
Elf numbers are our runs of the Decision Index kit on its public part; re-scoring the uploaded results reproduces them (arcbright/elf-decision-index). Jev 1.14 is from the board (0.3.2, data of 2026-10-16). The Full score adds private tests that the board maintainers run. The 12B was trained on the train splits of more Decision Index benchmarks than the 31B (see Training).
Training
Fine-tuned from google/gemma-4-12B-it with one LoRA adapter on the attention and MLP layers, merged into the bf16 weights, on 84,470 rows from the public datasets listed in the metadata and our own
generators. Training includes the train splits of ten Decision Index benchmarks (HoVer, WinoGrande, When2Call, GSM8K, BANKING77, CLINC150,
ChessBench, Amazon ESCI, ContractNLI, Habermas Machine) and generated rows in the format of five more. All training data was screened for overlap with Decision Index test items.
Limitations
- English only.
- Not evaluated for decisions about people (credit, hiring, housing, medical, legal). Keep a human in the loop.
Citation
@misc{arcbright2026elf1_12b,
title = {Elf 1 12B},
author = {{Arcbright}},
year = {2026},
howpublished = {\url{https://huggingface.co/arcbright/elf-1-12b}}
}
License
Apache-2.0, like the base model.
- Downloads last month
- -