Instructions to use Uniphore/uniphore-4b-decider with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Uniphore/uniphore-4b-decider with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Uniphore/uniphore-4b-decider") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("Uniphore/uniphore-4b-decider") model = AutoModelForCausalLM.from_pretrained("Uniphore/uniphore-4b-decider", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.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=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Uniphore/uniphore-4b-decider with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Uniphore/uniphore-4b-decider" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Uniphore/uniphore-4b-decider", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Uniphore/uniphore-4b-decider
- SGLang
How to use Uniphore/uniphore-4b-decider 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 "Uniphore/uniphore-4b-decider" \ --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": "Uniphore/uniphore-4b-decider", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'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 "Uniphore/uniphore-4b-decider" \ --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": "Uniphore/uniphore-4b-decider", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Uniphore/uniphore-4b-decider with Docker Model Runner:
docker model run hf.co/Uniphore/uniphore-4b-decider
Uniphore-4B-Decider — experimental
Merged text-only Qwen3.5-4B model, fine-tuned with LoRA for bounded decisions. This repository is an experimental evaluation handoff, not an official JevBench result. It does not include the original Qwen vision encoder. Do not load it as a multimodal model.
Inference
Use Qwen3_5ForCausalLM directly. This is a full merged checkpoint: do NOT
wrap it with PeftModel or load its original LoRA again.
Native readout is a single causal forward pass, not text generation.
The supplied script preserves the decision prompt, thinking-disabled chat template,
single-token uppercase option encoding, and softmax restricted to supplied options.
Dependencies and exact installed versions are recorded in runtime_versions.json.
Use a compatible CUDA/BF16 environment; historical experiments used an NVIDIA L40S.
Optimized causal-conv1d and flash-linear-attention kernels must match the PyTorch/CUDA ABI.
Installing versions alone does not guarantee binary compatibility.
After downloading this repository's code:
python inference.py --model Uniphore/uniphore-4b-decider \
--revision SUBMISSION_COMMIT --input example.json
Use the commit after the documentation/calibration upload as SUBMISSION_COMMIT. For a private repository, authenticate with an authorized Hugging Face account first.
Python entry points:
from inference import DecisionModel
model = DecisionModel('Uniphore/uniphore-4b-decider', revision='SUBMISSION_COMMIT')
result = model.predict(state, question, options)
# Original benchmark task schema: state, question={type,instructions,criteria}, labels
result = model.predict_jev_task(task)
predict_jev_task preserves the provided label order and ignores answer keys and
provenance. It maps Noul labels and criteria, Choice labels and descriptions, and
Score levels and descriptions the same way as the historical public-set evaluator.
It is a Python adapter, NOT a hosted TypeSafe endpoint or an automatic benchmark submission.
Maintainers may integrate this entry point with their current harness.
Maximum input length in this wrapper: 16,384 tokenizer tokens, including prompt and options. Over-limit requests raise an error; no silent truncation. This is an evaluation setting, not a claim of validated quality at Qwen's native maximum context. Use one request at a time for single-request latency measurements. Compilation and warm-up costs should be disclosed separately. Batch-amortized time is not request latency.
Probability and score semantics
Checkpoint-specific temperature scaling is read from temperatures.json; empty
configuration means T=1. Positive scalar temperatures preserve each row's argmax.
Historical public JevBench evaluation selected binary/choice temperatures by option
count, including Score questions; the supplied task adapter preserves that behavior.
For ordinary ordinal-score input, predict(..., kind='score') is available.
Score-level probabilities are decision weights, not validated empirical outcome probabilities.
Do not silently replace the prompt, option ordering, tokenizer or scoring method.
Reported development results and disclosure
The author reported 177/231 correct (76.62%) for a Qwen3.5-4B SFT run on a custom
public-only JevBench evaluation: easy 48/48, original 68/72, hard 61/111.
These are historical development results, NOT an independent verification of this
uploaded merged checkpoint and NOT an official leaderboard capability/composite score.
Public benchmark code/data revision used by that evaluator:
bb05a335bc809e61b20c0f745d25499a82b326fc in fstandhartinger/jevbench.
The public benchmark was repeatedly inspected during model development. Reported training sources in this project included CAD, CLINC150, ContractNLI, PAWS, ProofWriter, ShARC and enterprise RAG decision examples. Multiple data mixtures were explored. The exact mixture for this checkpoint must be confirmed from its training manifest before making a stronger training-data/non-contamination claim. No training examples are distributed with this submission package.
Access and licensing
Repository visibility and evaluation access are controlled by Uniphore. A private URL alone does not grant benchmark maintainers access. Coordinate access or an authenticated serving endpoint before evaluation. Base-model terms are available at https://huggingface.co/Qwen/Qwen3.5-4B . No new redistribution license for Uniphore's trained weights is granted by this draft model card; obtain the organization's approved license/access terms before public distribution. Review this card before publication.
- Downloads last month
- 19