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.
- optimum/rbln/__init__.py +16 -0
- optimum/rbln/__version__.py +2 -2
- optimum/rbln/modeling_base.py +22 -3
- optimum/rbln/transformers/__init__.py +16 -0
- optimum/rbln/transformers/models/__init__.py +24 -0
- optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py +67 -41
- optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +198 -99
- optimum/rbln/transformers/models/idefics3/__init__.py +16 -0
- optimum/rbln/transformers/models/idefics3/configuration_idefics3.py +51 -0
- optimum/rbln/transformers/models/idefics3/modeling_idefics3.py +459 -0
- optimum/rbln/transformers/models/llava_next/modeling_llava_next.py +6 -0
- optimum/rbln/transformers/models/qwen2_5_vl/__init__.py +19 -0
- optimum/rbln/transformers/models/qwen2_5_vl/configuration_qwen2_5_vl.py +68 -0
- optimum/rbln/transformers/models/qwen2_5_vl/modeling_qwen2_5_vl.py +608 -0
- optimum/rbln/transformers/models/qwen2_5_vl/qwen2_5_vl_architecture.py +214 -0
- optimum/rbln/utils/runtime_utils.py +33 -2
- optimum/rbln/utils/submodule.py +10 -1
- {optimum_rbln-0.7.4a5.dist-info → optimum_rbln-0.7.4a7.dist-info}/METADATA +1 -1
- {optimum_rbln-0.7.4a5.dist-info → optimum_rbln-0.7.4a7.dist-info}/RECORD +21 -14
- {optimum_rbln-0.7.4a5.dist-info → optimum_rbln-0.7.4a7.dist-info}/WHEEL +0 -0
- {optimum_rbln-0.7.4a5.dist-info → optimum_rbln-0.7.4a7.dist-info}/licenses/LICENSE +0 -0
@@ -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
|
-
|
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
|
-
|
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:
|
optimum/rbln/utils/submodule.py
CHANGED
@@ -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
|
-
|
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.
|
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=
|
2
|
-
optimum/rbln/__version__.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
86
|
-
optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py,sha256=
|
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
|
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=
|
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=
|
159
|
-
optimum_rbln-0.7.
|
160
|
-
optimum_rbln-0.7.
|
161
|
-
optimum_rbln-0.7.
|
162
|
-
optimum_rbln-0.7.
|
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,,
|
File without changes
|
File without changes
|