TernaryPilot v1 (deprecated) · computer & browser use for Ternary-Bonsai-2-9B

The first version: click, act and read on Windows and the web, trained on a single GTX 1080 with 8 GB.

deprecated llama.cpp trained on GitHub

By Adrian Ciprian Iancu · GitHub · Hugging Face · LinkedIn

DEPRECATED: use TernaryPilot v2

Deprecated: TernaryPilot v2 is out. Use adriandj3/TernaryPilot-v2-Computer-Browser-Use-LoRA: same prompts and API (drop-in), trained from scratch on 60,516 examples (GUI-360, AgentNet Windows and macOS, Mind2Web). This page stays for reproducibility and for the GTX 1080 training story.

Results against the base model

TernaryPilot v1 against the base model on four GUI tests

Full tables in Original results below.

v1 and v2 on public benchmarks

Same server, same cases, greedy, images at 1024 tokens.

benchmark cases base model v1 v2
ScreenSpot-v2 1,272 46.5% 80.5% 60.7%
ScreenSpot-v2, desktop + web only 771 37.0% 78.6% 71.5%
ScreenSpot-Pro 423 1.7% 6.4% 11.1%
GUI-360 grounding 2,000 16.9% 42.2% 66.4%
GUI-360 actions 1,192 0.5% 17.3% 42.2%

v1 is still ahead on ScreenSpot-v2, whose targets are short element names: its training had dedicated grounding sets of that kind (ShowUI, Wave-UI, GroundCUA). v2 is ahead on professional apps, Office grounding and multi-step actions.

The machine had a fixed stop time, so some runs were cut before the end. ScreenSpot-Pro ran the first 423 of 1,581 cases in the benchmark's file order, which goes application by application, so later applications are missing (not a random sample); GUI-360 actions ran 1,192 of its 2,000 sampled cases, asked in random order, so they are a random subset.

Pick a file

file for size what it is
TernaryPilot-v1-Ternary-Bonsai-2-9B-LoRA-F16.gguf llama.cpp (PrismML fork) --lora 80 MB rank 16, alpha 32, F16

What it can do

Skill You give it It answers
Click grounding a screenshot and a target ("save file", "the Donate link") {"x": 512, "y": 233} on a 0-1000 grid
Next action a task, the actions done so far, the current screen a short thought and one action: click(x=, y=), write("..."), press("enter"), hotkey("ctrl+s"), scroll(-3), done() ...
Multi step tasks the same, step after step the next step, keeping track of the history
Screen reading a screenshot which app or site is open, its state and the important text

Original results (GTX 1080)

Measured on a GTX 1080 with the PrismML llama.cpp fork, greedy decoding, images at 1024 tokens. None of the evaluation screenshots were used in training (also filtered out of the training pool by perceptual hash).

Click grounding Base model My earlier grounding LoRA v1
ScreenSpot-v2, 200 case stratified subset 80 / 200 153 / 200 156 / 200
Real Windows apps in Italian, 37 targets with UI Automation boxes 2 / 37 13 / 37 15 / 37
Real web pages, 210 targets with DOM boxes 28 / 210 99 / 210 101 / 210

Agent actions on 145 held-out steps (85 Windows steps from AgentNet tasks never seen in training, 60 web steps from Mind2Web). Right = same action type and, for actions with coordinates, within 40 units of the true point on the 0-1000 grid.

Base model Earlier grounding LoRA v1
Right actions 7 / 145 28 / 145 67 / 145
Windows 7 / 85 15 / 85 41 / 85
Web 0 / 60 13 / 60 26 / 60
Answers in the expected format 131 / 145 93 / 145 145 / 145

With the adapter at scale 0 outside GUI requests, 12 out of 12 chat prompts give the exact same greedy output as the base model.

How to use it

Same as v2 (see its card): the PrismML fork of llama.cpp, the base model and vision projector from prism-ml/Ternary-Bonsai-2-9B-gguf.

llama-server -m Ternary-Bonsai-2-9B-PQ2_0-MTP-Q8_0.gguf \
  --mmproj Ternary-Bonsai-2-9B-mmproj-Q8_0.gguf \
  --lora-scaled TernaryPilot-v1-Ternary-Bonsai-2-9B-LoRA-F16.gguf:0 \
  --image-max-tokens 1024 -ngl 999 -fa on --jinja -c 16384 --parallel 2

Turn it on per request with "lora": [{"id": 0, "scale": 1}], "temperature": 0, "presence_penalty": 0, and give GUI requests their own slot ("id_slot": 1). The click, action and screen-reading prompts are on the v2 card and did not change.

How I trained it

  • Hardware: one NVIDIA GTX 1080 (Pascal, 8 GB, fp32 only, no bf16, no flash attention, no Triton).
  • Method: Ternary-Bonsai-2-9B rebuilt exactly in PyTorch from the PQ2_0 GGUF, checked against llama.cpp, LoRA on top of the frozen ternary weights, exported in the GGUF LoRA format.
  • Speed work: my CUDA kernel that unpacks the ternary weights in one pass, the 4096 Hadamard rotation as two 64x64 factors, one shared image prefix for several targets of the same screenshot: from 20.2 to about 6 to 9 s per example.
  • Run: rank 16, alpha 32, AdamW lr 1e-4, 5.5 hours, about 2,100 examples seen, starting from my earlier grounding LoRA.
  • Data: 4,251 examples on 2,079 screenshots: AgentNet Windows actions, clicks and screen reading (MIT), Multimodal-Mind2Web actions and clicks (OpenRAIL), ShowUI-desktop, Wave-UI and GroundCUA clicks.

Full kit and write-up: bonsai2-ternary-pascal/lora-training. Why a LoRA is needed at all (the ternary weights cost most of the pixel-click skill: Qwen3.5-9B 36/38, Ternary Bonsai 19/38 on the same cases): docs/ternary-gui-grounding.md.

Limitations

  • Superseded by v2. It saw about half of its small dataset once.
  • No safety layer: keep a human in the loop for anything that deletes, buys or sends.
  • Responsible use: part of the data comes from Multimodal-Mind2Web under an OpenRAIL license.

Citation

@misc{iancu2026ternarypilot,
  author       = {Iancu, Adrian Ciprian},
  title        = {TernaryPilot v1: a computer use and browser use LoRA for Ternary-Bonsai-2-9B},
  year         = {2026},
  publisher    = {Hugging Face},
  howpublished = {\url{https://huggingface.co/adriandj3/TernaryPilot-v1-Computer-Browser-Use-LoRA}}
}

Thanks to PrismML for Ternary Bonsai and the llama.cpp fork, the OpenCUA team for AgentNet, OSU NLP for Mind2Web, Show Lab for ShowUI, AgentSea for Wave-UI and ServiceNow for GroundCUA.

Keywords: computer use, browser use, GUI agent, web agent, GUI grounding, LoRA, GGUF, llama.cpp, ternary, 1.58-bit, Bonsai, Qwen3.5, ScreenSpot, AgentNet, Mind2Web, Windows automation, local AI, low VRAM, GTX 1080

Downloads last month
47
GGUF
Model size
40.1M params
Architecture
qwen35
Hardware compatibility
Log In to add your hardware

16-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for adriandj3/TernaryPilot-v1-Computer-Browser-Use-LoRA

Finetuned
Qwen/Qwen3.5-9B
Adapter
(5)
this model

Datasets used to train adriandj3/TernaryPilot-v1-Computer-Browser-Use-LoRA