On 2026-10-10 Logesh Kumar Umapathi published GUI-Decisions on Hugging Face: computer-use actions/coordinates are read from fixed next-token slots instead of autoregressive JSON. On an RTX PRO 6000 with vLLM, Gemma-4-31B slot reads median ~146–158 ms/step vs ~472–546 ms native JSON (~3.5×) and ~20–25× vs thinking decode. ScreenSpot click-in-element ~0.87. Open weights for 31B/2B, GitHub, and a Spaces demo.

Key Takeaways

  • ✓Official: HF Blog (2026-10-10); code gui-decisions; Spaces demo
  • ✓Latency (vendor, RTX PRO 6000, cold shots): slot read ~146 ms vs native JSON 472–546 ms (~3.5×); with thinking 2.6–3.1 s (~20–25×)
  • ✓Quality: ScreenSpot click-in ~0.869; held-out AGUVIS steps ~0.65; RefCOCO val box IoU 0.770
  • ✓Mechanism: 256-bin byte labels for coords; read only slots the action needs; type/answer still need base decode—slots speed grounding only
  • ✓Serve: vllm serve infinitylogesh/GUI-Decisions-31B --max-logprobs 300 --api-server-count 8 then SlotModel.decide(...)
GUI-Decisions open-sourced: slot-reading replaces coordinate JSON decoding for ~3× faster computer-use grounding (31B/2B)
🖼️Official Media
Click to view high-res
🧭

Not enough VRAM? Compare cloud API and self-hosting costs

Compare 40 dev plans & simulate token costs vs $20/mo subscriptions

🔬

In-Depth Technical Analysis

Context

Computer-use steps often spend more time decoding {"action","point"} JSON than prefilling the screenshot; thinking chains push single steps into seconds. System-one decision models skip text generation for closed answers, but GUIs need continuous coordinates. GUI-Decisions (HF blog, 2026-10-10) extends slot reading to actions, points, boxes, and coarse masks—one forward pass of next-token distributions instead of writing JSON—targeting grounding latency directly.

Architecture

Fixed assistant template with placeholders; each slot’s answer is the restricted next-token distribution before the placeholder. Actions use word labels; coordinates use 256 low-semantics byte labels with peak+neighbor readout. Parallel slot requests share image prefix cache; decide reads action/x/y first, then only slots the action needs. Soft ordinal CE trains bins. Boxes = centre + log size; masks = centre + 24 rays (optionally SAM 2). Models: GUI-Decisions-31B and 2B. Type/answer still need a base text model.

Benchmarks

Author measurements (not third-party blind). RTX PRO 6000 + vLLM: slot read median ~146 ms vs native JSON 472–546 ms (~3.5×), thinking 2.6–3.1 s (~20–25×). Quality: ScreenSpot click-in ~0.869; held-out AGUVIS steps ~0.65; RefCOCO val box IoU 0.770. 2B: steps 0.626 / ScreenSpot 0.770 at ~30% of its vanilla tool-call latency. Caveat: speeds grounding only; multi-turn reasoning and typing still dominate long sessions.

Developer path

Try the Space. Clone gui-decisions, run patch_vllm.sh, serve with --max-logprobs 300 --api-server-count 8, call SlotModel.decide. For typing, also serve the base model. Check AGUVIS/Wave-UI/RefCOCO licenses before commercial use.

Action HubReady to adopt this in production?

Benchmark side-by-side against alternatives, or calculate monthly token cost vs subscription break-even.

Up NextSparseEngine: Harbin Institute of Technology Open-Sources Sparse-First Inference Engine Delivering 2.5x Faster Decoding Than vLLM for Long-Horizon Agents
Read Now→