cua-s1-4b-0.1

cua-s1-4b-0.1 is a pair of research LoRA adapters for closed-option computer-use decisions. Given a description of the current screen and a closed set of candidate (element, action) options, it selects one option. The adapters are trained on the frozen Qwen/Qwen3.5-4B base model.

This checkpoint belongs to the Cua-S1 research family. cua-s1-4b-0.2 is a separately trained checkpoint on the same base. It does not replace this repository. On the published held-out cross-dataset and live-environment evaluations, 0.2 scores higher. 0.1 scores higher only on the same-distribution multimodal split that it was trained on. Use 0.2 for new work, and use 0.1 for comparison or reproduction.

It is not a general-purpose assistant. Do not treat a result on one task family as evidence of reliability outside it.

Files

Path Contents
text/ Text adapter: adapter_config.json and adapter_model.safetensors
multimodal/ Multimodal adapter: adapter_config.json and adapter_model.safetensors
adapter_config.json, adapter_model.safetensors Root copy of the text adapter, byte-identical to text/

Both adapters use LoRA rank 16, alpha 32, and dropout 0.05, and were saved with PEFT 0.18.1. The text adapter targets the language model's attention and MLP projections. The multimodal adapter also targets the vision-merger projections (linear_fc1, linear_fc2). All weights are safetensors; this repository contains no pickle files.

Intended use

  • Research on closed-option computer-use decisions. The caller supplies the screen state and an enumerated set of candidate actions, and the model scores them.
  • Baseline and ablation comparisons against cua-s1-4b-0.2 and other Cua-S1 checkpoints on cua-bench-s1.
  • Studying failure modes, abstention, and human-oversight boundaries in isolated, controlled environments.

Out of scope

  • General-purpose or open-ended computer operation.
  • Unsupervised operation on production accounts or sensitive data.
  • Actions with financial, legal, medical, employment, safety, or other high-impact consequences.
  • Bypassing access controls, consent, rate limits, or service policies.
  • Treating a selected option, or a high probability, as proof that the action is correct, safe, or succeeded. The model chooses only among options the caller provides, so its choice says nothing about whether that option set was safe, complete, or correctly scoped.

How it works

A chat-template prompt describes the screen and lists the candidate options, each labeled with a letter. Every letter is a single tokenizer token. The model runs one forward pass, and the logits for the option letters at the final position are converted with softmax into per-option probabilities. This is closed-set selection, not open-ended generation, and it supports at most 26 options.

  • Text mode describes the screen with an accessibility tree.
  • Multimodal mode describes it with a screenshot.

The two adapters were trained independently. cua_s1.four_b.FourBModel selects text/ or multimodal/ based on the requested modality.

Training summary

Both adapters were supervised fine-tuned on the data/v1 split of the cua-bench-s1 core GUI task families: form_filling, login_auth, consent_checkbox, multi_step_submit, pagination, and search_filter. cua-bench-s1 builds these families with its synthetic generator and its converters for AndroidControl (Apache-2.0) and GUI-360 (MIT). For exact provenance, see Data sources and provenance. The training recipe is libs/cua-s1/training/train_4b.py. It applies soft-label cross-entropy over the option-letter logits, with uniform target mass across every gold option. The base model stayed frozen, and no reinforcement-learning stage was applied.

The multimodal adapter saw only the six core families' synthetic, same-distribution data. It does not generalize to out-of-distribution families such as chess or game_control. The safety_gate "finetuned" result in cua-bench-s1 comes from a separate LoRA trained on that family, which is not published here.

Evaluation

These are measured results from the cua-bench-s1 Results section:

  • Held-out cross-dataset text split: task-level accuracy of 0.167 to 0.571, depending on family.
  • Same-distribution multimodal split for the six core families (the split it was trained on): 1.000.
  • chess, on the same 15-position subset used for every model: 0.000 task accuracy.
  • game_control: 0.000 task accuracy. Neither result survives chance correction.
  • safety_gate: 0.071 zero-shot.
  • External general_decision benchmark: 0.563 zero-shot.

