CoolFace
Datasetpublic

cua-lite/Lite.ScaleCUA

cua-lite/Lite.ScaleCUA Lite.ScaleCUA grounded teacher trajectories collected on ScaleCUA's OSWorld tasks and judges via the cua-lite lite.scalecua runtime, from two teachers published as separate configs (*.gpt5_5 from gpt-5.5, *.qwen3_8_27b from Qwen/Qwen3.8-27B) and annotated by the same quality pass; ordinary quality gates tagged in metadata.others.exclude_reason, publish-invalid tool leaks/OOB coordinates hard-dropped (filter with not exclude_reason and episode_return>0.5)… See the full description on the dataset page: https://huggingface.co/datasets/cua-lite/Lite.ScaleCUA.

sourceHugging Faceotherupdated 10d agoView on Hugging Face
1likes2.8kdownloads
Dataset Card

cua-lite/Lite.ScaleCUA

Lite.ScaleCUA grounded teacher trajectories collected on ScaleCUA's OSWorld tasks and judges via the cua-lite lite.scalecua runtime, from two teachers published as separate configs (*.gpt5_5 from gpt-5.5, *.qwen3_8_27b from Qwen/Qwen3.8-27B) and annotated by the same quality pass; ordinary quality gates tagged in metadata.others.excludereason, publish-invalid tool leaks/OOB coordinates hard-dropped (filter with not excludereason and episode_return>0.5)

Origin

Load via datasets

python
from datasets import load_dataset

# entire dataset
ds = load_dataset("cua-lite/Lite.ScaleCUA")

# just one named subset (config)
ds = load_dataset("cua-lite/Lite.ScaleCUA", "desktop.use.rl.gpt5_5")

After loading, parse metadata as JSON before filtering by metadata_kind, dims, or others.*; every row carries a rich metadata object inside that JSON string (see schema below). CUA rows use dims == [platform, task_type].

Schema

Published parquet columns:

columntypenotes
imageslist[Image]embedded PNG/JPEG bytes; HF viewer renders thumbnails
messagesstring (JSON array)parse as JSON to OpenAI-style turns with role, structured content, nested tool_calls, and role:"tool" results
metadatastring (JSON object)parse as JSON to fields metadata_kind, dims, extra_tool_schemas, CUA-only valid_actions, and others
_foldedstring (JSON array, optional)folded grounding/understanding rows only; authoritative per-instruction messages / metadata members

Coordinate values in messages are normalized to [0, 1000] integers. The JSON examples below show the decoded shape, not the raw string cell.

metadata.extra_tool_schemas[*] uses the nested Chat Completions function-tool declaration shape:

json
{
  "metadata_kind": "cua",
  "dims": ["desktop", "use"],
  "extra_tool_schemas": [
    {
      "type": "function",
      "function": {
        "name": "bash",
        "description": "Run a shell command.",
        "parameters": {
          "type": "object",
          "properties": {"cmd": {"type": "string"}},
          "required": ["cmd"]
        }
      }
    }
  ],
  "valid_actions": ["click", "type"],
  "others": {}
}

messages[].tool_calls[*] uses the matching nested invocation shape. Tool results pair tool_calls[].id with role:"tool" tool_call_id:

json
[
  {
    "role": "user",
    "content": [
      {"type": "image", "index": 0},
      {"type": "text", "text": "Click the OK button."}
    ]
  },
  {
    "role": "assistant",
    "tool_calls": [
      {
        "id": "call_0000",
        "type": "function",
        "function": {
          "name": "computer",
          "arguments": {
            "actions": [
              {"action": "click", "coordinate": [640, 400]},
              {"action": "type", "text": "hello"}
            ]
          }
        }
      }
    ]
  },
  {
    "role": "tool",
    "tool_call_id": "call_0000",
    "content": [
      {"type": "image", "index": 1},
      {"type": "text", "text": "clicked; typed"}
    ]
  }
]

