Skip to content

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1iteVLA: a VLA to run on your potato

A VLA model built from combining and training SLMs, so the whole thing runs on any device (CPU / Apple MPS / CUDA — no GPU required) at SIMILAR readiness as leading VLA models for physical AI for iteration and deployment.

1iteVLA driving a real SO-101

1iteVLA driving a real SO-101 — continuous perceive → act, running on the laptop beside it.

Benchmark

1iteVLA's numbers are measured on this machine (trained with run/train_libero.py, evaluated with run/eval_policy.py); the other models' numbers are as reported in their papers/pages (linked below). 1iteVLA is by far the smallest, yet after behavior-cloning on LIBERO demos its continuous 7-DoF policy reaches OpenVLA-level success at ~10–90× fewer parameters.

Model Params Runs on Inference speed LIBERO
1iteVLA ~38M (2.9M trainable) any device (CPU/GPU) real-time on CPU 78.0% (libero_spatial, trained)¹
SmolVLA ~450M consumer GPU (≈CPU-feasible) ≥10 Hz (50-step chunks) 87.3% (4-suite avg)
π0 (pi-zero) ~3.3B GPU 50 Hz (chunked control) 86.0% (4-suite avg)
MolmoAct-7B-D 7B GPU 86.6% (4-suite avg)
OpenVLA 7B GPU (~15 GB) ~5–6 Hz (A100 / RTX 4090) 76.5% (4-suite avg; 97.1% w/ OFT)

¹ Measured, trained result. LiteVLAPolicy (two MobileNetV3-Small image encoders + proprioception + a frozen flan-t5-small language embedding → an 8-step continuous 7-DoF action chunk; ~2.9M trainable params) was behavior-cloned on the real LIBERO-Spatial demonstrations (30 demos/task × 10 tasks, 60 epochs) and evaluated in-sim: 39 / 50 episodes solved = 78.0% (10 tasks × 5 trials). That's on par with OpenVLA-7B's 76.5% four-suite average at ~180× fewer parameters. This is libero_spatial only; the other three suites (object / goal / long) train the same way for a full four-suite average. Reproduce: run/train_libero.py then run/eval_policy.py (needs a local LIBERO install).

Sources: SmolVLA (params + SmolVLA/π0 LIBERO) · OpenVLA · OpenVLA-OFT · MolmoAct

Layout

1iteVLA/
  1iteVLA/          # the model (the package)
    vision.py       # V: image recognition SLM
    action.py       # LA: discrete language-action SLM (zero-shot)
    model.py        # LiteVLA: V -> LA (zero-shot)
    policy.py       # LiteVLAPolicy: trainable CONTINUOUS 7-DoF policy (the 78% one)
  skills/           # GENERAL, robot/task-agnostic capabilities (reusable by any app)
    perceive.py     # Locator: find any object by name, gated by a confidence eval
    motor_model.py  # learn how a robot's motors move its camera view (Jacobian) + invert it
    spatial.py      # SpatialAwareness: distance from box area, over time (PD)
    visual_servo.py # VisualServo + Tracker: center a target + hold distance with all motors
    la.py           # LanguageAction: read a use-case prompt -> a task the skills execute
  run/              # example run with SO-101
  tests/                # tests that the real models load and the pipeline works

Follow-a-thing on SO-101 example

CAM=0 python run/train_motor_model.py     # once: the arm learns its motor model -> run/jacobian.npz
python run/follow_hand.py                  # the arm centers + holds distance to your hand
PROMPT="Follow a red cup, keep it centered, hold it at 15% of the frame" python run/follow_hand.py

Install

pip install -r requirements.txt

Use

The package directory name starts with a digit, so Python's import statement can't load it (import 1iteVLA is a syntax error). Load it with importlib:

import importlib
liteVLA = importlib.import_module("1iteVLA")   # with the repo root on sys.path

VLA = liteVLA.LiteVLA()                 # auto-picks cpu/mps/cuda
out = VLA.act(image, "pick up the object")
print(out["scene"], "->", out["action"])

About

A light-weight VLA for physical AI made for POTATOES

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages