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.
Files changed (103) hide show
  1. optimum/rbln/__init__.py +41 -38
  2. optimum/rbln/__version__.py +16 -1
  3. optimum/rbln/diffusers/__init__.py +26 -2
  4. optimum/rbln/{modeling_diffusers.py → diffusers/modeling_diffusers.py} +97 -126
  5. optimum/rbln/diffusers/models/__init__.py +36 -3
  6. optimum/rbln/{transformers/generation → diffusers/models/autoencoders}/__init__.py +1 -2
  7. optimum/rbln/diffusers/models/{autoencoder_kl.py → autoencoders/autoencoder_kl.py} +73 -61
  8. optimum/rbln/diffusers/models/autoencoders/vae.py +83 -0
  9. optimum/rbln/diffusers/models/controlnet.py +54 -14
  10. optimum/rbln/diffusers/models/transformers/__init__.py +24 -0
  11. optimum/rbln/diffusers/models/transformers/transformer_sd3.py +203 -0
  12. optimum/rbln/diffusers/models/unets/__init__.py +24 -0
  13. optimum/rbln/diffusers/models/{unet_2d_condition.py → unets/unet_2d_condition.py} +82 -22
  14. optimum/rbln/diffusers/pipelines/__init__.py +23 -2
  15. optimum/rbln/diffusers/pipelines/controlnet/multicontrolnet.py +13 -33
  16. optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet.py +17 -2
  17. optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +18 -2
  18. optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +18 -2
  19. optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +18 -2
  20. optimum/rbln/diffusers/pipelines/stable_diffusion/__init__.py +1 -0
  21. optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +2 -2
  22. optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +1 -13
  23. optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +31 -0
  24. optimum/rbln/diffusers/pipelines/stable_diffusion_3/__init__.py +26 -0
  25. optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +31 -0
  26. optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +31 -0
  27. optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +31 -0
  28. optimum/rbln/diffusers/pipelines/stable_diffusion_xl/__init__.py +24 -0
  29. optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +15 -8
  30. optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +15 -8
  31. optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +31 -0
  32. optimum/rbln/modeling.py +238 -0
  33. optimum/rbln/modeling_base.py +186 -760
  34. optimum/rbln/modeling_config.py +31 -7
  35. optimum/rbln/ops/__init__.py +26 -0
  36. optimum/rbln/ops/attn.py +221 -0
  37. optimum/rbln/ops/flash_attn.py +70 -0
  38. optimum/rbln/ops/kv_cache_update.py +69 -0
  39. optimum/rbln/transformers/__init__.py +20 -2
  40. optimum/rbln/{modeling_alias.py → transformers/modeling_alias.py} +5 -1
  41. optimum/rbln/transformers/modeling_generic.py +385 -0
  42. optimum/rbln/transformers/models/auto/__init__.py +23 -0
  43. optimum/rbln/transformers/models/auto/auto_factory.py +117 -23
  44. optimum/rbln/transformers/models/auto/modeling_auto.py +36 -12
  45. optimum/rbln/transformers/models/bart/__init__.py +0 -1
  46. optimum/rbln/transformers/models/bart/bart_architecture.py +107 -464
  47. optimum/rbln/transformers/models/bart/modeling_bart.py +10 -9
  48. optimum/rbln/transformers/models/bert/modeling_bert.py +3 -6
  49. optimum/rbln/transformers/models/clip/modeling_clip.py +8 -25
  50. optimum/rbln/transformers/models/decoderonly/__init__.py +0 -10
  51. optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py +775 -514
  52. optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +128 -260
  53. optimum/rbln/transformers/models/dpt/modeling_dpt.py +1 -1
  54. optimum/rbln/transformers/models/exaone/exaone_architecture.py +60 -45
  55. optimum/rbln/transformers/models/exaone/modeling_exaone.py +4 -2
  56. optimum/rbln/transformers/models/gemma/gemma_architecture.py +33 -104
  57. optimum/rbln/transformers/models/gpt2/gpt2_architecture.py +50 -238
  58. optimum/rbln/transformers/models/gpt2/modeling_gpt2.py +3 -2
  59. optimum/rbln/transformers/models/llama/llama_architecture.py +0 -1
  60. optimum/rbln/transformers/models/llava_next/modeling_llava_next.py +3 -75
  61. optimum/rbln/transformers/models/midm/midm_architecture.py +84 -238
  62. optimum/rbln/transformers/models/midm/modeling_midm.py +5 -6
  63. optimum/rbln/transformers/models/mistral/mistral_architecture.py +0 -1
  64. optimum/rbln/transformers/models/phi/phi_architecture.py +60 -261
  65. optimum/rbln/transformers/models/qwen2/qwen2_architecture.py +0 -1
  66. optimum/rbln/transformers/models/seq2seq/modeling_seq2seq.py +58 -103
  67. optimum/rbln/transformers/models/seq2seq/seq2seq_architecture.py +498 -0
  68. optimum/rbln/transformers/models/t5/__init__.py +0 -1
  69. optimum/rbln/transformers/models/t5/modeling_t5.py +106 -5
  70. optimum/rbln/transformers/models/t5/t5_architecture.py +106 -448
  71. optimum/rbln/transformers/models/wav2vec2/modeling_wav2vec2.py +1 -1
  72. optimum/rbln/transformers/models/whisper/generation_whisper.py +42 -0
  73. optimum/rbln/transformers/models/whisper/modeling_whisper.py +78 -55
  74. optimum/rbln/transformers/models/whisper/whisper_architecture.py +219 -312
  75. optimum/rbln/transformers/models/xlm_roberta/modeling_xlm_roberta.py +3 -35
  76. optimum/rbln/transformers/utils/rbln_quantization.py +120 -4
  77. optimum/rbln/utils/decorator_utils.py +51 -11
  78. optimum/rbln/utils/hub.py +131 -0
  79. optimum/rbln/utils/import_utils.py +22 -1
  80. optimum/rbln/utils/logging.py +37 -0
  81. optimum/rbln/utils/model_utils.py +52 -0
  82. optimum/rbln/utils/runtime_utils.py +10 -4
  83. optimum/rbln/utils/save_utils.py +17 -0
  84. optimum/rbln/utils/submodule.py +137 -0
  85. optimum_rbln-0.2.0.dist-info/METADATA +117 -0
  86. optimum_rbln-0.2.0.dist-info/RECORD +114 -0
  87. {optimum_rbln-0.1.13.dist-info → optimum_rbln-0.2.0.dist-info}/WHEEL +1 -1
  88. optimum_rbln-0.2.0.dist-info/licenses/LICENSE +288 -0
  89. optimum/rbln/transformers/cache_utils.py +0 -107
  90. optimum/rbln/transformers/generation/streamers.py +0 -139
  91. optimum/rbln/transformers/generation/utils.py +0 -397
  92. optimum/rbln/transformers/models/exaone/hf_hub_cached/configuration_exaone.py +0 -181
  93. optimum/rbln/transformers/models/exaone/hf_hub_cached/modeling_exaone.py +0 -1725
  94. optimum/rbln/transformers/models/midm/hf_hub_cached/configuration_midm.py +0 -22
  95. optimum/rbln/transformers/models/midm/hf_hub_cached/midm_bitext_tokenization.py +0 -304
  96. optimum/rbln/transformers/models/midm/hf_hub_cached/modeling_midm.py +0 -1469
  97. optimum/rbln/transformers/models/midm/hf_hub_cached/rotary_position_embedding.py +0 -98
  98. optimum/rbln/utils/context.py +0 -58
  99. optimum/rbln/utils/timer_utils.py +0 -43
  100. optimum_rbln-0.1.13.dist-info/METADATA +0 -120
  101. optimum_rbln-0.1.13.dist-info/RECORD +0 -107
  102. optimum_rbln-0.1.13.dist-info/entry_points.txt +0 -4
  103. 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 BertConfig, BertModel, PretrainedConfig
28
+ from transformers import PretrainedConfig
29
29
 
30
- from ....modeling_base import RBLNModel
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.original_model_class.forward).parameters.keys()
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 ....modeling_base import RBLNModel
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
- original_model_class = CLIPTextModelWithProjection
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: "CLIPTextConfig",
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