51 lines
1.9 KiB
Python
51 lines
1.9 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
"""OpenVLA configuration support.
|
|
|
|
OpenVLA checkpoints use a custom ``model_type`` and nest the language model
|
|
configuration under ``text_config``. This shim lets vLLM load the checkpoint
|
|
configuration without executing Hugging Face remote code.
|
|
"""
|
|
|
|
from typing import Any
|
|
|
|
from transformers import LlamaConfig, PretrainedConfig
|
|
|
|
|
|
class OpenVLAConfig(PretrainedConfig):
|
|
"""Configuration class for OpenVLA models."""
|
|
|
|
model_type = "openvla"
|
|
|
|
def __init__(
|
|
self,
|
|
timm_model_ids: list[str] | None = None,
|
|
timm_override_act_layers: list[str | None] | None = None,
|
|
image_sizes: list[int] | None = None,
|
|
use_fused_vision_backbone: bool = True,
|
|
image_token_index: int = 32000,
|
|
n_action_bins: int = 256,
|
|
text_config: dict[str, Any] | LlamaConfig | None = None,
|
|
**kwargs: Any,
|
|
) -> None:
|
|
kwargs.setdefault("architectures", ["OpenVLAForActionPrediction"])
|
|
super().__init__(**kwargs)
|
|
|
|
self.timm_model_ids = timm_model_ids or [
|
|
"vit_large_patch14_reg4_dinov2.lvd142m",
|
|
"vit_so400m_patch14_siglip_224",
|
|
]
|
|
self.timm_override_act_layers = timm_override_act_layers or [None, None]
|
|
self.image_sizes = image_sizes or [224, 224]
|
|
self.use_fused_vision_backbone = use_fused_vision_backbone
|
|
self.image_token_index = image_token_index
|
|
self.n_action_bins = n_action_bins
|
|
|
|
if text_config is None:
|
|
text_config = LlamaConfig(architectures=["LlamaForCausalLM"])
|
|
elif isinstance(text_config, dict):
|
|
text_config = text_config.copy()
|
|
text_config.setdefault("architectures", ["LlamaForCausalLM"])
|
|
text_config = LlamaConfig(**text_config)
|
|
self.text_config = text_config
|