In local runtime smokes through the jev-use chooser (Apple M1 Ultra, mps, float16, 2026-09-25), this checkpoint failed on two of three synthetic requests in both modalities:

  • It abstained on the checked-in positive fixture, where the expected answer was submit-form.
  • It chose the wrong target on a 12-region, 8-candidate request.

The base model without an adapter passed the positive fixture. For the full table, see Verification scope and known failure modes.

Run it with the jev-use chooser

Pin both downloads. These are the revisions the Cua-S1 documentation was verified against. The adapter weights are unchanged at later revisions of this repository that change only documentation.

Artifact Revision
Qwen/Qwen3.5-4B 851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a
cua-ai/cua-s1-4b-0.1 (weights) 88d8b8a90c2da4470d005cc23ec8665a6442ebe1

From a checkout of trycua/cua, create the locked inference environment (torch 2.14.0, Transformers 5.17.0, PEFT 0.21.0), then download the weights. The base weights take about 9.3 GB and need at least 16 GB of free memory.

uv sync --frozen --project libs/cua-s1/python --python 3.12 --extra four-b
HF=libs/cua-s1/python/.venv/bin/hf
S1_MODELS="$HOME/cua-s1-models"

"$HF" download Qwen/Qwen3.5-4B \
  --revision 851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a \
  --local-dir "$S1_MODELS/Qwen3.5-4B"
"$HF" download cua-ai/cua-s1-4b-0.1 \
  --revision 88d8b8a90c2da4470d005cc23ec8665a6442ebe1 \
  --local-dir "$S1_MODELS/cua-s1-4b-0.1"

Run one decision through the jev-use closed-candidate chooser. Set S1_DEVICE=mps on Apple silicon or cuda on NVIDIA. For the multimodal adapter, set S1_MODALITY=multimodal and pass --screenshot <png> and --screenshot-capture-id <capture_id> from the same capture as the request.

export S1_BASE_MODEL_PATH="$S1_MODELS/Qwen3.5-4B"
export S1_ADAPTER_PATH="$S1_MODELS/cua-s1-4b-0.1"
export S1_DEVICE=cpu S1_DTYPE=float16 S1_MODALITY=text

libs/cua-s1/python/.venv/bin/python \
  libs/cua-driver/examples/jev-use/python/choose_decision.py --model s1 \
  < libs/cua-driver/examples/jev-use/fixtures/jev-choice-request-v1.json

The chooser prints one cua.decision_choice_v1 object. Its kind is selected, reobserve, abstain, or error, and it includes one probability per candidate. The model field names the adapter, revision, and modality, but not the base model, so record the base revision with your evidence.

To load the adapters directly in Python:

from cua_s1.four_b import FourBModel

model = FourBModel(
    base_model="/path/to/Qwen3.5-4B",
    lora_adapter_path="/path/to/cua-s1-4b-0.1",  # local directory, not a Hub ID
    modality="text",  # or "multimodal"
    device="cpu",
    dtype="float16",
)

Pass a local directory. FourBModel resolves the text/ or multimodal/ subdirectory only for local paths.

Limitations

  • It chooses only among caller-enumerated options, up to 26, and cannot propose an action outside that set.
  • Computer-use behavior can fail on unfamiliar layouts, changed interface state, ambiguous labels, localization, timing, occlusion, unexpected dialogs, or adversarial on-screen instructions.
  • A specialist checkpoint may overfit its training distribution without recognizing that a task is outside it.
  • No weights-backed CI or canonical Cua Driver desktop E2E covers this checkpoint. Inference on Linux, Windows, and CUDA has not been measured.

Run it in an isolated environment with least-privilege credentials and bounded actions. Verify outcomes independently, and require human confirmation before consequential or irreversible actions.

License

The adapter weights in this repository are licensed under Apache-2.0. This license covers only the adapters. Qwen/Qwen3.5-4B is not redistributed here: download it from Qwen's repository, where its own license governs it. The Cua-S1 source code is MIT-licensed in trycua/cua.

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

Model tree for cua-ai/cua-s1-4b-0.1

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