Instructions to use PNPM244/linne-oak-1-0 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use PNPM244/linne-oak-1-0 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="PNPM244/linne-oak-1-0") 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)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("PNPM244/linne-oak-1-0") model = AutoModelForMultimodalLM.from_pretrained("PNPM244/linne-oak-1-0", device_map="auto") 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=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use PNPM244/linne-oak-1-0 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "PNPM244/linne-oak-1-0" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "PNPM244/linne-oak-1-0", "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/PNPM244/linne-oak-1-0
- SGLang
How to use PNPM244/linne-oak-1-0 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 "PNPM244/linne-oak-1-0" \ --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": "PNPM244/linne-oak-1-0", "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 "PNPM244/linne-oak-1-0" \ --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": "PNPM244/linne-oak-1-0", "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 PNPM244/linne-oak-1-0 with Docker Model Runner:
docker model run hf.co/PNPM244/linne-oak-1-0
linne-oak-1.0
linne-oak-1.0 is a 31B decision model. Give it a state (text, a document, JSON, a conversation or an agent trajectory) and a question with a set of options, and it returns one option together with a probability for every option, in a single forward pass.
It is the larger sibling of linne-fern-1.0: linne-fern is a 27B causal model that also chats, linne-oak is a dedicated decision model.
Highlights
- Tied #1 on the Decision Index 0.3.2 (as of 2026-10-14, 166 models): Full score 65.61, and 2nd-best on the private tasks from new domains (60.12).
- Reads the whole prompt at once: the full-attention layers attend in both directions over the prompt (sliding-window layers keep their native behavior).
- Strong across the board: knowledge, language understanding, retrieval, tools and automation.
- Agent-safe: a strong step-level guard for agents with a low false-block rate.
- Fast: one forward pass per decision; median 105 ms per request on one RTX PRO 6000 (leaderboard measurement), 63 ms on one H200.
Decision Index 0.3.2
Full score = 20% public benchmarks + 50% private tests of the same skills + 30% private tasks from new domains, all run by the leaderboard maintainers. Snapshot of 2026-10-14.
| Model | Full | Public | Private, same skills | Private, new domains |
|---|---|---|---|---|
| vLLM-SR d3 (27B) | 66.26 | 65.45 | 62.83 | 60.51 |
| linne-oak-1.0 (31B) | 65.61 | 63.94 | 62.44 | 60.12 |
| Decider 31B (NVFP4) | 64.62 | 64.27 | 61.79 | 58.32 |
| Sieve 31B | 63.81 | 62.52 | 60.89 | 58.31 |
| Perplexity Decider v1.1 (27B) | 62.75 | 62.25 | 61.10 | 55.57 |
| linne-fern-1.0 (27B) | 57.81 | 58.92 | 56.52 | 50.71 |
The private parts were run by the maintainers with our serving code; their answers agreed with our submitted run on 99.51% of the validation rows.
Training data
Fine-tuned from google/gemma-4-31B-it on decision-format data (state, question, options) covering
classification, NLI, retrieval, tool selection and agent safety, in English and Vietnamese.
The training data is not released.
Independence and Data Provenance
This model is an independently developed personal project. It is not commissioned, controlled, endorsed, or officially maintained by any company or organization. The training datasets were independently collected, curated, and constructed by the individual developer. The project does not represent the official work or position of any affiliated organization.
Usage
The prompt is one user message (chat template, thinking off): the state (compact JSON when not a string), a blank line,
Question: <instructions>, one line <label>: <name> - <description> per option, and
Answer with the letter of one option only. The answer is the softmax over the next-token logits of the option letters
(with the model's final logit soft-capping), read at the last prompt position, with the full-attention layers bidirectional.
linne_engine.py (with nc_hook.py) in this repository implements exactly this, as a Decision Index engine and as a library:
import sys
from huggingface_hub import snapshot_download
path = snapshot_download("MISA-core/linne-oak-1-0")
sys.path.insert(0, path)
from linne_engine import LinneEngine
model = LinneEngine(model=path, device="cuda:0", noncausal=True)
result, _ = model(
"My Stripe integration keeps failing. Please help ASAP.",
{"team": {"type": "choice", "instructions": "Which team should handle this request?",
"criteria": {"billing": "Charges and refunds", "technical_support": "Integration errors",
"sales": "Questions about buying a product"}}},
)
print(result["answers"]["team"]) # chosen option and a probability for every option
Run the Decision Index public suite:
PYTHONPATH=<path> python -m decision_index pipeline --engine linne_engine:LinneEngine \
--option model=<path> --option device=cuda:0 --option noncausal=1 --out runs/linne-oak-1-0
BF16 weights are about 62 GB and fit one 80 GB GPU.
License
Apache 2.0, following the base model's license.
- Downloads last month
- 17