*Image-dedup (`grounding. / understanding cohorts).** These cohorts are single-image-per-row and many rows share the same screenshot, so to avoid re-embedding identical image bytes once per instruction they are stored *folded*: one row per unique screenshot (image embedded once), carrying an extra **_folded** column — a JSON string with the authoritative list of per-instruction members for that screenshot. Each member's messages and metadata values are the same opaque JSON strings described above. The row's top-level messages is a JSON string containing the members concatenated for viewer convenience. use cohorts are not folded. **Use lite.data.hf.download` to consume this repo** — it unfolds automatically back to one row per instruction; reading the parquet directly yields the folded form.

Layout

<platform>/<task_type>/<split>/<variant>/shard-NNNNN-of-NNNNN.parquet
  • platform ∈ {desktop, browser, mobile}
  • task_type ∈ {understanding, grounding.action, grounding.point, grounding.bbox, use} — used verbatim as the dir component
  • HF config names are <platform>.<task_type> by default (e.g. mobile.grounding.action) — UNLESS the dataset was staged with --config-names, which sets verbatim, explicitly-chosen config names (see the configs: block above for the authoritative list). The agent registry lookup key in code is <agent>@<platform>@<task_type> (e.g. qwen3_vl@mobile@grounding.action); only this user-facing token uses . between platform and task_type, because @ triggers a 403 on the dataset-viewer's signed image URLs.
  • HF split names stay train / validation (the datasets library blacklists <>:/\|?* in split names; everything else is fine in config_name)
  • validation is an in-distribution held-out slice: no validation sample also appears in train — content-identical rows (same images + same messages, differing only in their ids) are co-located into one split, so upstream re-publishing one sample under two ids cannot straddle the split. It is not disjoint in images: one screenshot legitimately backs many distinct samples, and only whole samples are co-located, so the same picture can appear on both sides. test is reserved for out-of-distribution benchmark datasets

Stats

platformtask_typevarianttrainvalidation
desktopusedesktop.use.rl.gpt5_51,8160
desktopusedesktop.use.rl.qwen3527b1,7870
desktopusedesktop.use.rl.qwen3827b1,8040
desktopusedesktop.use.train.gpt5_515,6770
desktopusedesktop.use.train.qwen3527b15,7520
desktopusedesktop.use.train.qwen3827b16,0030

Local mirror & SFT export

For local workflows (SFT export, dedup, mixing across datasets), use lite.data.hf.download to mirror this repo back to the canonical local layout:

$CUA_LITE_DATASETS_ROOT/cua-lite/Lite.ScaleCUA/
  images/<hash[:2]>/<hash>.<ext>                          # content-addressed image store
  <platform>/<task_type>/<split>[/<variant>].parquet      # rows reference images by relative path

Rows in the local parquet have images: list[str]; bytes are extracted to the image store. lite.train.export.export_sft consumes the local form directly with --image-root=$CUA_LITE_DATASETS_ROOT.

  • Total unique images: 612,779
  • Image store size: 278.07 GB

Notes

Staged via lite.data.hf.stage from rollout log-roots: .data/rollout/lite.scalecua/published/2c594c4/desktop.use.rl.gpt55/train, .data/rollout/lite.scalecua/published/2c594c4/desktop.use.rl.qwen3827b/train, .data/rollout/lite.scalecua/published/2c594c4/desktop.use.train.gpt55/train, .data/rollout/lite.scalecua/published/2c594c4/desktop.use.train.qwen3827b/train, .data/rollout/lite.scalecua/qwen3527b/2c594c4/rlannotated, .data/rollout/lite.scalecua/qwen3527b/2c594c4/trainannotated (row filter: none; split: hashsplit on taskid with val_frac=0.0, seed=42).

License & citation

See original project (THUDM/SCALE-CUA) and dataset (extreme1228/ScaleCUA).

See https://arxiv.org/abs/2607.11185 (SCALECUA, Lv et al., 2026).