PTENES
Start / Fundamentals / Module 1.2
MODULE 1.2

🔬 Anatomy of a VLA: Vision + Language + Action

Breaking down the architecture from the inside: how the visual encoder, language backbone, and action decoder connect to turn pixels and words into physical movement.

6
Topics
~40
Minutes
Basic
Level
Theory
Type
VLA Pipeline: Perception → Reasoning → Physical Action 📷 Camera 224×224 RGB 💬 Instruction "Pick up the cup" Vision Encoder SigLIP · DINOv2 · ViT Patch embeddings → visual tokens LLM Backbone Llama · Gemma · Qwen visual tokens + text tokens → fused repr. 7B parameters Action Head MLP · Diffusion · Flow (x,y,z,rx,ry,rz,grip) 7-DoF action tokens 🦾 Robotic Arm Perception Reasoning Action
1

👁️ Visual Encoder: SigLIP, DINOv2, ViT

The visual encoder is the first step in perception: it converts each camera frame into dense vectors that the language backbone can "read." The choice of encoder—SigLIP, DINOv2, or pure ViT—determines what the robot can see accurately.

🔍 How patch embedding works

The 224×224-pixel image is divided into 14×14- or 16×16-pixel patches. Each patch is linearly projected into a dense, high-dimensional vector (typically 768 or 1024 dimensions). These vectors—the visual tokens — they're the internal language the encoder uses to communicate with the LLM backbone.

A 224×224 image with 14×14 patches produces 256 visual tokens. Each token carries local information about texture, color, and edges — together they carry the spatial structure of the entire scene.

✓ SigLIP and DINOv2 excel when

  • ✓SigLIP: the task requires aligning objects with names ("pick up the blue cup")
  • ✓DINOv2: the task requires depth estimation or implicit segmentation
  • ✓Dual encoder (SigLIP + DINOv2): combines both — standard in OpenVLA
  • ✓Higher resolution (336×336) improves fine manipulation of small objects

✗ Common pitfalls

  • ✗Using an encoder trained only on web images — loses 3D geometry
  • ✗Freeze the encoder during fine-tuning — features don’t adapt to the task
  • ✗Very low resolution (112×112) — a 2 cm object becomes 1 token of noise
  • ✗Ignore the projection layer — visual tokens need a scale compatible with the LLM
Patch Embedding
Divide the image into patches; each patch → dense vector.
Contrastive Learning
SigLIP aligns images and text in the same vector space using sigmoid loss.
Self-Supervised
DINOv2 captures geometric structure without any human annotations.
2

🧠 LLM Backbone: Llama, Gemma, Qwen

The LLM backbone is the VLA’s central brain. It fuses visual tokens with text tokens, reasons about the scene, and decides what to do. The choice of backbone — and its parameter count — defines the fundamental trade-off between reasoning ability and response latency.

💡 Why reuse a pretrained LLM?

Models such as Llama 3, Gemma 2, and Qwen 2.5 were trained on trillions of text tokens. They already "know" what a cup is, where the sink is, and how to follow compound instructions such as "put the fork to the left of the plate." Training this knowledge from scratch for each robot would be prohibitively expensive—reuse is the key to generalization.

Processing flow within the backbone

1

Projection Layer

A simple MLP (2 linear layers) maps visual tokens from the encoder space (e.g., 1024 dims) to the LLM embedding space (e.g., 4096 dims). This "translator" is the only new component that needs to be trained from scratch.

2

Multimodal Fusion

Visual tokens and text tokens are concatenated into a unified sequence. The transformer's attention mechanism treats both the same way — there's no architectural difference between "seeing" and "reading".

3

Representation Generation

The backbone processes the full sequence and produces rich output embeddings that encode: “the cup is 15 cm ahead, to the left of the plate, and the instruction says to pick it up.” These embeddings feed into the action head.

LoRA
Low-rank fine-tuning: trains <1% of the parameters with performance similar to full fine-tuning.
Instruction Tuning
Adaptation of the backbone to follow robotic commands instead of completing generic text.
Catastrophic Forgetting
Risk of losing language capability during fine-tuning; mitigated by a low learning rate.
3

