optimum-rbln 0.7.4a5__py3-none-any.whl → 0.7.4a7__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.
@@ -0,0 +1,214 @@
1
+ import math
2
+ from typing import Tuple
3
+
4
+ import torch
5
+ import torch.nn as nn
6
+
7
+ from ..decoderonly.decoderonly_architecture import (
8
+ DecoderOnlyWrapper,
9
+ apply_rotary_pos_emb,
10
+ )
11
+
12
+
13
+ class Qwen2_5_VisionTransformerWrapper(nn.Module):
14
+ def __init__(self, model: torch.nn.Module):
15
+ super().__init__()
16
+ self._original_mod = model
17
+ self.fullatt_block_indexes = model.fullatt_block_indexes
18
+ self.merger = model.merger
19
+ window_seq_len = (model.window_size // model.patch_size) ** 2
20
+ self.blocks = self.wrap_vision_blocks(model.blocks, window_seq_len)
21
+
22
+ def wrap_vision_blocks(self, blocks: torch.nn.ModuleList, window_seq_len: int):
23
+ wrapped_blocks = []
24
+ for i, block in enumerate(blocks):
25
+ is_full_attn = True if i in self.fullatt_block_indexes else False
26
+ wrapped_blocks.append(Qwen2_5_VLVisionBlock(block, is_full_attn, window_seq_len))
27
+ return nn.ModuleList(wrapped_blocks)
28
+
29
+ def forward(
30
+ self,
31
+ hidden_states: torch.Tensor,
32
+ full_attn_masks: torch.Tensor,
33
+ window_attn_masks: torch.Tensor,
34
+ cos: torch.Tensor,
35
+ sin: torch.Tensor,
36
+ ):
37
+ full_attn_masks = (1 - full_attn_masks) * torch.finfo(torch.float32).min
38
+ window_attn_masks = (1 - window_attn_masks) * torch.finfo(torch.float32).min
39
+
40
+ for i, block in enumerate(self.blocks):
41
+ attn_masks = full_attn_masks if i in self.fullatt_block_indexes else window_attn_masks
42
+ hidden_states = block(hidden_states, attn_masks, [cos, sin])
43
+
44
+ hidden_states = self.merger(hidden_states)
45
+
46
+ return hidden_states
47
+
48
+
49
+ class Qwen2_5_VLVisionBlock(torch.nn.Module):
50
+ def __init__(self, model: torch.nn.Module, is_full_attn: bool, window_seq_len: int):
51
+ super().__init__()
52
+ self._origin_model = model
53
+ self.norm1 = model.norm1
54
+ self.norm2 = model.norm2
55
+
56
+ if is_full_attn:
57
+ self.attn = Qwen2_5_VLVisionFullAttention(model.attn)
58
+ else:
59
+ self.attn = Qwen2_5_VLVisionWindowAttention(model.attn, window_seq_len)
60
+ self.mlp = model.mlp
61
+
62
+ def forward(
63
+ self,
64
+ hidden_states: torch.Tensor,
65
+ attn_masks: torch.Tensor,
66
+ position_embeddings: Tuple[torch.Tensor, torch.Tensor],
67
+ ) -> torch.Tensor:
68
+ hidden_states = hidden_states + self.attn(
69
+ self.norm1(hidden_states),
70
+ attn_masks,
71
+ position_embeddings,
72
+ )
73
+ hidden_states = hidden_states + self.mlp(self.norm2(hidden_states))
74
+ return hidden_states
75
+
76
+
77
+ class Qwen2_5_VLVisionFullAttention(nn.Module):
78
+ def __init__(self, model: nn.Module) -> None:
79
+ super().__init__()
80
+ self._origin_model = model
81
+ self.num_heads = model.num_heads
82
+ self.head_dim = model.head_dim
83
+ self.qkv = model.qkv
84
+ self.proj = model.proj
85
+
86
+ def forward(
87
+ self,
88
+ hidden_states: torch.Tensor,
89
+ attn_masks: torch.Tensor,
90
+ position_embeddings: Tuple[torch.Tensor, torch.Tensor],
91
+ ) -> torch.Tensor:
92
+ seq_length = hidden_states.shape[0]
93
+ hidden_states = hidden_states.unsqueeze(0)
94
+ q, k, v = (
95
+ self.qkv(hidden_states).reshape(1, seq_length, 3, self.num_heads, -1).permute(2, 0, 3, 1, 4).unbind(0)
96
+ )
97
+
98
+ cos, sin = position_embeddings
99
+ q, k = apply_rotary_pos_emb(q, k, cos, sin)
100
+
101
+ attn_weights = torch.matmul(q, k.transpose(2, 3)) / math.sqrt(self.head_dim)
102
+ attn_weights = attn_weights + attn_masks
103
+ attn_weights = nn.functional.softmax(attn_weights, dim=-1, dtype=torch.float32)
104
+ attn_output = torch.matmul(attn_weights, v)
105
+ attn_output = attn_output.transpose(1, 2)
106
+ attn_output = attn_output.reshape(1, seq_length, -1)
107
+ attn_output = self.proj(attn_output).squeeze(0)
108
+
109
+ return attn_output
110
+
111
+
112
+ class Qwen2_5_VLVisionWindowAttention(nn.Module):
113
+ def __init__(self, model: nn.Module, window_seq_len: int) -> None:
114
+ super().__init__()
115
+ self._origin_model = model
116
+ self.num_heads = model.num_heads
117
+ self.head_dim = model.head_dim
118
+ self.qkv = model.qkv
119
+ self.proj = model.proj
120
+ self.window_seq_len = window_seq_len
121
+
122
+ def forward(
123
+ self,
124
+ hidden_states: torch.Tensor,
125
+ attn_masks: torch.Tensor,
126
+ position_embeddings: Tuple[torch.Tensor, torch.Tensor],
127
+ ) -> torch.Tensor:
128
+ seq_length = hidden_states.shape[0]
129
+ num_windows = seq_length // self.window_seq_len
130
+
131
+ window_hidden_states = []
132
+ for i in range(0, seq_length, self.window_seq_len):
133
+ window_hidden_states.append(hidden_states[i : i + self.window_seq_len])
134
+ hidden_states = torch.stack(window_hidden_states)
135
+
136
+ q, k, v = (
137
+ self.qkv(hidden_states)
138
+ .reshape(num_windows, self.window_seq_len, 3, self.num_heads, -1)
139
+ .permute(2, 0, 3, 1, 4)
140
+ .unbind(0)
141
+ )
142
+ cos, sin = position_embeddings
143
+ cos = cos.reshape(num_windows, 1, seq_length // num_windows, -1)
144
+ sin = sin.reshape(num_windows, 1, seq_length // num_windows, -1)
145
+ q, k = apply_rotary_pos_emb(q, k, cos, sin)
146
+
147
+ attn_weights = torch.matmul(q, k.transpose(2, 3)) / math.sqrt(self.head_dim)
148
+
149
+ attn_weights = attn_weights + attn_masks
150
+ attn_weights = nn.functional.softmax(attn_weights, dim=-1, dtype=torch.float32)
151
+ attn_output = torch.matmul(attn_weights, v)
152
+ attn_output = attn_output.transpose(1, 2)
153
+ attn_output = attn_output.reshape(1, seq_length, -1)
154
+ attn_output = self.proj(attn_output).squeeze(0)
155
+
156
+ return attn_output
157
+
158
+
159
+ class Qwen2_5_VL_LanguageModelWrapper(DecoderOnlyWrapper):
160
+ def forward(self, *args):
161
+ if self.phase == "decode":
162
+ if self.use_attention_mask:
163
+ (
164
+ input_ids_or_inputs_embeds,
165
+ cache_position,
166
+ attention_mask,
167
+ block_tables,
168
+ position_emb,
169
+ *past_key_values,
170
+ ) = args
171
+ else:
172
+ (
173
+ input_ids_or_inputs_embeds,
174
+ cache_position,
175
+ block_tables,
176
+ position_emb,
177
+ *past_key_values,
178
+ ) = args
179
+ attention_mask = None
180
+ query_position = None
181
+ elif self.phase == "prefill":
182
+ if self.use_attention_mask:
183
+ (
184
+ input_ids_or_inputs_embeds,
185
+ cache_position,
186
+ attention_mask,
187
+ query_position,
188
+ block_tables,
189
+ position_emb,
190
+ *past_key_values,
191
+ ) = args
192
+ else:
193
+ (
194
+ input_ids_or_inputs_embeds,
195
+ cache_position,
196
+ query_position,
197
+ block_tables,
198
+ position_emb,
199
+ *past_key_values,
200
+ ) = args
201
+ attention_mask = None
202
+
203
+ else:
204
+ raise ValueError(f"Unknown phase: {self.phase}")
205
+
206
+ return self.forward_common(
207
+ input_ids_or_inputs_embeds,
208
+ cache_position,
209
+ attention_mask,
210
+ query_position,
211
+ block_tables,
212
+ position_emb,
213
+ *past_key_values,
214
+ )
@@ -45,23 +45,54 @@ class RBLNPytorchRuntime:
45
45
 
46
46
 
47
47
  class UnavailableRuntime:
48
+ """
49
+ A placeholder class used when model runtimes are not created.
50
+
51
+ This class is returned by RBLNBaseModel._from_compiled_models when rbln_config.create_runtimes=False.
52
+ It provides proper error messages when users attempt to use a model that was loaded without
53
+ runtime creation.
54
+
55
+ Usage:
56
+ 1. When compiling models on machines without NPU hardware
57
+ 2. When preparing models for later deployment
58
+ 3. When only model compilation is needed, not inference
59
+
60
+ To use a model with runtimes, either:
61
+ - Load the model with from_pretrained(..., rbln_create_runtimes=True)
62
+ - Or set rbln_config={"create_runtimes": True} during loading
63
+ """
64
+
48
65
  def __call__(self, *args: Any, **kwargs: Any) -> Any:
66
+ """Raises a RuntimeError when the model is called without runtimes."""
49
67
  raise self.forward(*args, **kwargs)
50
68
 
51
69
  def __len__(self) -> int:
70
+ """Returns 0 since no runtimes are available."""
52
71
  return 0
53
72
 
54
73
  def __getitem__(self, idx: int) -> Any:
74
+ """Returns self for any index, allowing iteration to work with appropriate errors."""
55
75
  return self
56
76
 
57
77
  def __iter__(self):
78
+ """Returns an iterator with self as the only item."""
58
79
  return iter([self])
59
80
 
60
81
  def forward(self, *args: List["torch.Tensor"], **kwargs: Dict[str, "torch.Tensor"]):
61
- raise RuntimeError("The model can't run because the runtime hasn't been created.")
82
+ """Raises a detailed RuntimeError explaining why inference cannot be performed."""
83
+ raise RuntimeError(
84
+ "Cannot perform inference: RBLN runtime is not available.\n\n"
85
+ "This model was loaded with create_runtimes=False. To use this model for inference:\n"
86
+ "1. Load the model with runtime creation enabled:\n"
87
+ " model = RBLNModel.from_pretrained(..., rbln_create_runtimes=True)\n"
88
+ "2. Ensure your NPU hardware is properly configured (check with 'rbln-stat' command)\n"
89
+ "3. If you're on a machine without NPU hardware, you need to transfer the model files\n"
90
+ " to a compatible system with NPU support."
91
+ )
62
92
 
63
93
  def __repr__(self) -> str:
64
- return "UnavailableRuntime"
94
+ """Returns a detailed string representation of the UnavailableRuntime."""
95
+ return "<UnavailableRuntime: Model loaded without runtime creation (create_runtimes=False)>"
65
96
 
66
97
 
67
98
  class ContextRblnConfig:
@@ -43,9 +43,16 @@ class SubModulesMixin:
43
43
  cls, model: "PreTrainedModel", model_save_dir: str, rbln_config: RBLNModelConfig, **kwargs
44
44
  ) -> List["RBLNBaseModel"]:
45
45
  rbln_submodules = []
46
+ submodule_prefix = getattr(cls, "_rbln_submodule_prefix", None)
47
+
46
48
  for submodule in cls._rbln_submodules:
47
49
  submodule_name = submodule["name"]
48
- torch_submodule: "PreTrainedModel" = getattr(model, submodule["name"])
50
+ if submodule_prefix is not None:
51
+ torch_submodule: PreTrainedModel = getattr(model, submodule_prefix)
52
+ torch_submodule = getattr(torch_submodule, submodule_name)
53
+ else:
54
+ torch_submodule: PreTrainedModel = getattr(model, submodule_name)
55
+
49
56
  cls_name = torch_submodule.__class__.__name__
50
57
  submodule_cls: Type["RBLNBaseModel"] = getattr(importlib.import_module("optimum.rbln"), f"RBLN{cls_name}")
51
58
  submodule_rbln_config = getattr(rbln_config, submodule_name) or {}
@@ -57,6 +64,7 @@ class SubModulesMixin:
57
64
 
58
65
  rbln_submodule = submodule_cls.from_model(
59
66
  model=torch_submodule,
67
+ config=torch_submodule.config,
60
68
  subfolder=submodule_name,
61
69
  model_save_dir=model_save_dir,
62
70
  rbln_config=submodule_rbln_config,
@@ -70,6 +78,7 @@ class SubModulesMixin:
70
78
  @classmethod
71
79
  def _load_submodules_from_compiled_models(cls, model_save_dir: str, rbln_config: RBLNModelConfig, **kwargs):
72
80
  rbln_submodules = []
81
+
73
82
  for submodule in cls._rbln_submodules:
74
83
  submodule_name = submodule["name"]
75
84
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: optimum-rbln
3
- Version: 0.7.4a5
3
+ Version: 0.7.4a7
4
4
  Summary: Optimum RBLN is the interface between the Hugging Face Transformers and Diffusers libraries and RBLN accelerators. It provides a set of tools enabling easy model loading and inference on single and multiple rbln device settings for different downstream tasks.
5
5
  Project-URL: Homepage, https://rebellions.ai
6
6
  Project-URL: Documentation, https://docs.rbln.ai
@@ -1,8 +1,8 @@
1
- optimum/rbln/__init__.py,sha256=I1L4sFUTPi3og3Dxx3kmWEq4tza7PhQpR6Kt3ExUQs8,12374
2
- optimum/rbln/__version__.py,sha256=tbsOVqydiZKxDMzmIcNOjsjuX2tONzvUiapW5PDnVtU,513
1
+ optimum/rbln/__init__.py,sha256=c2whRR6XkelNLlH1MwAKYMoaBEhmGxSQFrhfKS1JC-I,13186
2
+ optimum/rbln/__version__.py,sha256=ExpymO8GOd28EzUaHV6rNr0B3jcFOOGB0YXiUm3i25Y,519
3
3
  optimum/rbln/configuration_utils.py,sha256=1IX8AHmQbnJvhNm3yD6ZJABP7Oi40WvVSNlThty-ASk,29167
4
4
  optimum/rbln/modeling.py,sha256=qDXB69Oq0jx9hfONebDiSNe2_DgKYhnAGLTbGAtwYVw,9677
5
- optimum/rbln/modeling_base.py,sha256=WPA5yhgc8YHzxcicJeQ1vzs3Bxrl5dQWGKB_Inb6W3A,23090
5
+ optimum/rbln/modeling_base.py,sha256=3JQhXDh_Rz1f6bMNxgFk-Xd-lQcAVeh-q1KVO0ijSaA,24141
6
6
  optimum/rbln/diffusers/__init__.py,sha256=XL6oKPHbPCV6IVCw3fu0-M9mD2KO_x6unx5kJdAtpVY,6180
7
7
  optimum/rbln/diffusers/modeling_diffusers.py,sha256=mOP352aYok7DQIQj1dKq1uTZwIkjmUIm-pmtlu6rIUI,16987
8
8
  optimum/rbln/diffusers/configurations/__init__.py,sha256=Sk_sQVTuTl01RVgYViWknQSLmulxKaISS0w-oPdNoBQ,1164
@@ -60,13 +60,13 @@ optimum/rbln/ops/attn.py,sha256=x02yFLk7FcONFqfow0ROmVy9fmxo5Pw0SPCiDY3AZNg,9012
60
60
  optimum/rbln/ops/flash_attn.py,sha256=NmCqUdMTzgJ4sbYGj8IWXJEsLWvbuCMponR01w5DK6w,4121
61
61
  optimum/rbln/ops/kv_cache_update.py,sha256=HjnHBR-oFrJQibsVnkYb0P5_-wEma8jl0mkjkylwakU,1270
62
62
  optimum/rbln/ops/linear.py,sha256=1_7Hg-9wXxhu97fqPobotLQx17k7VPeSSL91_9Z7EDg,1018
63
- optimum/rbln/transformers/__init__.py,sha256=Ey2Et6TFYzwCncC3m1rC-UHTL4Zb-HC3jZfgvhfOssI,7272
63
+ optimum/rbln/transformers/__init__.py,sha256=P89UOclQWiLgNkH90GXdnwWD2492O2tusM-fZApfBNg,8084
64
64
  optimum/rbln/transformers/configuration_alias.py,sha256=qFVfg6ohsR7a6b-CBgxjBUPDrk9MyiJwtO8AQah_RTU,1505
65
65
  optimum/rbln/transformers/configuration_generic.py,sha256=XIiZ1-5p1CMHhG7Sr2qR4SLYKcYw9aph7eGlga3Opx0,5056
66
66
  optimum/rbln/transformers/modeling_alias.py,sha256=yx7FnZQWAnrWzivaO5hI7T6i-fyLzt2tMIXG2oDNbPo,1657
67
67
  optimum/rbln/transformers/modeling_generic.py,sha256=nT_lytAILkYtwBVJKxXg0dxmh0UpjGYO6zOdLoMs1uU,12891
68
68
  optimum/rbln/transformers/modeling_rope_utils.py,sha256=3zwkhYUyTZhxCJUSmwCc88iiY1TppRWEY9ShwUqNB2k,14293
69
- optimum/rbln/transformers/models/__init__.py,sha256=N2xll74hQvQMD2AIaiDSIqL7CHeR8UxknpRjFCx8KQU,6287
69
+ optimum/rbln/transformers/models/__init__.py,sha256=72eMPN5UYGJ9P5gnJ2yi25cGdX1jV7viTOKmsX2OqBg,7221
70
70
  optimum/rbln/transformers/models/auto/__init__.py,sha256=GvGbb3ZpMv-h6euXeZ42jSizoOfrL2O1uvpAnfKxYEo,1034
71
71
  optimum/rbln/transformers/models/auto/auto_factory.py,sha256=jS33v5H6AY7yHZMAQPq94MBLer2wpb33IVMYcb1w57A,7047
72
72
  optimum/rbln/transformers/models/auto/modeling_auto.py,sha256=Un9qoqdy3dO8JBza_bTJF_6_fRVNM9QisihSgTRFI-o,3933
@@ -82,8 +82,8 @@ optimum/rbln/transformers/models/clip/configuration_clip.py,sha256=wgfZeVvcVdSzr
82
82
  optimum/rbln/transformers/models/clip/modeling_clip.py,sha256=UslcDN6otyQ_psou7F_YcdK5vCImEtgIdcbwmexSfOM,7256
83
83
  optimum/rbln/transformers/models/decoderonly/__init__.py,sha256=vQYZDDdoddwA7yKc5zzrq2Zs9sax-0p8rNF_aYfF4bk,1006
84
84
  optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py,sha256=b1W7zS0MUmeDd048bLp5AkZMrWd3LIhHaVy8NvlwdCw,4116
85
- optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py,sha256=tOW8C9_HNtve5xXPYfrbiWLJ0rjpRHTWz80oJ3j75hs,40948
86
- optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py,sha256=LS3ByYNJaFfwX9zEDH2b1tsbu5DraTSPV9XLGSIG0F0,38264
85
+ optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py,sha256=NG2tKC3gT57r34PYKgU0evZHctEHzJGRrk2FOjLyK7Q,41748
86
+ optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py,sha256=5o2m_xPVjfCovP_jcW8E17sSKkLqcVblr4mFLbv-VDU,42991
87
87
  optimum/rbln/transformers/models/dpt/__init__.py,sha256=Nzep9mlzKyL1kV726IBqY8DnLp1DkH9JzFeknWSRhok,714
88
88
  optimum/rbln/transformers/models/dpt/configuration_dpt.py,sha256=4fW6bzVhaAxym4wGV3F785rvUOoWPyw_gdEMqB08Leg,755
89
89
  optimum/rbln/transformers/models/dpt/modeling_dpt.py,sha256=oKLX7MQZvfk1QB8wOtcdi7AmZH2fOIVbypa9A3RA9MI,733
@@ -99,13 +99,16 @@ optimum/rbln/transformers/models/gpt2/__init__.py,sha256=socBMIBZSiLbrVN12rQ4nL9
99
99
  optimum/rbln/transformers/models/gpt2/configuration_gpt2.py,sha256=vKvJD8P9Li4W9wdVoQcqMEr1MwEXojPBnF2NE85VXAo,772
100
100
  optimum/rbln/transformers/models/gpt2/gpt2_architecture.py,sha256=1IxqHmB-GlH2Dv2Yk4z0rMxL9CpxMGHhSu_x8_4cxvs,3008
101
101
  optimum/rbln/transformers/models/gpt2/modeling_gpt2.py,sha256=qBDanUk_O-HtOIVCA4IE3FYyCsnL9xIDK00vft-0caw,1490
102
+ optimum/rbln/transformers/models/idefics3/__init__.py,sha256=ulxE7HEfXsNJhd25J9Fvi6vggo9aZH9sLKJjWB6LlzQ,814
103
+ optimum/rbln/transformers/models/idefics3/configuration_idefics3.py,sha256=sM0pXsvkxcpDXagoKlqwKdBAcNdayB9KlWdYC9xlyDU,1889
104
+ optimum/rbln/transformers/models/idefics3/modeling_idefics3.py,sha256=Rr9BJDyoOqJFQ8dJV78QU4Tjjhhj3aqRk05JcDqFv6Y,17904
102
105
  optimum/rbln/transformers/models/llama/__init__.py,sha256=knxvRkPx8x6-WOxqSq_PlaKYD-9F9Q8dh7r095Esey0,708
103
106
  optimum/rbln/transformers/models/llama/configuration_llama.py,sha256=B9gr4pTn9yiv3-8DIk0P7_AQdIHEc7SuLaH9gZAmP8E,773
104
107
  optimum/rbln/transformers/models/llama/llama_architecture.py,sha256=S7MCPfyjG5eUqgaS-QNBB0ApUD6wnb5fR0RHq7k7-pA,728
105
108
  optimum/rbln/transformers/models/llama/modeling_llama.py,sha256=Z3iony7icoFhRQ11MAuFx9UF03uJCsvJQZ6bxHXlrgk,1530
106
109
  optimum/rbln/transformers/models/llava_next/__init__.py,sha256=kDXKr7wMkp1XqE__DER2B8kQF_NYMxhzsQS5ytGg56I,752
107
110
  optimum/rbln/transformers/models/llava_next/configuration_llava_next.py,sha256=QPreWZyohwRL23GOyvoAfKtk5UNg7IJ_Y_pNfUDe7cU,1838
108
- optimum/rbln/transformers/models/llava_next/modeling_llava_next.py,sha256=-NvLf9ixzEbVqUKlkyZW94n0tmnsIQ7CvP1Y7U1JEPU,25773
111
+ optimum/rbln/transformers/models/llava_next/modeling_llava_next.py,sha256=xOXc1XUIK4oLSFvAq7Q0lxiOLlDFMbFdOcg5JvLnVkI,25979
109
112
  optimum/rbln/transformers/models/midm/__init__.py,sha256=IC3FETwgYinbp3wDj7tp4zIHJhbqM-c6GfTRdYcMNj8,913
110
113
  optimum/rbln/transformers/models/midm/configuration_midm.py,sha256=Kv5g5dIsBrhGcZ2_pFUOPNB80np4Xiw0wPH1IZm1PHI,772
111
114
  optimum/rbln/transformers/models/midm/midm_architecture.py,sha256=357iviqQkzI0s_lU_teH1sVOChNRDUABe3GA0HuhZZY,5444
@@ -122,6 +125,10 @@ optimum/rbln/transformers/models/qwen2/__init__.py,sha256=Tu4_AXy3ktTvxGwxED3kew
122
125
  optimum/rbln/transformers/models/qwen2/configuration_qwen2.py,sha256=sQBu4UjM8Ctiy696FLjKeck1t49MR31zWTCN_bMvBl4,773
123
126
  optimum/rbln/transformers/models/qwen2/modeling_qwen2.py,sha256=9-aFDvjMzPNUyGOz0qo33RE18bUFGYZ3Wt_68zb5uJY,1530
124
127
  optimum/rbln/transformers/models/qwen2/qwen2_architecture.py,sha256=XlNAMYAcDLohnSAhIFGKOPuCB5XLgzYs5ABWdeQSaZs,720
128
+ optimum/rbln/transformers/models/qwen2_5_vl/__init__.py,sha256=rAW3DKQUzGL6EMwa5r1iLu94yhpiZpk6zfoD7TtYXrc,865
129
+ optimum/rbln/transformers/models/qwen2_5_vl/configuration_qwen2_5_vl.py,sha256=dPcGNaLwJf61PIvVbyt-lvBflp_dvK0hubhNoA3len0,3123
130
+ optimum/rbln/transformers/models/qwen2_5_vl/modeling_qwen2_5_vl.py,sha256=sKsDAiMGWtbquTw6_PITK4ijL0aHBZqgs2nPObEiFN8,24951
131
+ optimum/rbln/transformers/models/qwen2_5_vl/qwen2_5_vl_architecture.py,sha256=YRy7Ylm-UQLovt5BmxhayJMKzF3rj0_HIc4tUXaiPO0,7474
125
132
  optimum/rbln/transformers/models/seq2seq/__init__.py,sha256=6WKstWiS1kW0oFDn_jyrKMW5QEJAWkmsSRAaadNedDM,715
126
133
  optimum/rbln/transformers/models/seq2seq/configuration_seq2seq2.py,sha256=vSNP1eILfL32cbiLOAD58Ocz6lk3hYFnhIRLDVqlSoI,2624
127
134
  optimum/rbln/transformers/models/seq2seq/modeling_seq2seq.py,sha256=7MN6CNVyYg4JsULYXDfQ_KkDd3w-1TXuxndSrM-CX8w,16980
@@ -153,10 +160,10 @@ optimum/rbln/utils/hub.py,sha256=bNmOJGEO9Jfux4Cg8Xli-898I4mxk20KuwQOhP0Zs1U,419
153
160
  optimum/rbln/utils/import_utils.py,sha256=uMldLJmDVMj5uHvxBfb96uV29bfGEDvlksLY26GOHAs,4389
154
161
  optimum/rbln/utils/logging.py,sha256=VKKBmlQSdg6iZCGmAXaWYiW67K84jyp1QJhLQSSjPPE,3453
155
162
  optimum/rbln/utils/model_utils.py,sha256=DfD_Z2qvZHqcddXqnzTM1AN8khanj3-DXK2lJvVxDvs,1278
156
- optimum/rbln/utils/runtime_utils.py,sha256=5-DYniyP59nx-mrrbi7AqA77L85b4Cm5oLpaxidSyss,3699
163
+ optimum/rbln/utils/runtime_utils.py,sha256=LoKNK3AQNV_BSScstIZWjICkJf265MnUgy360BOocVI,5454
157
164
  optimum/rbln/utils/save_utils.py,sha256=hG5uOtYmecSXZuGTvCXsTM-SiyZpr5q3InUGCCq_jzQ,3619
158
- optimum/rbln/utils/submodule.py,sha256=_qX15LE2nHzOFVUp5U5DqdJx11RzPBR848PR0nsjQBc,4293
159
- optimum_rbln-0.7.4a5.dist-info/METADATA,sha256=AaElWAA8uJqR_z1U6NQ59b0Cx9o3FJI5jlz6tOoJwQo,5300
160
- optimum_rbln-0.7.4a5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
161
- optimum_rbln-0.7.4a5.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
162
- optimum_rbln-0.7.4a5.dist-info/RECORD,,
165
+ optimum/rbln/utils/submodule.py,sha256=TtcH3OLctFd2Dosc-zNMGZ8xOXKKUfE91dLQ1v09E8Q,4636
166
+ optimum_rbln-0.7.4a7.dist-info/METADATA,sha256=QEd-nMYyV2VO40XhrSwZwApvFaWXp9MZ3RI_MFBX8z8,5300
167
+ optimum_rbln-0.7.4a7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
168
+ optimum_rbln-0.7.4a7.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
169
+ optimum_rbln-0.7.4a7.dist-info/RECORD,,