From efeef4eef26a32e42a0872aa58aac3887fbc465c Mon Sep 17 00:00:00 2001 From: Dana Aubakirova <118912928+danaaubakirova@users.noreply.github.com> Date: Tue, 3 Jun 2025 14:34:19 +0200 Subject: [PATCH 1/2] fixes for merging (#1188) --- lerobot/common/policies/smolvla/configuration_smolvla.py | 3 +++ lerobot/common/policies/smolvla/modeling_smolvla.py | 4 ++-- tests/test_available.py | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lerobot/common/policies/smolvla/configuration_smolvla.py b/lerobot/common/policies/smolvla/configuration_smolvla.py index 822c0f40d..a5de72644 100644 --- a/lerobot/common/policies/smolvla/configuration_smolvla.py +++ b/lerobot/common/policies/smolvla/configuration_smolvla.py @@ -98,6 +98,9 @@ class SmolVLAConfig(PreTrainedConfig): self_attn_every_n_layers: int = 2 # Interleave SA layers each self_attn_every_n_layers expert_width_multiplier: float = 0.75 # The action expert hidden size (wrt to the VLM) + min_period: float = 4e-3 # sensitivity range for the timestep used in sine-cosine positional encoding + max_period: float = 4.0 + def __post_init__(self): super().__post_init__() diff --git a/lerobot/common/policies/smolvla/modeling_smolvla.py b/lerobot/common/policies/smolvla/modeling_smolvla.py index ac56205ae..23042d5b3 100644 --- a/lerobot/common/policies/smolvla/modeling_smolvla.py +++ b/lerobot/common/policies/smolvla/modeling_smolvla.py @@ -17,7 +17,7 @@ """ SmolVLA: -[Paper]() +[Paper](https://huggingface.co/papers/2506.01844) Designed by Hugging Face. @@ -656,7 +656,7 @@ class VLAFlowMatching(nn.Module): dtype = action_emb.dtype # Embed timestep using sine-cosine positional encoding with sensitivity in the range [0, 1] time_emb = create_sinusoidal_pos_embedding( - timestep, self.vlm_with_expert.expert_hidden_size, min_period=4e-3, max_period=4.0, device=device + timestep, self.vlm_with_expert.expert_hidden_size, self.config.min_period, self.config.max_period, device=device ) time_emb = time_emb.type(dtype=dtype) diff --git a/tests/test_available.py b/tests/test_available.py index f4f9d4de6..a207dea42 100644 --- a/tests/test_available.py +++ b/tests/test_available.py @@ -23,6 +23,7 @@ from lerobot.common.policies.act.modeling_act import ACTPolicy from lerobot.common.policies.diffusion.modeling_diffusion import DiffusionPolicy from lerobot.common.policies.tdmpc.modeling_tdmpc import TDMPCPolicy from lerobot.common.policies.vqbet.modeling_vqbet import VQBeTPolicy +from lerobot.common.policies.smolvla.modeling_smolvla import SmolVLAPolicy from tests.utils import require_env @@ -50,6 +51,7 @@ def test_available_policies(): DiffusionPolicy, TDMPCPolicy, VQBeTPolicy, + SmolVLAPolicy ] policies = [pol_cls.name for pol_cls in policy_classes] assert set(policies) == set(lerobot.available_policies), policies From 209f89a274095fe4bdfb6dea4cf67a43e971eadf Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 3 Jun 2025 12:34:33 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .../common/policies/smolvla/configuration_smolvla.py | 6 +++--- lerobot/common/policies/smolvla/modeling_smolvla.py | 6 +++++- tests/test_available.py | 10 ++-------- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/lerobot/common/policies/smolvla/configuration_smolvla.py b/lerobot/common/policies/smolvla/configuration_smolvla.py index a5de72644..5996cf2e7 100644 --- a/lerobot/common/policies/smolvla/configuration_smolvla.py +++ b/lerobot/common/policies/smolvla/configuration_smolvla.py @@ -98,9 +98,9 @@ class SmolVLAConfig(PreTrainedConfig): self_attn_every_n_layers: int = 2 # Interleave SA layers each self_attn_every_n_layers expert_width_multiplier: float = 0.75 # The action expert hidden size (wrt to the VLM) - min_period: float = 4e-3 # sensitivity range for the timestep used in sine-cosine positional encoding - max_period: float = 4.0 - + min_period: float = 4e-3 # sensitivity range for the timestep used in sine-cosine positional encoding + max_period: float = 4.0 + def __post_init__(self): super().__post_init__() diff --git a/lerobot/common/policies/smolvla/modeling_smolvla.py b/lerobot/common/policies/smolvla/modeling_smolvla.py index 23042d5b3..efdf602d4 100644 --- a/lerobot/common/policies/smolvla/modeling_smolvla.py +++ b/lerobot/common/policies/smolvla/modeling_smolvla.py @@ -656,7 +656,11 @@ class VLAFlowMatching(nn.Module): dtype = action_emb.dtype # Embed timestep using sine-cosine positional encoding with sensitivity in the range [0, 1] time_emb = create_sinusoidal_pos_embedding( - timestep, self.vlm_with_expert.expert_hidden_size, self.config.min_period, self.config.max_period, device=device + timestep, + self.vlm_with_expert.expert_hidden_size, + self.config.min_period, + self.config.max_period, + device=device, ) time_emb = time_emb.type(dtype=dtype) diff --git a/tests/test_available.py b/tests/test_available.py index a207dea42..c6477050d 100644 --- a/tests/test_available.py +++ b/tests/test_available.py @@ -21,9 +21,9 @@ import pytest import lerobot from lerobot.common.policies.act.modeling_act import ACTPolicy from lerobot.common.policies.diffusion.modeling_diffusion import DiffusionPolicy +from lerobot.common.policies.smolvla.modeling_smolvla import SmolVLAPolicy from lerobot.common.policies.tdmpc.modeling_tdmpc import TDMPCPolicy from lerobot.common.policies.vqbet.modeling_vqbet import VQBeTPolicy -from lerobot.common.policies.smolvla.modeling_smolvla import SmolVLAPolicy from tests.utils import require_env @@ -46,13 +46,7 @@ def test_available_policies(): This test verifies that the class attribute `name` for all policies is consistent with those listed in `lerobot/__init__.py`. """ - policy_classes = [ - ACTPolicy, - DiffusionPolicy, - TDMPCPolicy, - VQBeTPolicy, - SmolVLAPolicy - ] + policy_classes = [ACTPolicy, DiffusionPolicy, TDMPCPolicy, VQBeTPolicy, SmolVLAPolicy] policies = [pol_cls.name for pol_cls in policy_classes] assert set(policies) == set(lerobot.available_policies), policies