Feature Extraction
Transformers
Safetensors
pivot
decision-making
classification
scoring
custom_code
Instructions to use Q1z/Pivot with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Q1z/Pivot with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("feature-extraction", model="Q1z/Pivot", trust_remote_code=True)# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("Q1z/Pivot", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
File size: 5,574 Bytes
2d8be88 14bf8c2 2d8be88 14bf8c2 2d8be88 14bf8c2 2d8be88 14bf8c2 2d8be88 7c85c7e 2d8be88 7c85c7e 2d8be88 7c85c7e 2d8be88 7c85c7e 2d8be88 7c85c7e 2d8be88 7c85c7e 14bf8c2 7c85c7e 2d8be88 7c85c7e | 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 95 96 97 | ---
library_name: transformers
pipeline_tag: feature-extraction
base_model: LiquidAI/LFM2.5-Encoder-350M
tags:
- pivot
- decision-making
- classification
- scoring
- custom_code
---
# Pivot
### Fast closed-set decisions from context and candidate actions
Pivot is a **357.6M-parameter** bidirectional decision encoder. Give it a context and two or more candidate answers; it scores the set in one forward pass and returns the chosen answer, its position, and a probability for every candidate. It does not generate free-form text. The full FP32 checkpoint, tokenizer and Transformers custom runtime are stored in this model repository.
| Measured result | Pivot |
|---|---:|
| JevBench v1.4.1 public accuracy | **46.32%** (107 / 231) |
| NVIDIA H200 warm single-decision p50 / p95 | **15.8 / 19.9 ms** |
| NVIDIA H200 throughput, batch 32 | **545.3 decisions/s** |
| 4-thread Xeon CPU warm single-decision p50 / p95 | **797.6 / 1,089.0 ms** |
| 4-thread Xeon CPU throughput, batch 4 | **3.77 decisions/s** |
These are measurements on the pinned checkpoint, in FP32, including tokenization and scoring. GPU and CPU throughput used **different batch sizes**. The 46.32% figure is public-task accuracy; the **official JevBench v1.4 composite score has not been measured** because the sealed/judge portion and cost input are unavailable. [Protocol and limitations](docs/BENCHMARK.md) · [Full measurement details](docs/PERFORMANCE.md)

## Start with one decision
Install a suitable PyTorch build and the runtime packages:
```bash
python -m pip install "transformers==5.17.0" "safetensors==0.8.0"
```
```python
import torch
from transformers import AutoModel, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Q1z/Pivot", trust_remote_code=True)
model = AutoModel.from_pretrained(
"Q1z/Pivot", trust_remote_code=True, dtype=torch.float32
).eval()
context = "CONTEXT:\nA customer disputes an invoice and asks for a correction."
options = [
"route to billing support",
"route to technical support",
"route to sales",
]
decision = model.choose(tokenizer, context, options)
print(decision) # {"choice": ..., "index": ..., "probs": [...]}
```
The serving configuration now defaults to **512 context tokens and 128 option tokens**, matching the published public evaluation. It does not change the checkpoint weights. Run on CUDA with `model.to("cuda")` if your PyTorch build supports it. Review the repository's custom model code before enabling `trust_remote_code=True`.
## Three ways to use Pivot
| Method | Input | Output |
|---|---|---|
| `model.choose(tokenizer, context, options)` | Context and ordered answer strings | Chosen answer, index, probability vector |
| `model.decide_native(tokenizer, context, candidates)` | Candidate IDs, semantic text, optional abstain action | Selected ID, relative confidence, per-candidate probabilities |
| `model.decide(tokenizer, state, questions)` | Several typed choice / yes-no / score questions | Typed decision response |
For repeated decisions using the same options, `encode_candidates`, `encode_context`, and `choose_cached` reuse candidate representations. This can avoid repeated candidate encoding; the measured throughput above uses the **uncached** path. Examples: [basic](examples/quickstart.py), [structured decisions](examples/native_decision.py), [cached candidates](examples/cached_candidates.py), and [full inference guide](docs/INFERENCE.md).
Pivot's probabilities are **relative to the supplied candidate set**. Give each candidate a clear, distinct meaning. An abstain route must be an explicit candidate; a high relative probability alone does not establish real-world correctness or safety.
## Evaluated performance
The official JevBench v1.4.1 **public tasks** were scored with the official per-task scorer at commit `24b9b5c1609a7a9e8fa14f49e5985a836c9dc842`. The exact evaluated model commit was `14bf8c26bf344ebdf88e22a4b6152dc5f75f3578`.
| Public tier | Correct / tasks | Accuracy | ECE, 10 bins |
|---|---:|---:|---:|
| Original | 27 / 72 | 37.50% | 0.525 |
| Easy | 39 / 48 | 81.25% | 0.114 |
| Hard | 41 / 111 | 36.94% | 0.379 |
| **All public tasks** | **107 / 231** | **46.32%** | — |
The frozen evaluation format is a `CONTEXT:` prefix, task rubric descriptions where provided (otherwise humanized labels) in official label order, right truncation, 512 context tokens and 128 option tokens. Public accuracy is not an official leaderboard score. [Reproduce public results](benchmarks/README.md) or [run the CPU speed entry point](cpu-speed/README.md). The [CPU notebook](notebooks/Pivot_CPU_Speed.ipynb) provides an interactive alternative.
## Repository guide
- [Inference methods and examples](docs/INFERENCE.md)
- [Serving interfaces and request formats](serving/README.md)
- [JevBench protocol, revision, and score scope](docs/BENCHMARK.md)
- [Results, hardware, charts, and caveats](docs/PERFORMANCE.md)
- [Reproducible public benchmark script](benchmarks/jevbench_public.py)
- [Standalone CPU speed script](cpu-speed/benchmark.py)
- [Pinned result files and chart](evaluation/2026-09-24/README.md)
- [What changed in this update](docs/UPDATE_NOTES.md)
The files `model.safetensors`, `modeling_pivot.py`, `modeling_lfm2_bidirectional.py`, `pivot_model.py` and `pivot_infer.py` contain the checkpoint and model runtime. [Package manifest](manifest.json) records file hashes. The original checkpoint and evaluated metrics remain anchored to the exact revision above.
|