🎯 Action Head: Tokenizing Continuous Actions

The action head is where VLA diverges radically from a standard VLM. Robots operate in continuous spaces — position in meters, torque in Newton-meters — but LLMs generate discrete tokens. The action head is the component that resolves this fundamental incompatibility.

The continuity problem

A 7 DoF robotic manipulator needs 7 real numbers at every timestep: (x, y, z, rotX, rotY, rotZ, gripper). These numbers can be 0.3427m or 1.7293 Nm — arbitrarily precise values. An LLM’s vocabulary has discrete tokens like "cat," "42," or "[EOS]." There is no token for "0.3427."

Different action heads solve this in different ways: discretization into bins, direct regression via MLP, or generative models (diffusion, flow matching). Each approach has trade-offs in precision, latency, and smoothness of movement.

✓ Action heads that work well

  • ✓Discrete bins (RT-2, OpenVLA): simple, compatible with LLM vocabulary, good for slow tasks
  • ✓Diffusion head (Octo): smooth, multimodal actions, good when there are multiple valid paths
  • ✓Flow matching (π0): high frequency (50 Hz), great for dexterous manipulation

✗ Common problems

  • ✗Low-resolution bins (64 bins) — ~1.5 mm imprecision in a 10 cm workspace
  • ✗Regression MLP without action normalization — gradients explode or collapse
  • ✗Diffusion with many denoising steps — latency prohibitive for real-time control

💡 Flow matching vs. Diffusion

Both turn noise into actions. The difference: diffusion uses an iterative denoising process with many steps (typically 10-100); flow matching learns a vector field and solves an ODE in fewer steps (2-4). Result: π0 can generate smooth actions at 50 Hz, while typical diffusion heads need to trade off quality and speed.

Discretization Bins
Divide the continuous space into N buckets; each action becomes a categorical token.
Diffusion Head
Iterative denoising generates smooth, multimodal actions.
Flow Matching
An ODE that transports noise → action in a few steps; enables 50 Hz.
4

📐 Trajectory Tokenization: Discrete Bin vs. Continuous

How can you represent a robotic trajectory as a processable sequence? Two fundamental approaches: discretize the action space into buckets (compatible with an LLM vocabulary, but limited in resolution) or generate continuous values directly via generative models (precise, but architecturally more complex).

Discrete Tokenization (Bins) Action space: −1.0 → +1.0 (256 bins) bin #134 → x=0.042m ✓ Compatible with LLM vocab ✓ Easy to train Resolution: ~7.8 mm per bin (2 m workspace) Continuous Generation (Flow Matching) Gaussian noise → ODE → precise action N(0,1) noise ODE 2-4 steps 0.342m precise ✓ High precision ✓ Smoothness ✓ Multimodal Cost: additional architecture, slower inference The choice depends on the trade-off: speed × accuracy × complexity

📊 Real numbers: bin resolution

256 bins
Per dimension (RT-2, OpenVLA). In a 10 cm workspace → ~0.4 mm resolution. Sufficient for most tasks.
4–16 steps
Action chunking: predicts multiple future actions at once, improving temporal consistency.
7 DoF
Standard dimensions: x, y, z, rotX, rotY, rotZ + gripper. Each needs its own bin or continuous coordinate.
Action Chunking
Predicts 4–16 future actions at once; reduces jitter and improves temporal smoothness.
De-tokenization
Converts predicted tokens back into continuous commands for the robot controller.
Action Normalization
Standardizes all dimensions to [−1, 1] before discretizing; critical for stable training.
5

🔄 Co-fine-tuning: Vision + Language Together

Co-fine-tuning is the process of simultaneously training the visual and language components of a VLA on robotic demonstration data. Instead of freezing the encoder and training only the action head, all components learn together — and that is exactly what enables VLAs to outperform modular pipelines.

💡 OpenVLA’s result

