optimum-rbln 0.7.4a5__py3-none-any.whl → 0.7.4a6__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 +8 -0
- optimum/rbln/__version__.py +2 -2
- optimum/rbln/modeling_base.py +22 -3
- optimum/rbln/transformers/__init__.py +8 -0
- optimum/rbln/transformers/models/__init__.py +12 -0
- optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py +65 -41
- optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +192 -99
- 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-0.7.4a5.dist-info → optimum_rbln-0.7.4a6.dist-info}/METADATA +1 -1
- {optimum_rbln-0.7.4a5.dist-info → optimum_rbln-0.7.4a6.dist-info}/RECORD +16 -12
- {optimum_rbln-0.7.4a5.dist-info → optimum_rbln-0.7.4a6.dist-info}/WHEEL +0 -0
- {optimum_rbln-0.7.4a5.dist-info → optimum_rbln-0.7.4a6.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:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: optimum-rbln
|
3
|
-
Version: 0.7.
|
3
|
+
Version: 0.7.4a6
|
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=gwlRrI10tkLlpXt-N3FbmMeVqEJRVExtfVrxsqdcCpM,12814
|
2
|
+
optimum/rbln/__version__.py,sha256=BD2gZveYjqvIGZe_xk184XdKxoYxjbIrrR0xZAj20HQ,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=9IzUXwbMZ1cGFNa25wvoBs42UkQrvZNgvlbZ8zjOTOs,7712
|
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=9f2fJgdchqM_CJbx5BogQQ_xvCVtgYQ8bgyARt4lFu4,6790
|
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=BDATZTGF0J2zfc3u-zHXPKbkvsVHOwkNR10smB9Zuo8,41746
|
86
|
+
optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py,sha256=uzw1nOz_jdi3lrBiLkkHy8QiOn-M5bCwNtyNs01a-d8,42815
|
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
|
@@ -122,6 +122,10 @@ optimum/rbln/transformers/models/qwen2/__init__.py,sha256=Tu4_AXy3ktTvxGwxED3kew
|
|
122
122
|
optimum/rbln/transformers/models/qwen2/configuration_qwen2.py,sha256=sQBu4UjM8Ctiy696FLjKeck1t49MR31zWTCN_bMvBl4,773
|
123
123
|
optimum/rbln/transformers/models/qwen2/modeling_qwen2.py,sha256=9-aFDvjMzPNUyGOz0qo33RE18bUFGYZ3Wt_68zb5uJY,1530
|
124
124
|
optimum/rbln/transformers/models/qwen2/qwen2_architecture.py,sha256=XlNAMYAcDLohnSAhIFGKOPuCB5XLgzYs5ABWdeQSaZs,720
|
125
|
+
optimum/rbln/transformers/models/qwen2_5_vl/__init__.py,sha256=rAW3DKQUzGL6EMwa5r1iLu94yhpiZpk6zfoD7TtYXrc,865
|
126
|
+
optimum/rbln/transformers/models/qwen2_5_vl/configuration_qwen2_5_vl.py,sha256=dPcGNaLwJf61PIvVbyt-lvBflp_dvK0hubhNoA3len0,3123
|
127
|
+
optimum/rbln/transformers/models/qwen2_5_vl/modeling_qwen2_5_vl.py,sha256=sKsDAiMGWtbquTw6_PITK4ijL0aHBZqgs2nPObEiFN8,24951
|
128
|
+
optimum/rbln/transformers/models/qwen2_5_vl/qwen2_5_vl_architecture.py,sha256=YRy7Ylm-UQLovt5BmxhayJMKzF3rj0_HIc4tUXaiPO0,7474
|
125
129
|
optimum/rbln/transformers/models/seq2seq/__init__.py,sha256=6WKstWiS1kW0oFDn_jyrKMW5QEJAWkmsSRAaadNedDM,715
|
126
130
|
optimum/rbln/transformers/models/seq2seq/configuration_seq2seq2.py,sha256=vSNP1eILfL32cbiLOAD58Ocz6lk3hYFnhIRLDVqlSoI,2624
|
127
131
|
optimum/rbln/transformers/models/seq2seq/modeling_seq2seq.py,sha256=7MN6CNVyYg4JsULYXDfQ_KkDd3w-1TXuxndSrM-CX8w,16980
|
@@ -153,10 +157,10 @@ optimum/rbln/utils/hub.py,sha256=bNmOJGEO9Jfux4Cg8Xli-898I4mxk20KuwQOhP0Zs1U,419
|
|
153
157
|
optimum/rbln/utils/import_utils.py,sha256=uMldLJmDVMj5uHvxBfb96uV29bfGEDvlksLY26GOHAs,4389
|
154
158
|
optimum/rbln/utils/logging.py,sha256=VKKBmlQSdg6iZCGmAXaWYiW67K84jyp1QJhLQSSjPPE,3453
|
155
159
|
optimum/rbln/utils/model_utils.py,sha256=DfD_Z2qvZHqcddXqnzTM1AN8khanj3-DXK2lJvVxDvs,1278
|
156
|
-
optimum/rbln/utils/runtime_utils.py,sha256=
|
160
|
+
optimum/rbln/utils/runtime_utils.py,sha256=LoKNK3AQNV_BSScstIZWjICkJf265MnUgy360BOocVI,5454
|
157
161
|
optimum/rbln/utils/save_utils.py,sha256=hG5uOtYmecSXZuGTvCXsTM-SiyZpr5q3InUGCCq_jzQ,3619
|
158
162
|
optimum/rbln/utils/submodule.py,sha256=_qX15LE2nHzOFVUp5U5DqdJx11RzPBR848PR0nsjQBc,4293
|
159
|
-
optimum_rbln-0.7.
|
160
|
-
optimum_rbln-0.7.
|
161
|
-
optimum_rbln-0.7.
|
162
|
-
optimum_rbln-0.7.
|
163
|
+
optimum_rbln-0.7.4a6.dist-info/METADATA,sha256=m4NMptBdyrOQ746DO16TCGBCSHeidkLBpXQQC8_EEhY,5300
|
164
|
+
optimum_rbln-0.7.4a6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
165
|
+
optimum_rbln-0.7.4a6.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
166
|
+
optimum_rbln-0.7.4a6.dist-info/RECORD,,
|
File without changes
|
File without changes
|