optimum-rbln 0.8.2a1__py3-none-any.whl → 0.8.2a3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of optimum-rbln might be problematic. Click here for more details.

Files changed (34) hide show
  1. optimum/rbln/__init__.py +8 -0
  2. optimum/rbln/__version__.py +2 -2
  3. optimum/rbln/configuration_utils.py +16 -1
  4. optimum/rbln/diffusers/configurations/models/configuration_transformer_cosmos.py +3 -0
  5. optimum/rbln/diffusers/modeling_diffusers.py +3 -4
  6. optimum/rbln/diffusers/models/autoencoders/autoencoder_kl.py +1 -0
  7. optimum/rbln/diffusers/models/autoencoders/autoencoder_kl_cosmos.py +1 -0
  8. optimum/rbln/diffusers/models/autoencoders/vq_model.py +1 -0
  9. optimum/rbln/diffusers/models/transformers/transformer_cosmos.py +1 -1
  10. optimum/rbln/diffusers/pipelines/cosmos/configuration_cosmos_guardrail.py +10 -2
  11. optimum/rbln/diffusers/pipelines/cosmos/cosmos_guardrail.py +4 -30
  12. optimum/rbln/modeling.py +2 -3
  13. optimum/rbln/modeling_base.py +17 -13
  14. optimum/rbln/transformers/__init__.py +8 -0
  15. optimum/rbln/transformers/models/__init__.py +2 -0
  16. optimum/rbln/transformers/models/clip/configuration_clip.py +12 -1
  17. optimum/rbln/transformers/models/clip/modeling_clip.py +123 -28
  18. optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +13 -1
  19. optimum/rbln/transformers/models/gemma3/configuration_gemma3.py +2 -3
  20. optimum/rbln/transformers/models/gemma3/modeling_gemma3.py +107 -249
  21. optimum/rbln/transformers/models/llava_next/configuration_llava_next.py +18 -1
  22. optimum/rbln/transformers/models/qwen3/__init__.py +16 -0
  23. optimum/rbln/transformers/models/qwen3/configuration_qwen3.py +71 -0
  24. optimum/rbln/transformers/models/qwen3/modeling_qwen3.py +377 -0
  25. optimum/rbln/transformers/models/qwen3/qwen3_architecture.py +275 -0
  26. optimum/rbln/transformers/models/seq2seq/modeling_seq2seq.py +2 -0
  27. optimum/rbln/transformers/models/time_series_transformer/modeling_time_series_transformer.py +2 -0
  28. optimum/rbln/transformers/models/whisper/modeling_whisper.py +2 -0
  29. optimum/rbln/utils/hub.py +8 -47
  30. optimum/rbln/utils/runtime_utils.py +28 -2
  31. {optimum_rbln-0.8.2a1.dist-info → optimum_rbln-0.8.2a3.dist-info}/METADATA +1 -1
  32. {optimum_rbln-0.8.2a1.dist-info → optimum_rbln-0.8.2a3.dist-info}/RECORD +34 -30
  33. {optimum_rbln-0.8.2a1.dist-info → optimum_rbln-0.8.2a3.dist-info}/WHEEL +0 -0
  34. {optimum_rbln-0.8.2a1.dist-info → optimum_rbln-0.8.2a3.dist-info}/licenses/LICENSE +0 -0