OpenVLA empirically demonstrated that co-fine-tuning improves performance by up to 16,5% compared with fine-tuning only the action head. The reason: when the visual encoder can adapt to the task, it learns features specific to manipulation—such as detecting grasp edges—that web image features don’t capture.

✓ Benefits of co-fine-tuning

  • ✓Gradients from the action loss propagate to the encoder—visual features adapt for control
  • ✓Representations converge on what matters for the task, not web classification
  • ✓Better generalization to new objects not seen in the demonstrations
  • ✓LoRA makes co-fine-tuning feasible on a single consumer GPU

✗ Risks and mitigations

  • ✗Catastrophic forgetting: backbone loses language capability → use a low learning rate (1e-5)
  • ✗Overfitting: robotic data is scarce; with little data, the model memorizes instead of generalizing
  • ✗Computational cost: co-fine-tuning a 7B model is 3-4× more expensive than fine-tuning only the action head
End-to-End Training
Gradients flow through all components—perception, fusion, and action are optimized together.
Multi-task Fine-tuning
Training on multiple tasks simultaneously preserves generality and reduces overfitting.
Regularization
Weight decay and dropout mitigate catastrophic forgetting during co-fine-tuning.
6

⚡ Latency and Throughput: Token Budget

The most punishing bottleneck for real-world VLAs isn’t the architecture—it’s time. A robot needs to decide on actions at 5–50 Hz, but a 7B-parameter LLM can take hundreds of milliseconds per token. The token budget determines how many visual and text tokens the system can process within the available control time.

Control frequencies and what each one enables

5 Hz

Slow tasks — stacking blocks, opening drawers

200 ms per action. 7B VLAs with INT8 quantization (e.g., OpenVLA) can operate at this frequency on consumer GPUs. Sufficient for 80% of tabletop manipulation tasks.

15 Hz

Fluid manipulation — picking up and placing varied objects

~67 ms per action. Requires smaller models (3B), aggressive quantization (INT4), or async inference with action chunking. KV cache is mandatory to reuse context tokens.

50 Hz

Dexterous manipulation — folding clothes, fitting parts together

20 ms per action. π0 territory with flow matching (2-4 ODE steps). Not feasible with bin discretization + a full-size LLM. Requires architecture and hardware co-design.

📊 Acceleration techniques and their gains

2–4×
INT8/INT4 quantization: reduces memory and increases throughput with minimal loss of accuracy (≤1% degradation on robotics benchmarks).
3–10×
KV-Cache: reuses computations for tokens in the fixed context (instruction + previous tokens), avoiding recalculation at every frame.
~5×
Token compression: reduces 256 visual tokens to ~64 with pooling or cross-attention; fewer tokens = faster inference.

💡 Jetson Orin: VLA at the edge

The Nvidia Jetson AGX Orin (275 TOPS) can run SmolVLA or Qwen-VLA <3B with INT4 quantization at 8–12 Hz — enough for tabletop tasks — without any external server. For 7B models like OpenVLA, a discrete GPU (RTX 3090 or higher) is still needed in the loop.

Control Frequency
The number of times per second the model generates actions: 5 Hz (slow) to 50 Hz (dexterous).
KV-Cache
Reuses key/value tokens from previous steps, speeding up incremental inference by 3–10×.
Quantization
INT8/INT4 reduces model size by 2–4× with minimal loss; enables deployment on embedded GPUs.

🎓 Module Summary

✓
The visual encoder — SigLIP, DINOv2, or ViT — converts camera frames into visual tokens that the LLM can process via patch embedding.
✓
The LLM backbone fuses visual tokens and text tokens into a unified space, bringing world knowledge and reasoning from billions of pretraining tokens.
✓
The action head resolves the discrete×continuous incompatibility through bins, diffusion, or flow matching—each approach with trade-offs in accuracy, smoothness, and latency.
✓
Latency is the real bottleneck — KV cache, quantization, and token compression are essential to enable real-time control at 5–50 Hz.

Next Module:

1.3 — Model Landscape: RT-2, OpenVLA, π0, Qwen-VLA. The VLA model ecosystem, from closed pioneers to open source.