VlaTokenBudgetScenario
Robotics scenarios · Implementation: mlsysim/engine/scenario_definitions/robotics/proposers.py.
Construct this scenario with keyword inputs. The fields below show the types and defaults declared by this class.
Tokens a VLA backbone reads from views square camera frames, and their memory per token.
Notes
Equation: visual tokens = views * floor(frame pixels / patch pixels)^2; KV bytes per token = 2 * layers * hidden width * element bytes.
Assumptions: Views are square, one token represents each complete patch, and keys and values use full hidden width.
Excludes: Image encoder intermediates, grouped-query or compressed caches, padding patches, and runtime workspace.
References
Derivation: visual tokens = views * floor(frame pixels / patch pixels)^2; KV bytes per token = 2 * layers * hidden width * element bytes. The individual properties state units and intermediate accounting; this class introduces no fitted coefficient.
Examples
The named scenario supplies illustrative inputs; the output is calculated.
>>> from mlsysim import Scenarios
>>> case = Scenarios.ThreeViewVlaTokens
>>> round(float(case.patches_per_view), 3)
256.0Attributes
| Name | Description |
|---|---|
| context_tokens | |
| element_bytes | |
| embedding_memory | Embedding-state memory in MB for the stated context and model hidden width. |
| frame_px | |
| kv_per_token | Full-width key and value storage per token in bytes across every layer. |
| model | |
| patch_px | |
| patches_per_side | Complete patches along one image side, using integer division. |
| patches_per_view | Patch-token count per square view, discarding pixels outside complete patches. |
| prompt_tokens | |
| single_view_tokens | One view’s patch tokens plus prompt tokens; state tokens are not included in this |
| state_tokens | |
| total_tokens | Combined visual, prompt, and state token count before context rounding. |
| views | |
| visual_tokens | Visual-token count across all views, one token per complete square patch. |
model
Type: Any.
Declared default: required.
views
Type: int.
Declared default: required.
frame_px
Type: int.
Declared default: required.
patch_px
Type: int.
Declared default: required.
prompt_tokens
Type: int.
Declared default: required.
state_tokens
Type: int.
Declared default: required.
context_tokens
Type: int.
Declared default: required.
element_bytes
Type: Quantity.
Declared default: required.
patches_per_view
engine.scenario_types.VlaTokenBudgetScenario.patches_per_view
Patch-token count per square view, discarding pixels outside complete patches.
Equation: return (frame_px // patch_px) ** 2.
patches_per_side
engine.scenario_types.VlaTokenBudgetScenario.patches_per_side
Complete patches along one image side, using integer division.
Equation: return frame_px // patch_px.
visual_tokens
engine.scenario_types.VlaTokenBudgetScenario.visual_tokens
Visual-token count across all views, one token per complete square patch.
Equation: return views * patches_per_view.
total_tokens
engine.scenario_types.VlaTokenBudgetScenario.total_tokens
Combined visual, prompt, and state token count before context rounding.
Equation: return visual_tokens + prompt_tokens + state_tokens.
single_view_tokens
engine.scenario_types.VlaTokenBudgetScenario.single_view_tokens
One view’s patch tokens plus prompt tokens; state tokens are not included in this subtotal.
Equation: return patches_per_view + prompt_tokens.
embedding_memory
engine.scenario_types.VlaTokenBudgetScenario.embedding_memory
Embedding-state memory in MB for the stated context and model hidden width.
Equation: return (context_tokens * model.hidden_dim * element_bytes).to('MB').
kv_per_token
engine.scenario_types.VlaTokenBudgetScenario.kv_per_token
Full-width key and value storage per token in bytes across every layer.
Equation: return (2 * model.layers * model.hidden_dim * element_bytes).to('byte').