optimum/rbln/__init__.py CHANGED
@@ -110,6 +110,10 @@ _import_structure = {
110
110
  "RBLNQwen2_5_VisionTransformerPretrainedModelConfig",
111
111
  "RBLNQwen2_5_VLForConditionalGeneration",
112
112
  "RBLNQwen2_5_VLForConditionalGenerationConfig",
113
+ "RBLNQwen3ForCausalLM",
114
+ "RBLNQwen3ForCausalLMConfig",
115
+ "RBLNQwen3Model",
116
+ "RBLNQwen3ModelConfig",
113
117
  "RBLNResNetForImageClassification",
114
118
  "RBLNResNetForImageClassificationConfig",
115
119
  "RBLNRobertaForMaskedLM",
@@ -357,6 +361,10 @@ if TYPE_CHECKING:
357
361
  RBLNQwen2_5_VLForConditionalGenerationConfig,
358
362
  RBLNQwen2ForCausalLM,
359
363
  RBLNQwen2ForCausalLMConfig,
364
+ RBLNQwen3ForCausalLM,
365
+ RBLNQwen3ForCausalLMConfig,
366
+ RBLNQwen3Model,
367
+ RBLNQwen3ModelConfig,
360
368
  RBLNResNetForImageClassification,
361
369
  RBLNResNetForImageClassificationConfig,
362
370
  RBLNRobertaForMaskedLM,
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.8.2a1'
21
- __version_tuple__ = version_tuple = (0, 8, 2, 'a1')
20
+ __version__ = version = '0.8.2a3'
21
+ __version_tuple__ = version_tuple = (0, 8, 2, 'a3')
@@ -147,7 +147,7 @@ class RBLNCompileConfig:
147
147
  return asdict(self)
148
148
 
149
149
 
150
- RUNTIME_KEYWORDS = ["create_runtimes", "optimize_host_memory", "device", "device_map", "activate_profiler"]
150
+ RUNTIME_KEYWORDS = ["create_runtimes", "optimize_host_memory", "device", "device_map", "activate_profiler", "timeout"]
151
151
  CONFIG_MAPPING: Dict[str, Type["RBLNModelConfig"]] = {}
152
152
 
153
153
 
@@ -481,6 +481,7 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
481
481
  "device",
482
482
  "device_map",
483
483
  "activate_profiler",
484
+ "timeout",
484
485
  ]
485
486
  submodules: List[str] = []
486
487
  subclass_non_save_attributes = []
@@ -561,6 +562,7 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
561
562
  activate_profiler: Optional[bool] = None,
562
563
  npu: Optional[str] = None,
563
564
  tensor_parallel_size: Optional[int] = None,
565
+ timeout: Optional[int] = None,
564
566
  optimum_rbln_version: Optional[str] = None,
565
567
  _compile_cfgs: List[RBLNCompileConfig] = [],
566
568
  **kwargs: Dict[str, Any],
@@ -577,6 +579,7 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
577
579
  activate_profiler (Optional[bool]): Whether to activate the profiler for performance analysis.
578
580
  npu (Optional[str]): The NPU device name to use for compilation.
579
581
  tensor_parallel_size (Optional[int]): Size for tensor parallelism to distribute the model across devices.
582
+ timeout (Optional[int]): The timeout for the runtime in seconds. If it isn't provided, it will be set to 60 by default.
580
583
  optimum_rbln_version (Optional[str]): The optimum-rbln version used for this configuration.
581
584
  _compile_cfgs (List[RBLNCompileConfig]): List of compilation configurations for the model.
582
585
  **kwargs: Additional keyword arguments.
@@ -599,6 +602,7 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
599
602
  self._runtime_options["device"] = device
600
603
  self._runtime_options["device_map"] = device_map
601
604
  self._runtime_options["activate_profiler"] = activate_profiler
605
+ self._runtime_options["timeout"] = timeout
602
606
 
603
607
  # Automatically pass npu, tensor_parallel_size to compile_cfgs
604
608
  self.npu = npu
@@ -838,3 +842,14 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
838
842
  @activate_profiler.setter
839
843
  def activate_profiler(self, activate_profiler: bool):
840
844
  self._runtime_options["activate_profiler"] = activate_profiler
845
+
846
+ @property
847
+ def timeout(self):
848
+ context = ContextRblnConfig.get_current_context()["timeout"]
849
+ if context is not None:
850
+ return context
851
+ return self._runtime_options["timeout"]
852
+
853
+ @timeout.setter
854
+ def timeout(self, timeout: int):
855
+ self._runtime_options["timeout"] = timeout
@@ -52,6 +52,9 @@ class RBLNCosmosTransformer3DModelConfig(RBLNModelConfig):
52
52
  Raises:
53
53
  ValueError: If batch_size is not a positive integer.
54
54
  """
55
+ if kwargs.get("timeout") is None:
56
+ kwargs["timeout"] = 80
57
+
55
58
  super().__init__(**kwargs)
56
59
  self.batch_size = batch_size or 1
57
60
  self.num_frames = num_frames or 121
@@ -70,8 +70,6 @@ class RBLNDiffusionMixin:
70
70
  _submodules = []
71
71
  _optional_submodules = []
72
72
  _prefix = {}
73
- _rbln_config_class = None
74
- _hf_class = None
75
73
 
76
74
  @staticmethod
77
75
  def _maybe_apply_and_fuse_lora(
@@ -114,14 +112,14 @@ class RBLNDiffusionMixin:
114
112
  @classmethod
115
113
  def get_rbln_config_class(cls) -> Type[RBLNModelConfig]:
116
114
  # Lazily loads and caches the corresponding RBLN model config class.
117
- if cls._rbln_config_class is None:
115
+ if "_rbln_config_class" not in cls.__dict__ or cls._rbln_config_class is None:
118
116
  rbln_config_class_name = cls.__name__ + "Config"
119
117
  cls._rbln_config_class = get_rbln_config_class(rbln_config_class_name)
120
118
  return cls._rbln_config_class
121
119
 
122
120
  @classmethod
123
121
  def get_hf_class(cls):
124
- if cls._hf_class is None:
122
+ if "_hf_class" not in cls.__dict__ or cls._hf_class is None:
125
123
  hf_cls_name = cls.__name__[4:]
126
124
  library = importlib.import_module("diffusers")
127
125
  cls._hf_class = getattr(library, hf_cls_name, None)
@@ -230,6 +228,7 @@ class RBLNDiffusionMixin:
230
228
  create_runtimes=rbln_config.create_runtimes,
231
229
  optimize_host_mem=rbln_config.optimize_host_memory,
232
230
  activate_profiler=rbln_config.activate_profiler,
231
+ timeout=rbln_config.timeout,
233
232
  ):
234
233
  model = super().from_pretrained(pretrained_model_name_or_path=model_id, **kwargs)
235
234
 
@@ -209,6 +209,7 @@ class RBLNAutoencoderKL(RBLNModel):
209
209
  tensor_type="pt",
210
210
  device=device_val,
211
211
  activate_profiler=rbln_config.activate_profiler,
212
+ timeout=rbln_config.timeout,
212
213
  )
213
214
  for compiled_model, device_val in zip(compiled_models, device_vals)
214
215
  ]
@@ -200,6 +200,7 @@ class RBLNAutoencoderKLCosmos(RBLNModel):
200
200
  tensor_type="pt",
201
201
  device=device_val,
202
202
  activate_profiler=rbln_config.activate_profiler,
203
+ timeout=rbln_config.timeout,
203
204
  )
204
205
  for compiled_model, device_val in zip(compiled_models, device_vals)
205
206
  ]
@@ -165,6 +165,7 @@ class RBLNVQModel(RBLNModel):
165
165
  tensor_type="pt",
166
166
  device=device_val,
167
167
  activate_profiler=rbln_config.activate_profiler,
168
+ timeout=rbln_config.timeout,
168
169
  )
169
170
  for compiled_model, device_val in zip(compiled_models, device_vals)
170
171
  ]
@@ -279,7 +279,7 @@ class RBLNCosmosTransformer3DModel(RBLNModel):
279
279
  tensor_type="pt",
280
280
  device=rbln_config.device_map[DEFAULT_COMPILED_MODEL_NAME],
281
281
  activate_profiler=rbln_config.activate_profiler,
282
- timeout=120,
282
+ timeout=rbln_config.timeout,
283
283
  )
284
284
  for compiled_model in compiled_models
285
285
  ]
@@ -15,7 +15,7 @@
15
15
  from typing import Any, Dict, Optional, Tuple
16
16
 
17
17
  from ....configuration_utils import RBLNAutoConfig, RBLNModelConfig
18
- from ....transformers import RBLNSiglipVisionModelConfig
18
+ from ....transformers import RBLNLlamaForCausalLMConfig, RBLNSiglipVisionModelConfig
19
19
 
20
20
 
21
21
  class RBLNVideoSafetyModelConfig(RBLNModelConfig):
@@ -75,7 +75,15 @@ class RBLNCosmosSafetyCheckerConfig(RBLNModelConfig):
75
75
  if height is not None and width is not None:
76
76
  image_size = (height, width)
77
77
 
78
- self.aegis = self.init_submodule_config(RBLNModelConfig, aegis)
78
+ tensor_parallel_size = kwargs.get("tensor_parallel_size")
79
+
80
+ self.aegis = self.init_submodule_config(
81
+ RBLNLlamaForCausalLMConfig,
82
+ aegis,
83
+ batch_size=batch_size,
84
+ tensor_parallel_size=tensor_parallel_size,
85
+ )
86
+
79
87
  self.siglip_encoder = self.init_submodule_config(
80
88
  RBLNSiglipVisionModelConfig,
81
89
  siglip_encoder,
@@ -127,25 +127,13 @@ class RBLNSigLIPEncoder(SigLIPEncoder):
127
127
 
128
128
  # We don't use RBLNSiglipModel, but we need to override get_image_features to return pooler_output
129
129
  self.model = RBLNSiglipVisionModel.from_pretrained(
130
- self.checkpoint_dir,
131
- rbln_device=rbln_config.siglip_encoder.device,
132
- rbln_create_runtimes=rbln_config.siglip_encoder.create_runtimes,
133
- rbln_activate_profiler=rbln_config.siglip_encoder.activate_profiler,
134
- rbln_optimize_host_memory=rbln_config.siglip_encoder.optimize_host_memory,
130
+ self.checkpoint_dir, rbln_config=rbln_config.siglip_encoder
135
131
  )
136
132
  else:
137
133
  super().__init__(model_name, checkpoint_id)
138
134
  model = self.model
139
135
  del self.model
140
- self.model = RBLNSiglipVisionModel.from_model(
141
- model,
142
- rbln_device=rbln_config.siglip_encoder.device,
143
- rbln_image_size=rbln_config.siglip_encoder.image_size,
144
- rbln_npu=rbln_config.siglip_encoder.npu,
145
- rbln_create_runtimes=rbln_config.siglip_encoder.create_runtimes,
146
- rbln_activate_profiler=rbln_config.siglip_encoder.activate_profiler,
147
- rbln_optimize_host_memory=rbln_config.siglip_encoder.optimize_host_memory,
148
- )
136
+ self.model = RBLNSiglipVisionModel.from_model(model, rbln_config=rbln_config.siglip_encoder)
149
137
  self.rbln_config = rbln_config
150
138
 
151
139
  # Override get_image_features to return pooler_output
@@ -336,28 +324,14 @@ class RBLNAegis(Aegis):
336
324
  torch.nn.Module.__init__(self)
337
325
  cache_dir = pathlib.Path(checkpoint_id) / "aegis"
338
326
  self.tokenizer = AutoTokenizer.from_pretrained(cache_dir)
339
- self.model = RBLNAutoModelForCausalLM.from_pretrained(
340
- cache_dir,
341
- rbln_device=rbln_config.aegis.device,
342
- rbln_create_runtimes=rbln_config.aegis.create_runtimes,
343
- rbln_activate_profiler=rbln_config.aegis.activate_profiler,
344
- rbln_optimize_host_memory=rbln_config.aegis.optimize_host_memory,
345
- )
327
+ self.model = RBLNAutoModelForCausalLM.from_pretrained(cache_dir, rbln_config=rbln_config.aegis)
346
328
 
347
329
  else:
348
330
  super().__init__(checkpoint_id, base_model_id, aegis_adapter)
349
331
  model = self.model.merge_and_unload() # peft merge
350
332
  del self.model
351
333
 
352
- self.model = RBLNAutoModelForCausalLM.from_model(
353
- model,
354
- rbln_tensor_parallel_size=4,
355
- rbln_device=rbln_config.aegis.device,
356
- rbln_create_runtimes=rbln_config.aegis.create_runtimes,
357
- rbln_npu=rbln_config.aegis.npu,
358
- rbln_activate_profiler=rbln_config.aegis.activate_profiler,
359
- rbln_optimize_host_memory=rbln_config.aegis.optimize_host_memory,
360
- )
334
+ self.model = RBLNAutoModelForCausalLM.from_model(model, rbln_config=rbln_config.aegis)
361
335
 
362
336
  self.rbln_config = rbln_config
363
337
  self.dtype = torch.bfloat16
optimum/rbln/modeling.py CHANGED
@@ -35,8 +35,6 @@ logger = get_logger(__name__)
35
35
 
36
36
 
37
37
  class RBLNModel(RBLNBaseModel):
38
- _output_class = None
39
-
40
38
  @classmethod
41
39
  def update_kwargs(cls, kwargs):
42
40
  # Update user-given kwargs to get proper pytorch model.
@@ -238,6 +236,7 @@ class RBLNModel(RBLNBaseModel):
238
236
  tensor_type="pt",
239
237
  device=rbln_config.device_map[DEFAULT_COMPILED_MODEL_NAME],
240
238
  activate_profiler=rbln_config.activate_profiler,
239
+ timeout=rbln_config.timeout,
241
240
  )
242
241
  for compiled_model in compiled_models
243
242
  ]
@@ -288,7 +287,7 @@ class RBLNModel(RBLNBaseModel):
288
287
  @classmethod
289
288
  def get_hf_output_class(cls):
290
289
  # Dynamically gets the output class from the corresponding HuggingFace model class.
291
- if cls._output_class:
290
+ if "_output_class" in cls.__dict__ and cls._output_class is not None:
292
291
  return cls._output_class
293
292
 
294
293
  hf_class = cls.get_hf_class()
@@ -23,9 +23,10 @@ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Type, Union
23
23
  import rebel
24
24
  import torch
25
25
  from transformers import AutoConfig, AutoModel, GenerationConfig, PretrainedConfig
26
+ from transformers.utils.hub import PushToHubMixin
26
27
 
27
28
  from .configuration_utils import RBLNAutoConfig, RBLNCompileConfig, RBLNModelConfig, get_rbln_config_class
28
- from .utils.hub import PushToHubMixin, pull_compiled_model_from_hub, validate_files
29
+ from .utils.hub import pull_compiled_model_from_hub, validate_files
29
30
  from .utils.logging import get_logger
30
31
  from .utils.runtime_utils import UnavailableRuntime, tp_and_devices_are_ok
31
32
  from .utils.save_utils import maybe_load_preprocessors
@@ -50,11 +51,8 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
50
51
  model_type = "rbln_model"
51
52
  auto_model_class = AutoModel
52
53
  config_class = AutoConfig
53
-
54
54
  config_name = "config.json"
55
55
  hf_library_name = "transformers"
56
- _hf_class = None
57
- _rbln_config_class = None
58
56
 
59
57
  def __init__(
60
58
  self,
@@ -115,7 +113,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
115
113
  def _load_compiled_model_dir(
116
114
  cls,
117
115
  model_id: Union[str, Path],
118
- use_auth_token: Optional[Union[bool, str]] = None,
116
+ token: Optional[Union[bool, str]] = None,
119
117
  revision: Optional[str] = None,
120
118
  force_download: bool = False,
121
119
  cache_dir: Optional[str] = None,
@@ -134,7 +132,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
134
132
  model_path = pull_compiled_model_from_hub(
135
133
  model_id=model_id,
136
134
  subfolder=subfolder,
137
- use_auth_token=use_auth_token,
135
+ token=token,
138
136
  revision=revision,
139
137
  cache_dir=cache_dir,
140
138
  force_download=force_download,
@@ -172,7 +170,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
172
170
  cls,
173
171
  model_id: Union[str, Path],
174
172
  config: Optional["PretrainedConfig"] = None,
175
- use_auth_token: Optional[Union[bool, str]] = None,
173
+ token: Optional[Union[bool, str]] = None,
176
174
  revision: Optional[str] = None,
177
175
  force_download: bool = False,
178
176
  cache_dir: Optional[str] = None,
@@ -189,7 +187,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
189
187
  if rbln_compiled_models is None:
190
188
  model_path_subfolder = cls._load_compiled_model_dir(
191
189
  model_id=model_id,
192
- use_auth_token=use_auth_token,
190
+ token=token,
193
191
  revision=revision,
194
192
  force_download=force_download,
195
193
  cache_dir=cache_dir,
@@ -232,7 +230,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
232
230
  cache_dir=cache_dir,
233
231
  force_download=force_download,
234
232
  revision=revision,
235
- token=use_auth_token,
233
+ token=token,
236
234
  trust_remote_code=trust_remote_code,
237
235
  )
238
236
  elif cls.hf_library_name == "diffusers":
@@ -250,7 +248,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
250
248
  force_download=force_download,
251
249
  local_files_only=local_files_only,
252
250
  revision=revision,
253
- token=use_auth_token,
251
+ token=token,
254
252
  subfolder=subfolder,
255
253
  )
256
254
  config = PretrainedConfig(**config)
@@ -421,7 +419,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
421
419
 
422
420
  # Returns:
423
421
  # type: The original HuggingFace model class
424
- if cls._hf_class is None:
422
+ if "_hf_class" not in cls.__dict__ or cls._hf_class is None:
425
423
  hf_cls_name = cls.__name__[4:]
426
424
  library = importlib.import_module(cls.hf_library_name)
427
425
  cls._hf_class = getattr(library, hf_cls_name, None)
@@ -430,7 +428,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
430
428
  @classmethod
431
429
  def get_rbln_config_class(cls) -> Type[RBLNModelConfig]:
432
430
  # Lazily loads and caches the corresponding RBLN model config class.
433
- if cls._rbln_config_class is None:
431
+ if "_rbln_config_class" not in cls.__dict__ or cls._rbln_config_class is None:
434
432
  rbln_config_class_name = cls.__name__ + "Config"
435
433
  cls._rbln_config_class = get_rbln_config_class(rbln_config_class_name)
436
434
  return cls._rbln_config_class
@@ -507,6 +505,9 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
507
505
  f"Please ensure the model directory exists and you have the necessary permissions to access it."
508
506
  )
509
507
 
508
+ if isinstance(self.config, PretrainedConfig):
509
+ self.config.save_pretrained(real_save_dir)
510
+
510
511
  if save_directory_path == real_save_dir:
511
512
  raise FileExistsError(
512
513
  f"Cannot save model to '{save_directory}'. This directory already exists and contains the model files."
@@ -534,7 +535,10 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
534
535
  raise e # Re-raise the exception after cleanup
535
536
 
536
537
  if push_to_hub:
537
- return super().push_to_hub(str(save_directory_path), **kwargs)
538
+ repo_id = kwargs.pop("repo_id", None)
539
+ if repo_id is None:
540
+ raise ValueError("`repo_id` must be provided to push the model to the HuggingFace model hub.")
541
+ return super().push_to_hub(repo_id=repo_id, **kwargs)
538
542
 
539
543
  @staticmethod
540
544
  def _raise_missing_compiled_file_error(missing_files: List[str]):
@@ -98,6 +98,10 @@ _import_structure = {
98
98
  "RBLNQwen2_5_VLForConditionalGenerationConfig",
99
99
  "RBLNQwen2ForCausalLM",
100
100
  "RBLNQwen2ForCausalLMConfig",
101
+ "RBLNQwen3ForCausalLM",
102
+ "RBLNQwen3ForCausalLMConfig",
103
+ "RBLNQwen3Model",
104
+ "RBLNQwen3ModelConfig",
101
105
  "RBLNResNetForImageClassification",
102
106
  "RBLNResNetForImageClassificationConfig",
103
107
  "RBLNRobertaForMaskedLM",
@@ -204,6 +208,10 @@ if TYPE_CHECKING:
204
208
  RBLNQwen2_5_VLForConditionalGenerationConfig,
205
209
  RBLNQwen2ForCausalLM,
206
210
  RBLNQwen2ForCausalLMConfig,
211
+ RBLNQwen3ForCausalLM,
212
+ RBLNQwen3ForCausalLMConfig,
213
+ RBLNQwen3Model,
214
+ RBLNQwen3ModelConfig,
207
215
  RBLNResNetForImageClassification,
208
216
  RBLNResNetForImageClassificationConfig,
209
217
  RBLNRobertaForMaskedLM,
@@ -113,6 +113,7 @@ _import_structure = {
113
113
  "mistral": ["RBLNMistralForCausalLM", "RBLNMistralForCausalLMConfig"],
114
114
  "phi": ["RBLNPhiForCausalLM", "RBLNPhiForCausalLMConfig"],
115
115
  "qwen2": ["RBLNQwen2ForCausalLM", "RBLNQwen2ForCausalLMConfig"],
116
+ "qwen3": ["RBLNQwen3ForCausalLM", "RBLNQwen3ForCausalLMConfig", "RBLNQwen3Model", "RBLNQwen3ModelConfig"],
116
117
  "resnet": ["RBLNResNetForImageClassification", "RBLNResNetForImageClassificationConfig"],
117
118
  "roberta": [
118
119
  "RBLNRobertaForMaskedLM",
@@ -241,6 +242,7 @@ if TYPE_CHECKING:
241
242
  RBLNQwen2_5_VLForConditionalGeneration,
242
243
  RBLNQwen2_5_VLForConditionalGenerationConfig,
243
244
  )
245
+ from .qwen3 import RBLNQwen3ForCausalLM, RBLNQwen3ForCausalLMConfig, RBLNQwen3Model, RBLNQwen3ModelConfig
244
246
  from .resnet import RBLNResNetForImageClassification, RBLNResNetForImageClassificationConfig
245
247
  from .roberta import (
246
248
  RBLNRobertaForMaskedLM,
@@ -43,7 +43,15 @@ class RBLNCLIPTextModelWithProjectionConfig(RBLNCLIPTextModelConfig):
43
43
 
44
44
 
45
45
  class RBLNCLIPVisionModelConfig(RBLNModelConfig):
46
- def __init__(self, batch_size: Optional[int] = None, image_size: Optional[int] = None, **kwargs: Dict[str, Any]):
46
+ def __init__(
47
+ self,
48
+ batch_size: Optional[int] = None,
49
+ image_size: Optional[int] = None,
50
+ interpolate_pos_encoding: Optional[bool] = None,
51
+ output_hidden_states: Optional[bool] = None,
52
+ output_attentions: Optional[bool] = None,
53
+ **kwargs: Dict[str, Any],
54
+ ):
47
55
  """
48
56
  Args:
49
57
  batch_size (Optional[int]): The batch size for image processing. Defaults to 1.
@@ -60,6 +68,9 @@ class RBLNCLIPVisionModelConfig(RBLNModelConfig):
60
68
  raise ValueError(f"batch_size must be a positive integer, got {self.batch_size}")
61
69
 
62
70
  self.image_size = image_size
71
+ self.interpolate_pos_encoding = interpolate_pos_encoding or False
72
+ self.output_hidden_states = output_hidden_states
73
+ self.output_attentions = output_attentions
63
74
 
64
75
  @property
65
76
  def image_width(self):