Instructions to use GrootTeam/Groot-280B-A16B-261023 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use GrootTeam/Groot-280B-A16B-261023 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="GrootTeam/Groot-280B-A16B-261023")# pip install -U transformers accelerate # Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("GrootTeam/Groot-280B-A16B-261023", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use GrootTeam/Groot-280B-A16B-261023 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "GrootTeam/Groot-280B-A16B-261023" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "GrootTeam/Groot-280B-A16B-261023", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/GrootTeam/Groot-280B-A16B-261023
- SGLang
How to use GrootTeam/Groot-280B-A16B-261023 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 "GrootTeam/Groot-280B-A16B-261023" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "GrootTeam/Groot-280B-A16B-261023", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'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 "GrootTeam/Groot-280B-A16B-261023" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "GrootTeam/Groot-280B-A16B-261023", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use GrootTeam/Groot-280B-A16B-261023 with Docker Model Runner:
docker model run hf.co/GrootTeam/Groot-280B-A16B-261023
Groot-280B-A16B-261023
Groot is a family of open-weight reasoning models for complex real-world tasks. The models are compact and easy to deploy, strong on reasoning and tool-using workloads, and efficient with token budgets.
Groot-280B-A16B-261023 has 280B total parameters and activates about 16B per token. It starts from DeepSeek-V4.1-Flash-1017 and is tuned for reasoning and tool-using workloads. It has the highest 16-benchmark average of any model here below 552B, ahead of the larger GLM-5.3-Flash (320B) and DeepSeek-V4-Flash-0731 (284B).
Where it runs. We release FP8 (with FP4 experts) and GGUF (UD-Q4_K_XL) weights. The device fits below are estimated from memory capacity. It runs the full 1M context entirely on GPU on 4x 96GB cards (H20, RTX PRO 6000 Blackwell), 4x H200, 8x H100 or 2x B300. Compared with DeepSeek-V4.1-Flash-1017: on 4x 96GB cards Groot runs 1M fully on GPU, while DeepSeek does not fit and needs at least 256GB of host memory for offloading.
Model size vs. capability
The chart compares total model parameters with the unweighted average across all 16 benchmarks. Smaller models appear farther left and higher average scores appear higher. Groot-280B-A16B uses 12.5% fewer total parameters than GLM-5.3-Flash and 1.4% fewer than DeepSeek-V4-Flash-0731. It averages 58.85, compared with 58.78 for GLM-5.3-Flash and 55.25 for DeepSeek-V4-Flash-0731, the highest 16-benchmark average among the models shown below 552B.
Benchmarks
Accuracy. Groot-280B-A16B-261023 beats both GLM-5.3-Flash and DeepSeek-V4-Flash-0731 on 8 of the 16 benchmarks, with the largest gaps on NL2Repo-Bench (56.71 vs 48.57 / 39.20), SWE-bench Pro (63.47 vs 57.59 / 59.37) and AutomationBench (50.61 vs 46.44 / 40.33).
Cost. On DeepSWE 1.1 it scores 64.2% pass@1 at about $0.13 per task, versus 63% at $0.24 for GLM-5.3-Flash and 53% at $0.46 for DeepSeek-V4-Flash: higher accuracy at roughly half the cost or less, because it is a smaller model.
* Each benchmark was evaluated in thinking mode at the maximum reasoning effort (reasoning_effort=100). Unless otherwise stated, sampling uses temp=1.0, top_p=0.95, and a 1M-token context window.
* Terminal-Bench 2.1: Evaluated with the Claude Code agent; max_output_tokens=128K, max_turns=500, 12h timeout; temp=1.0, top_p=0.95.
* ALE Agent: Evaluated with ale_claude on top of Claude Code 2.1.170; max_output_tokens=128K, 4h timeout (extended up to 8h for specific long-running tasks); temp=1.0, top_p=0.95.
* Toolathlon Verified: Reported as pass@1, averaged over 3 independent runs; temp=1.0, top_p=0.95.
* AutomationBench: Evaluated on AutomationBench v1.0.6; max_turns=50; temp=1.0, top_p=0.95.
* JobBench: max_tokens=200K, 600s timeout; temp=1.0, top_p=0.95.
* DeepSWE 1.1: Evaluated with the mini-SWE-agent scaffold; 11h timeout; temp=1.0, top_p=0.95.
* SWE-bench Pro: Evaluated with the SWE-agent scaffold; temp=1.0, top_p=0.95.
* NL2Repo-Bench: Evaluated with the Claude Code agent; max_turns=1000, 80K context window; temp=1.0, top_p=0.95.
* HLE (with tools): Evaluated with gpt-5.5 as the judge model; max_iterations=1000, 6h timeout, 256K context window; temp=1.0, top_p=0.95.
Model Overview
- Type: Natively multimodal Mixture-of-Experts causal language model
- Total Parameters: ~280B backbone, plus 197B Engram conditional memory and 14B of MTP and DSpark draft layers
- Activated Parameters: ~8B per token in prefill, ~16B in decode (causal encoder and decoder, as in DeepSeek-V4.1-Flash)
- Layers: 40 (20-layer causal encoder + 20-layer decoder)
- Hidden Size: 5120
- Experts: 192 routed + 1 shared, 6 routed experts activated per token
- Context Length: 1M tokens
- Precision: FP8 (32x32 block scales, UE8M0) with FP4 expert weights; a GGUF release is also available
- Multi-Token Prediction: 3 layers, plus the DSpark speculative-decoding module
The Engram memory (197B parameters, about 197 GB in FP8) is a token lookup table. It adds no activated compute and is included in the release size below.
Available editions:
| Edition | Precision | Size on disk |
|---|---|---|
Groot-280B-A16B-261023 |
FP8 + FP4 experts | 365.8 GB |
Groot-280B-A16B-261023-GGUF |
UD-Q4_K_XL | 356.2 GB |
Quickstart
Groot-280B-A16B-261023 is a mixture-of-experts model with ~280B total parameters and ~16B activated parameters per token, supporting contexts of up to one million tokens.
The model operates in thinking mode by default and supports a continuously controllable reasoning effort (integer 1 to 100) that trades inference cost for accuracy. All reported results use the maximum effort setting (reasoning_effort=100).
Recommended sampling parameters:
| Parameter | Value |
|---|---|
temperature |
1.0 |
top_p |
0.95 or 1.0 |
context_window |
1M tokens |
max_tokens |
≥ 256K |
For local deployment, we recommend
temperature=1.0,top_p=1.0.
Chat Template Options
The chat template accepts the following extra kwargs (see chat_template_jinja in config.json):
| Kwarg | Values | Default |
|---|---|---|
thinking_mode |
"thinking" | "chat" (enable_thinking is accepted as an alias) |
"thinking" |
reasoning_effort |
integer in [1, 100], or "low" | "medium" | "high" | "max" |
"high" |
drop_thinking |
true | false |
true |
The string efforts map to budgets low=50, medium=62, high=75, max=100. Assistant reasoning is read from reasoning_content (or thinking as an alias).
Serving Groot-280B-A16B-261023
vLLM
vllm serve Groot/Groot-280B-A16B-261023 \
--served-model-name Groot-280B-A16B-261023 \
--tensor-parallel-size 8 \
--max-model-len 1048576 \
--enable-auto-tool-choice \
--tool-call-parser deepseek_v41 \
--reasoning-parser deepseek_v41
SGLang
python -m sglang.launch_server \
--model Groot/Groot-280B-A16B-261023 \
--tp 8 \
--context-length 1048576 \
--reasoning-parser deepseek-v41 \
--tool-call-parser deepseekv41
For large-scale deployments, data-parallel attention can be enabled as in the DeepSeek recipes:
python -m sglang.launch_server \
--model Groot/Groot-280B-A16B-261023 \
--tp 8 --dp 8 --enable-dp-attention
Basic Usage
The Chat Completions API can be used with most inference frameworks. Before starting, make sure the SDK is installed and the API key and the API base URL are configured:
pip install -U openai
# Set the following accordingly
export OPENAI_BASE_URL="http://localhost:8000/v1"
export OPENAI_API_KEY="EMPTY"
from openai import OpenAI
# Configured by environment variables
client = OpenAI()
messages = [
{"role": "user", "content": "Write a Python function to merge two sorted linked lists."},
]
chat_response = client.chat.completions.create(
model="Groot-280B-A16B-261023",
messages=messages,
temperature=1.0,
top_p=0.95,
max_tokens=262144,
extra_body={
"chat_template_kwargs": {
"enable_thinking": True, # thinking mode; set False for non-thinking
"reasoning_effort": 100, # integer budget in [1, 100]; "low"/"medium"/"high"/"max" also accepted
"drop_thinking": True,
},
},
)
message = chat_response.choices[0].message
# reasoning_content holds the thinking trace; content holds the final answer.
print("reasoning:", getattr(message, "reasoning_content", None))
print("answer:", message.content)
Reasoning effort can also be passed as
low,high,xhigh,max, or a float in [0, 0.99], depending on the serving framework; integer budgets in [1, 100] go throughchat_template_kwargs.
Chat Template
The chat template ships with the checkpoint (chat_template.jinja, also embedded in config.json as chat_template_jinja), so messages can be encoded directly with Transformers, with no separate encoding script:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Groot/Groot-280B-A16B-261023"
tokenizer = AutoTokenizer.from_pretrained(model_name)
messages = [
{"role": "user", "content": "Write a Python function to merge two sorted linked lists."},
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
chat_template_kwargs={
"enable_thinking": True, # thinking mode; set False for non-thinking
"reasoning_effort": 100, # integer budget in [1, 100], or "low"/"medium"/"high"/"max"
},
)
model = AutoModelForCausalLM.from_pretrained(model_name, dtype="auto", device_map="auto")
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=8192, temperature=1.0, top_p=0.95)
print(tokenizer.decode(outputs[0][inputs.input_ids.shape[-1]:], skip_special_tokens=True))
Assistant reasoning is emitted inside the generated text; serving frameworks with a reasoning parser (see --reasoning-parser above) surface it in the separate reasoning_content field instead.
Citation
If you use this model in your work, please cite it as:
@misc{groot2026,
title = {Scaling Down LLMs for Broader Deployment},
author = {The Groot Team},
year = {2026},
}
- Downloads last month
- 52