optimum-rbln 0.1.13__py3-none-any.whl → 0.2.0__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 +41 -38
- optimum/rbln/__version__.py +16 -1
- optimum/rbln/diffusers/__init__.py +26 -2
- optimum/rbln/{modeling_diffusers.py → diffusers/modeling_diffusers.py} +97 -126
- optimum/rbln/diffusers/models/__init__.py +36 -3
- optimum/rbln/{transformers/generation → diffusers/models/autoencoders}/__init__.py +1 -2
- optimum/rbln/diffusers/models/{autoencoder_kl.py → autoencoders/autoencoder_kl.py} +73 -61
- optimum/rbln/diffusers/models/autoencoders/vae.py +83 -0
- optimum/rbln/diffusers/models/controlnet.py +54 -14
- optimum/rbln/diffusers/models/transformers/__init__.py +24 -0
- optimum/rbln/diffusers/models/transformers/transformer_sd3.py +203 -0
- optimum/rbln/diffusers/models/unets/__init__.py +24 -0
- optimum/rbln/diffusers/models/{unet_2d_condition.py → unets/unet_2d_condition.py} +82 -22
- optimum/rbln/diffusers/pipelines/__init__.py +23 -2
- optimum/rbln/diffusers/pipelines/controlnet/multicontrolnet.py +13 -33
- optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet.py +17 -2
- optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +18 -2
- optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +18 -2
- optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +18 -2
- optimum/rbln/diffusers/pipelines/stable_diffusion/__init__.py +1 -0
- optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +2 -2
- optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +1 -13
- optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +31 -0
- optimum/rbln/diffusers/pipelines/stable_diffusion_3/__init__.py +26 -0
- optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +31 -0
- optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +31 -0
- optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +31 -0
- optimum/rbln/diffusers/pipelines/stable_diffusion_xl/__init__.py +24 -0
- optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +15 -8
- optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +15 -8
- optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +31 -0
- optimum/rbln/modeling.py +238 -0
- optimum/rbln/modeling_base.py +186 -760
- optimum/rbln/modeling_config.py +31 -7
- optimum/rbln/ops/__init__.py +26 -0
- optimum/rbln/ops/attn.py +221 -0
- optimum/rbln/ops/flash_attn.py +70 -0
- optimum/rbln/ops/kv_cache_update.py +69 -0
- optimum/rbln/transformers/__init__.py +20 -2
- optimum/rbln/{modeling_alias.py → transformers/modeling_alias.py} +5 -1
- optimum/rbln/transformers/modeling_generic.py +385 -0
- optimum/rbln/transformers/models/auto/__init__.py +23 -0
- optimum/rbln/transformers/models/auto/auto_factory.py +117 -23
- optimum/rbln/transformers/models/auto/modeling_auto.py +36 -12
- optimum/rbln/transformers/models/bart/__init__.py +0 -1
- optimum/rbln/transformers/models/bart/bart_architecture.py +107 -464
- optimum/rbln/transformers/models/bart/modeling_bart.py +10 -9
- optimum/rbln/transformers/models/bert/modeling_bert.py +3 -6
- optimum/rbln/transformers/models/clip/modeling_clip.py +8 -25
- optimum/rbln/transformers/models/decoderonly/__init__.py +0 -10
- optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py +775 -514
- optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +128 -260
- optimum/rbln/transformers/models/dpt/modeling_dpt.py +1 -1
- optimum/rbln/transformers/models/exaone/exaone_architecture.py +60 -45
- optimum/rbln/transformers/models/exaone/modeling_exaone.py +4 -2
- optimum/rbln/transformers/models/gemma/gemma_architecture.py +33 -104
- optimum/rbln/transformers/models/gpt2/gpt2_architecture.py +50 -238
- optimum/rbln/transformers/models/gpt2/modeling_gpt2.py +3 -2
- optimum/rbln/transformers/models/llama/llama_architecture.py +0 -1
- optimum/rbln/transformers/models/llava_next/modeling_llava_next.py +3 -75
- optimum/rbln/transformers/models/midm/midm_architecture.py +84 -238
- optimum/rbln/transformers/models/midm/modeling_midm.py +5 -6
- optimum/rbln/transformers/models/mistral/mistral_architecture.py +0 -1
- optimum/rbln/transformers/models/phi/phi_architecture.py +60 -261
- optimum/rbln/transformers/models/qwen2/qwen2_architecture.py +0 -1
- optimum/rbln/transformers/models/seq2seq/modeling_seq2seq.py +58 -103
- optimum/rbln/transformers/models/seq2seq/seq2seq_architecture.py +498 -0
- optimum/rbln/transformers/models/t5/__init__.py +0 -1
- optimum/rbln/transformers/models/t5/modeling_t5.py +106 -5
- optimum/rbln/transformers/models/t5/t5_architecture.py +106 -448
- optimum/rbln/transformers/models/wav2vec2/modeling_wav2vec2.py +1 -1
- optimum/rbln/transformers/models/whisper/generation_whisper.py +42 -0
- optimum/rbln/transformers/models/whisper/modeling_whisper.py +78 -55
- optimum/rbln/transformers/models/whisper/whisper_architecture.py +219 -312
- optimum/rbln/transformers/models/xlm_roberta/modeling_xlm_roberta.py +3 -35
- optimum/rbln/transformers/utils/rbln_quantization.py +120 -4
- optimum/rbln/utils/decorator_utils.py +51 -11
- optimum/rbln/utils/hub.py +131 -0
- optimum/rbln/utils/import_utils.py +22 -1
- optimum/rbln/utils/logging.py +37 -0
- optimum/rbln/utils/model_utils.py +52 -0
- optimum/rbln/utils/runtime_utils.py +10 -4
- optimum/rbln/utils/save_utils.py +17 -0
- optimum/rbln/utils/submodule.py +137 -0
- optimum_rbln-0.2.0.dist-info/METADATA +117 -0
- optimum_rbln-0.2.0.dist-info/RECORD +114 -0
- {optimum_rbln-0.1.13.dist-info → optimum_rbln-0.2.0.dist-info}/WHEEL +1 -1
- optimum_rbln-0.2.0.dist-info/licenses/LICENSE +288 -0
- optimum/rbln/transformers/cache_utils.py +0 -107
- optimum/rbln/transformers/generation/streamers.py +0 -139
- optimum/rbln/transformers/generation/utils.py +0 -397
- optimum/rbln/transformers/models/exaone/hf_hub_cached/configuration_exaone.py +0 -181
- optimum/rbln/transformers/models/exaone/hf_hub_cached/modeling_exaone.py +0 -1725
- optimum/rbln/transformers/models/midm/hf_hub_cached/configuration_midm.py +0 -22
- optimum/rbln/transformers/models/midm/hf_hub_cached/midm_bitext_tokenization.py +0 -304
- optimum/rbln/transformers/models/midm/hf_hub_cached/modeling_midm.py +0 -1469
- optimum/rbln/transformers/models/midm/hf_hub_cached/rotary_position_embedding.py +0 -98
- optimum/rbln/utils/context.py +0 -58
- optimum/rbln/utils/timer_utils.py +0 -43
- optimum_rbln-0.1.13.dist-info/METADATA +0 -120
- optimum_rbln-0.1.13.dist-info/RECORD +0 -107
- optimum_rbln-0.1.13.dist-info/entry_points.txt +0 -4
- optimum_rbln-0.1.13.dist-info/licenses/LICENSE +0 -201
@@ -25,9 +25,9 @@ import inspect
|
|
25
25
|
import logging
|
26
26
|
from typing import TYPE_CHECKING, Any, Dict, Optional, Union
|
27
27
|
|
28
|
-
from transformers import
|
28
|
+
from transformers import PretrainedConfig
|
29
29
|
|
30
|
-
from ....
|
30
|
+
from ....modeling import RBLNModel
|
31
31
|
from ....modeling_config import RBLNCompileConfig, RBLNConfig
|
32
32
|
|
33
33
|
|
@@ -38,9 +38,6 @@ if TYPE_CHECKING:
|
|
38
38
|
|
39
39
|
|
40
40
|
class RBLNBertModel(RBLNModel):
|
41
|
-
original_model_class = BertModel
|
42
|
-
original_config_class = BertConfig
|
43
|
-
|
44
41
|
@classmethod
|
45
42
|
def _get_rbln_config(
|
46
43
|
cls,
|
@@ -75,7 +72,7 @@ class RBLNBertModel(RBLNModel):
|
|
75
72
|
if rbln_model_input_names is None and hasattr(cls, "rbln_model_input_names"):
|
76
73
|
rbln_model_input_names = cls.rbln_model_input_names
|
77
74
|
elif rbln_model_input_names is None and hasattr(cls, "rbln_model_input_names") is False:
|
78
|
-
input_names_order = inspect.signature(cls.
|
75
|
+
input_names_order = inspect.signature(cls.hf_class.forward).parameters.keys()
|
79
76
|
raise ValueError(
|
80
77
|
"Specify the model input names obtained by the tokenizer via `rbln_model_input_names`, "
|
81
78
|
f"and be sure to make the order of the inputs same as BertModel forward() arguments like ({list(input_names_order)})"
|
@@ -28,16 +28,15 @@ import torch
|
|
28
28
|
from transformers import (
|
29
29
|
CLIPTextConfig,
|
30
30
|
CLIPTextModel,
|
31
|
-
CLIPTextModelWithProjection,
|
32
31
|
CLIPVisionConfig,
|
33
32
|
CLIPVisionModel,
|
34
33
|
)
|
35
34
|
from transformers.modeling_outputs import BaseModelOutputWithPooling
|
36
35
|
from transformers.models.clip.modeling_clip import CLIPTextModelOutput
|
37
36
|
|
38
|
-
from ....
|
37
|
+
from ....diffusers.modeling_diffusers import RBLNDiffusionMixin
|
38
|
+
from ....modeling import RBLNModel
|
39
39
|
from ....modeling_config import RBLNCompileConfig, RBLNConfig
|
40
|
-
from ....utils.context import override_auto_classes
|
41
40
|
|
42
41
|
|
43
42
|
logger = logging.getLogger(__name__)
|
@@ -57,20 +56,14 @@ class _TextEncoder(torch.nn.Module):
|
|
57
56
|
|
58
57
|
|
59
58
|
class RBLNCLIPTextModel(RBLNModel):
|
60
|
-
@classmethod
|
61
|
-
def from_pretrained(cls, *args, **kwargs):
|
62
|
-
with override_auto_classes(
|
63
|
-
config_func=CLIPTextConfig.from_pretrained,
|
64
|
-
model_func=CLIPTextModel.from_pretrained,
|
65
|
-
skip_taskmanager=False,
|
66
|
-
):
|
67
|
-
rt = super().from_pretrained(*args, **kwargs)
|
68
|
-
return rt
|
69
|
-
|
70
59
|
@classmethod
|
71
60
|
def wrap_model_if_needed(cls, model: torch.nn.Module, rbln_config: RBLNConfig) -> torch.nn.Module:
|
72
61
|
return _TextEncoder(model).eval()
|
73
62
|
|
63
|
+
@classmethod
|
64
|
+
def update_rbln_config_using_pipe(cls, pipe: RBLNDiffusionMixin, rbln_config: Dict[str, Any]) -> Dict[str, Any]:
|
65
|
+
return rbln_config
|
66
|
+
|
74
67
|
@classmethod
|
75
68
|
def _get_rbln_config(
|
76
69
|
cls,
|
@@ -114,7 +107,7 @@ class RBLNCLIPTextModel(RBLNModel):
|
|
114
107
|
|
115
108
|
|
116
109
|
class RBLNCLIPTextModelWithProjection(RBLNCLIPTextModel):
|
117
|
-
|
110
|
+
pass
|
118
111
|
|
119
112
|
|
120
113
|
class _VisionEncoder(torch.nn.Module):
|
@@ -128,16 +121,6 @@ class _VisionEncoder(torch.nn.Module):
|
|
128
121
|
|
129
122
|
|
130
123
|
class RBLNCLIPVisionModel(RBLNModel):
|
131
|
-
@classmethod
|
132
|
-
def from_pretrained(cls, *args, **kwargs):
|
133
|
-
with override_auto_classes(
|
134
|
-
config_func=CLIPVisionConfig.from_pretrained,
|
135
|
-
model_func=CLIPVisionModel.from_pretrained,
|
136
|
-
skip_taskmanager=False,
|
137
|
-
):
|
138
|
-
rt = super().from_pretrained(*args, **kwargs)
|
139
|
-
return rt
|
140
|
-
|
141
124
|
@classmethod
|
142
125
|
def wrap_model_if_needed(cls, model: torch.nn.Module, rbln_config: RBLNConfig) -> torch.nn.Module:
|
143
126
|
return _VisionEncoder(model).eval()
|
@@ -146,7 +129,7 @@ class RBLNCLIPVisionModel(RBLNModel):
|
|
146
129
|
def _get_rbln_config(
|
147
130
|
cls,
|
148
131
|
preprocessors: Union["AutoFeatureExtractor", "AutoProcessor", "AutoTokenizer"],
|
149
|
-
model_config: "
|
132
|
+
model_config: "CLIPVisionConfig",
|
150
133
|
rbln_kwargs: Dict[str, Any] = {},
|
151
134
|
) -> RBLNConfig:
|
152
135
|
rbln_batch_size = rbln_kwargs.get("batch_size", 1)
|
@@ -21,14 +21,4 @@
|
|
21
21
|
# copied, modified, or distributed without prior written permission
|
22
22
|
# from Rebellions Inc.
|
23
23
|
|
24
|
-
from .decoderonly_architecture import (
|
25
|
-
DecoderOnlyAttention,
|
26
|
-
DecoderOnlyDecoderLayer,
|
27
|
-
DecoderOnlyModel,
|
28
|
-
DecoderOnlyWrapper,
|
29
|
-
RotaryEmbedding,
|
30
|
-
apply_rotary_pos_emb,
|
31
|
-
rotate_half,
|
32
|
-
slice_and_unsqueeze_cos_sin,
|
33
|
-
)
|
34
24
|
from .modeling_decoderonly import RBLNDecoderOnlyModelForCausalLM
|