optimum-rbln 0.8.0.post1__tar.gz → 0.8.1__tar.gz

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 (291) hide show
  1. optimum_rbln-0.8.1/.github/scripts/validate_docstrings.py +161 -0
  2. optimum_rbln-0.8.1/.github/version.yaml +1 -0
  3. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/workflows/check_code_quality.yml +1 -13
  4. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/workflows/rbln_scheduled_test.yaml +8 -0
  5. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/workflows/rbln_trigger_on_pr.yaml +15 -5
  6. optimum_rbln-0.8.1/.github/workflows/test-docstrings.yml +137 -0
  7. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/PKG-INFO +6 -6
  8. optimum_rbln-0.8.1/examples/advanced/custom_class.py +159 -0
  9. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/pyproject.toml +8 -5
  10. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/__init__.py +24 -0
  11. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/__version__.py +2 -2
  12. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/configuration_utils.py +53 -33
  13. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/__init__.py +21 -1
  14. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/configurations/__init__.py +4 -0
  15. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/configurations/models/__init__.py +2 -0
  16. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl.py +9 -2
  17. optimum_rbln-0.8.1/src/optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl_cosmos.py +84 -0
  18. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/configurations/models/configuration_controlnet.py +4 -2
  19. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/configurations/models/configuration_prior_transformer.py +9 -2
  20. optimum_rbln-0.8.1/src/optimum/rbln/diffusers/configurations/models/configuration_transformer_cosmos.py +70 -0
  21. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/configurations/models/configuration_transformer_sd3.py +4 -2
  22. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/configurations/models/configuration_unet_2d_condition.py +9 -2
  23. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/configurations/models/configuration_vq_model.py +9 -2
  24. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/configurations/pipelines/__init__.py +1 -0
  25. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_controlnet.py +29 -9
  26. optimum_rbln-0.8.1/src/optimum/rbln/diffusers/configurations/pipelines/configuration_cosmos.py +114 -0
  27. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_kandinsky2_2.py +28 -12
  28. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion.py +18 -6
  29. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_3.py +13 -6
  30. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_xl.py +12 -6
  31. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/modeling_diffusers.py +72 -65
  32. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/models/__init__.py +4 -0
  33. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/models/autoencoders/__init__.py +1 -0
  34. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl.py +17 -1
  35. optimum_rbln-0.8.1/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl_cosmos.py +219 -0
  36. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/models/autoencoders/vae.py +45 -8
  37. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/models/autoencoders/vq_model.py +17 -1
  38. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/models/controlnet.py +14 -8
  39. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/models/transformers/__init__.py +1 -0
  40. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/models/transformers/prior_transformer.py +10 -0
  41. optimum_rbln-0.8.1/src/optimum/rbln/diffusers/models/transformers/transformer_cosmos.py +321 -0
  42. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/models/transformers/transformer_sd3.py +2 -0
  43. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/models/unets/unet_2d_condition.py +11 -1
  44. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/__init__.py +10 -0
  45. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/controlnet/multicontrolnet.py +1 -4
  46. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet.py +7 -0
  47. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +7 -0
  48. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +7 -0
  49. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +7 -0
  50. optimum_rbln-0.8.1/src/optimum/rbln/diffusers/pipelines/cosmos/__init__.py +17 -0
  51. optimum_rbln-0.8.1/src/optimum/rbln/diffusers/pipelines/cosmos/configuration_cosmos_guardrail.py +102 -0
  52. optimum_rbln-0.8.1/src/optimum/rbln/diffusers/pipelines/cosmos/cosmos_guardrail.py +455 -0
  53. optimum_rbln-0.8.1/src/optimum/rbln/diffusers/pipelines/cosmos/pipeline_cosmos_text2world.py +98 -0
  54. optimum_rbln-0.8.1/src/optimum/rbln/diffusers/pipelines/cosmos/pipeline_cosmos_video2world.py +98 -0
  55. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +7 -0
  56. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +48 -27
  57. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +7 -0
  58. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpaint.py +7 -0
  59. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +7 -0
  60. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +7 -0
  61. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +7 -0
  62. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +7 -0
  63. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +7 -0
  64. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +7 -0
  65. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +7 -0
  66. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +7 -0
  67. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +7 -0
  68. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +7 -0
  69. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/modeling.py +71 -37
  70. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/modeling_base.py +63 -109
  71. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/__init__.py +41 -47
  72. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/configuration_generic.py +16 -13
  73. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/modeling_generic.py +21 -22
  74. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/modeling_rope_utils.py +5 -2
  75. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/__init__.py +54 -4
  76. {optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/xlm_roberta → optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/audio_spectrogram_transformer}/__init__.py +3 -2
  77. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/exaone/configuration_exaone.py → optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/configuration_audio_spectrogram_transformer.py +5 -3
  78. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/phi/modeling_phi.py → optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/modeling_audio_spectrogram_transformer.py +8 -14
  79. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/auto/auto_factory.py +35 -12
  80. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/bart/bart_architecture.py +14 -1
  81. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/bart/configuration_bart.py +12 -2
  82. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/bart/modeling_bart.py +16 -7
  83. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/bert/configuration_bert.py +18 -3
  84. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/bert/modeling_bert.py +24 -0
  85. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/blip_2/configuration_blip_2.py +15 -3
  86. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/blip_2/modeling_blip_2.py +50 -4
  87. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/clip/configuration_clip.py +15 -5
  88. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/clip/modeling_clip.py +38 -13
  89. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/colpali/__init__.py +2 -0
  90. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/colpali/colpali_architecture.py +221 -0
  91. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/colpali/configuration_colpali.py +68 -0
  92. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/colpali/modeling_colpali.py +383 -0
  93. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py +223 -0
  94. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py +102 -35
  95. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +253 -195
  96. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/gemma/configuration_gemma.py → optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/distilbert/__init__.py +3 -3
  97. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/distilbert/configuration_distilbert.py +24 -0
  98. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/distilbert/modeling_distilbert.py +27 -0
  99. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/dpt/configuration_dpt.py +6 -1
  100. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/dpt/modeling_dpt.py +25 -0
  101. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/exaone/configuration_exaone.py +42 -0
  102. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/exaone/exaone_architecture.py +5 -1
  103. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/exaone/modeling_exaone.py +107 -0
  104. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/gemma/configuration_gemma.py +42 -0
  105. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/gemma/gemma_architecture.py +5 -1
  106. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/gemma/modeling_gemma.py +83 -0
  107. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/gemma3/configuration_gemma3.py +3 -3
  108. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/gemma3/gemma3_architecture.py +214 -0
  109. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/gemma3/modeling_gemma3.py +89 -244
  110. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/gpt2/configuration_gpt2.py +4 -1
  111. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/gpt2/gpt2_architecture.py +6 -1
  112. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/idefics3/configuration_idefics3.py +12 -2
  113. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/idefics3/modeling_idefics3.py +41 -4
  114. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/llama/configuration_llama.py +24 -1
  115. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/llama/modeling_llama.py +83 -0
  116. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/llava_next/configuration_llava_next.py +10 -2
  117. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/llava_next/modeling_llava_next.py +32 -4
  118. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/midm/configuration_midm.py +24 -1
  119. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/midm/midm_architecture.py +6 -1
  120. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/midm/modeling_midm.py +106 -0
  121. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/mistral/configuration_mistral.py +24 -1
  122. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/mistral/modeling_mistral.py +92 -0
  123. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/opt/configuration_opt.py +4 -1
  124. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/opt/modeling_opt.py +10 -0
  125. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/opt/opt_architecture.py +7 -1
  126. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/phi/configuration_phi.py +24 -1
  127. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/phi/modeling_phi.py +83 -0
  128. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/phi/phi_architecture.py +1 -1
  129. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/qwen2/configuration_qwen2.py +24 -1
  130. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/qwen2/modeling_qwen2.py +97 -0
  131. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/qwen2_5_vl/configuration_qwen2_5_vl.py +31 -3
  132. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/qwen2_5_vl/modeling_qwen2_5_vl.py +54 -25
  133. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/qwen2_5_vl/qwen2_5_vl_architecture.py +6 -4
  134. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/xlm_roberta/modeling_xlm_roberta.py → optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/resnet/__init__.py +6 -3
  135. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/resnet/configuration_resnet.py +25 -0
  136. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/resnet/modeling_resnet.py +26 -0
  137. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/roberta/__init__.py +24 -0
  138. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/configuration_alias.py → optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/roberta/configuration_roberta.py +12 -28
  139. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/modeling_alias.py → optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/roberta/modeling_roberta.py +14 -28
  140. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/seq2seq/__init__.py +1 -1
  141. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/seq2seq/configuration_seq2seq2.py → optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/seq2seq/configuration_seq2seq.py +2 -2
  142. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/seq2seq/modeling_seq2seq.py +7 -3
  143. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/seq2seq/seq2seq_architecture.py +41 -3
  144. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/siglip/configuration_siglip.py +10 -0
  145. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/siglip/modeling_siglip.py +69 -21
  146. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/t5/configuration_t5.py +12 -2
  147. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/t5/modeling_t5.py +56 -8
  148. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/t5/t5_architecture.py +5 -1
  149. {optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/time_series_transformers → optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/time_series_transformer}/__init__.py +1 -1
  150. {optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/time_series_transformers → optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/time_series_transformer}/configuration_time_series_transformer.py +9 -2
  151. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/time_series_transformers/modeling_time_series_transformers.py → optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/time_series_transformer/modeling_time_series_transformer.py +20 -11
  152. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/dpt/modeling_dpt.py → optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/vit/__init__.py +3 -4
  153. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/vit/configuration_vit.py +24 -0
  154. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/vit/modeling_vit.py +25 -0
  155. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/wav2vec2/__init__.py +1 -1
  156. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/wav2vec2/configuration_wav2vec.py → optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/wav2vec2/configuration_wav2vec2.py +7 -0
  157. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/wav2vec2/modeling_wav2vec2.py +1 -1
  158. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/whisper/configuration_whisper.py +10 -1
  159. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/whisper/modeling_whisper.py +41 -17
  160. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/xlm_roberta/__init__.py +30 -0
  161. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/xlm_roberta/configuration_xlm_roberta.py +15 -2
  162. optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/xlm_roberta/modeling_xlm_roberta.py +29 -0
  163. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/utils/model_utils.py +20 -0
  164. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/utils/runtime_utils.py +49 -1
  165. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/utils/submodule.py +6 -8
  166. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/tests/test_config.py +87 -3
  167. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/tests/test_llm.py +56 -2
  168. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/tests/test_transformers.py +23 -1
  169. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/uv.lock +1032 -1019
  170. optimum_rbln-0.8.0.post1/.github/version.yaml +0 -1
  171. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py +0 -126
  172. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/exaone/modeling_exaone.py +0 -46
  173. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/gemma/modeling_gemma.py +0 -34
  174. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/gemma3/gemma3_architecture.py +0 -446
  175. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/llama/modeling_llama.py +0 -34
  176. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/midm/modeling_midm.py +0 -45
  177. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/mistral/modeling_mistral.py +0 -34
  178. optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/qwen2/modeling_qwen2.py +0 -34
  179. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  180. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  181. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  182. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/ISSUE_TEMPLATE/model_request.md +0 -0
  183. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/pull_request_template.md +0 -0
  184. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/scripts/auto_code_review.py +0 -0
  185. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/scripts/validate_pr_checklist.py +0 -0
  186. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/workflows/auto_code_review.yml +0 -0
  187. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/workflows/deploy-on-tag.yaml +0 -0
  188. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/workflows/deploy.yaml +0 -0
  189. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/workflows/pr-title-check.yaml +0 -0
  190. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/workflows/pr_checklist_validator.yml +0 -0
  191. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/workflows/rbln_check_compiler.yaml +0 -0
  192. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/workflows/rbln_dispatch_pytest.yaml +0 -0
  193. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/workflows/rbln_optimum_inference_test.yaml +0 -0
  194. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.github/workflows/rbln_optimum_pytest.yaml +0 -0
  195. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/.gitignore +0 -0
  196. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/CODE_OF_CONDUCT.md +0 -0
  197. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/CONTRIBUTING.md +0 -0
  198. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/LICENSE +0 -0
  199. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/README.md +0 -0
  200. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/assets/rbln_logo.png +0 -0
  201. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/audio-classification/run_ast_audio_classification.py +0 -0
  202. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/depth-estimation/run_dpt.py +0 -0
  203. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/image-classification/run_image_classification.py +0 -0
  204. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/image-classification/run_vit_image_classification.py +0 -0
  205. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/image-to-text/run_idefics3.py +0 -0
  206. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/image-to-text/run_llava_next_image_to_text.py +0 -0
  207. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/kandinsky2_2/run_kandinsky2_2.py +0 -0
  208. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/kandinsky2_2/run_kandinsky2_2_combined.py +0 -0
  209. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/kandinsky2_2/run_kandinsky2_2_img2img.py +0 -0
  210. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/kandinsky2_2/run_kandinsky2_2_img2img_combined.py +0 -0
  211. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/kandinsky2_2/run_kandinsky2_2_inpaint.py +0 -0
  212. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/kandinsky2_2/run_kandinsky2_2_inpaint_combined.py +0 -0
  213. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/kandinsky2_2/run_kandinsky2_2_prior_interpolate.py +0 -0
  214. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/question-answering/run_question_answering.py +0 -0
  215. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/speech-recognition/run_wav2vec2.py +0 -0
  216. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/speech-recognition/run_whisper.py +0 -0
  217. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/stable-diffusion/run_stable_diffusion.py +0 -0
  218. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/stable-diffusion/run_stable_diffusion_controlnet.py +0 -0
  219. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/stable-diffusion/run_stable_diffusion_img2img.py +0 -0
  220. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/stable-diffusion/run_stable_diffusion_img2img_controlnet.py +0 -0
  221. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/stable-diffusion/run_stable_diffusion_inpaint.py +0 -0
  222. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/stable-diffusion/run_stable_diffusion_lora.py +0 -0
  223. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/stable-diffusion/run_stable_diffusion_multicontrolnet.py +0 -0
  224. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/text-classification/run_bge_m3_text_classification.py +0 -0
  225. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/text-classification/run_bge_reranker_v2_m3_text_classification.py +0 -0
  226. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/text-classification/run_secureBERT.py +0 -0
  227. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/text-classification/run_t5_classification.py +0 -0
  228. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/text-classification/run_twitter_roberta_text_classification.py +0 -0
  229. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/text2text-generation/run_bart_text2text_generation.py +0 -0
  230. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/text2text-generation/run_llama_peft.py +0 -0
  231. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/text2text-generation/run_llama_text2text_generation.py +0 -0
  232. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/examples/time-series-forecasting/run_time_series_forecasting.py +0 -0
  233. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/scripts/uv-lock.sh +0 -0
  234. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/scripts/uv-sync.sh +0 -0
  235. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/models/unets/__init__.py +0 -0
  236. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/controlnet/__init__.py +0 -0
  237. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/__init__.py +0 -0
  238. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/__init__.py +0 -0
  239. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/__init__.py +0 -0
  240. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/__init__.py +0 -0
  241. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/ops/__init__.py +0 -0
  242. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/ops/attn.py +0 -0
  243. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/ops/flash_attn.py +0 -0
  244. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/ops/kv_cache_update.py +0 -0
  245. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/ops/linear.py +0 -0
  246. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/ops/sliding_window_attn.py +0 -0
  247. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/auto/__init__.py +0 -0
  248. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/auto/modeling_auto.py +0 -0
  249. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/bart/__init__.py +0 -0
  250. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/bert/__init__.py +0 -0
  251. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/blip_2/__init__.py +0 -0
  252. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/clip/__init__.py +0 -0
  253. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/decoderonly/__init__.py +0 -0
  254. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/dpt/__init__.py +0 -0
  255. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/exaone/__init__.py +0 -0
  256. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/gemma/__init__.py +0 -0
  257. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/gemma3/__init__.py +0 -0
  258. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/gpt2/__init__.py +0 -0
  259. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/gpt2/modeling_gpt2.py +0 -0
  260. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/idefics3/__init__.py +0 -0
  261. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/llama/__init__.py +0 -0
  262. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/llama/llama_architecture.py +0 -0
  263. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/llava_next/__init__.py +0 -0
  264. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/midm/__init__.py +0 -0
  265. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/mistral/__init__.py +0 -0
  266. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/mistral/mistral_architecture.py +0 -0
  267. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/opt/__init__.py +0 -0
  268. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/phi/__init__.py +0 -0
  269. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/qwen2/__init__.py +0 -0
  270. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/qwen2/qwen2_architecture.py +0 -0
  271. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/qwen2_5_vl/__init__.py +0 -0
  272. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/siglip/__init__.py +0 -0
  273. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/t5/__init__.py +0 -0
  274. {optimum_rbln-0.8.0.post1/src/optimum/rbln/transformers/models/time_series_transformers → optimum_rbln-0.8.1/src/optimum/rbln/transformers/models/time_series_transformer}/time_series_transformers_architecture.py +0 -0
  275. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/whisper/__init__.py +0 -0
  276. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/whisper/generation_whisper.py +0 -0
  277. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/models/whisper/whisper_architecture.py +0 -0
  278. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/utils/__init__.py +0 -0
  279. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/transformers/utils/rbln_quantization.py +0 -0
  280. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/utils/__init__.py +0 -0
  281. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/utils/decorator_utils.py +0 -0
  282. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/utils/hub.py +0 -0
  283. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/utils/import_utils.py +0 -0
  284. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/utils/logging.py +0 -0
  285. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/src/optimum/rbln/utils/save_utils.py +0 -0
  286. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/tests/__init__.py +0 -0
  287. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/tests/psnr.py +0 -0
  288. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/tests/requirements_sdxl.txt +0 -0
  289. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/tests/run_stable_diffusion_xl_base.py +0 -0
  290. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/tests/test_base.py +0 -0
  291. {optimum_rbln-0.8.0.post1 → optimum_rbln-0.8.1}/tests/test_diffusers.py +0 -0
@@ -0,0 +1,161 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Simple and reliable docstring validator for CI/CD.
4
+ Focuses on catching issues that would break mkdocstrings parsing.
5
+ """
6
+
7
+ import subprocess
8
+ import sys
9
+ import tempfile
10
+ from pathlib import Path
11
+
12
+
13
+ def infer_module_name(file_path: Path) -> str:
14
+ """
15
+ Infer module name from file path.
16
+
17
+ Example:
18
+ src/optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py
19
+ -> optimum.rbln.transformers.models.decoderonly.modeling_decoderonly
20
+ """
21
+ if not any(keyword in file_path.name for keyword in ["configuration", "modeling"]):
22
+ return None
23
+
24
+ parts = file_path.parts
25
+
26
+ # Find 'src' directory index
27
+ try:
28
+ src_index = parts.index("src")
29
+ except ValueError:
30
+ # If no 'src' directory found, try common patterns
31
+ for common_src in ["lib", "package", file_path.parts[0]]:
32
+ if common_src in parts:
33
+ src_index = parts.index(common_src)
34
+ break
35
+ else:
36
+ # Fallback: use the first directory
37
+ src_index = 0
38
+
39
+ # Extract module path parts (everything after src, excluding .py)
40
+ module_parts = parts[src_index + 1 :]
41
+
42
+ # Remove .py extension from the last part
43
+ if module_parts and module_parts[-1].endswith(".py"):
44
+ module_parts = module_parts[:-1] + (module_parts[-1][:-3],)
45
+
46
+ # Join with dots
47
+ module_name = ".".join(module_parts)
48
+ return module_name
49
+
50
+
51
+ def test_mkdocstrings_parsing(file_path: Path, module_name: str = None) -> bool:
52
+ """Test if mkdocstrings can parse the module documentation."""
53
+ try:
54
+ if module_name:
55
+ # Test with specific module name
56
+ test_content = f"""# Test Documentation
57
+
58
+ :::{module_name}
59
+ options:
60
+ show_source: false
61
+ filters: ["!^_"]
62
+ """
63
+ else:
64
+ # Auto-infer module name from file path
65
+ inferred_module = infer_module_name(file_path)
66
+ if inferred_module is None:
67
+ print(
68
+ "⚠️ No module name provided, and the file is not a configuration or modeling file, skipping mkdocstrings test"
69
+ )
70
+ return True
71
+ print(f"ℹ️ Auto-inferred module name: {inferred_module}")
72
+ test_content = f"""# Test Documentation
73
+
74
+ :::{inferred_module}
75
+ options:
76
+ show_source: false
77
+ filters: ["!^_"]
78
+ """
79
+ module_name = inferred_module
80
+
81
+ config = f"""site_name: Test
82
+ plugins:
83
+ - mkdocstrings:
84
+ handlers:
85
+ python:
86
+ paths: ["{Path(__file__).parent.parent.parent / "src"}"]
87
+ options:
88
+ show_source: false
89
+ filters: ["!^_"]
90
+ """
91
+
92
+ with tempfile.TemporaryDirectory() as tmp_dir:
93
+ tmp_path = Path(tmp_dir)
94
+ (tmp_path / "mkdocs.yml").write_text(config)
95
+ docs_dir = tmp_path / "docs"
96
+ docs_dir.mkdir()
97
+ (docs_dir / "index.md").write_text(test_content)
98
+
99
+ result = subprocess.run(
100
+ ["mkdocs", "build", "--strict"], cwd=tmp_path, capture_output=True, text=True, timeout=10
101
+ )
102
+
103
+ if result.returncode != 0:
104
+ print(f"❌ mkdocstrings parsing failed for {file_path}:")
105
+ print(f" Module: {module_name}")
106
+ # Show relevant errors and warnings
107
+ lines = result.stderr.split("\n")
108
+ relevant = [
109
+ l for l in lines if any(keyword in l for keyword in ["griffe", "WARNING", "ERROR", "CRITICAL"])
110
+ ]
111
+ for line in relevant[:5]: # Show first 5 relevant lines
112
+ if line.strip():
113
+ print(f" {line.strip()}")
114
+ return False
115
+
116
+ return True
117
+
118
+ except subprocess.TimeoutExpired:
119
+ print(f"⚠️ Timeout testing {file_path} (non-fatal)")
120
+ return True # Don't fail on timeout
121
+ except Exception as e:
122
+ print(f"⚠️ Could not test mkdocstrings for {file_path}: {e} (non-fatal)")
123
+ return True # Don't fail on test errors
124
+
125
+
126
+ def main():
127
+ """Main entry point."""
128
+ if len(sys.argv) < 2:
129
+ print("Usage: python validate_docstrings.py <python_file> [module_name]")
130
+ print()
131
+ print("Examples:")
132
+ print(" python validate_docstrings.py src/my_module.py")
133
+ print(" python validate_docstrings.py src/my_module.py my.module.name")
134
+ print()
135
+ print("Note: If module_name is not provided, it will be auto-inferred from file path")
136
+ sys.exit(1)
137
+
138
+ file_path = Path(sys.argv[1])
139
+ module_name = sys.argv[2] if len(sys.argv) > 2 else None
140
+
141
+ if not file_path.exists():
142
+ print(f"❌ File not found: {file_path}")
143
+ sys.exit(1)
144
+
145
+ print(f"🔍 Testing mkdocstrings parsing: {file_path}")
146
+ if module_name:
147
+ print(f"📦 Module: {module_name}")
148
+
149
+ # Test mkdocstrings compatibility
150
+ mkdocs_ok = test_mkdocstrings_parsing(file_path, module_name)
151
+
152
+ if mkdocs_ok:
153
+ print("✅ mkdocstrings parsing test passed!")
154
+ sys.exit(0)
155
+ else:
156
+ print("❌ mkdocstrings parsing test failed!")
157
+ sys.exit(1)
158
+
159
+
160
+ if __name__ == "__main__":
161
+ main()
@@ -0,0 +1 @@
1
+ rebel_compiler_version: 0.8.1.dev142+gab6ad3c7
@@ -1,19 +1,7 @@
1
1
  name: check_code_quality
2
2
 
3
3
  on:
4
- push:
5
- branches: [main]
6
- paths:
7
- - "src/**/*.py"
8
- - "tests/**/*.py"
9
- - "examples/**/*.py"
10
-
11
- pull_request:
12
- branches: [main]
13
- paths:
14
- - "src/**/*.py"
15
- - "tests/**/*.py"
16
- - "examples/**/*.py"
4
+ workflow_call:
17
5
 
18
6
  concurrency:
19
7
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
@@ -10,6 +10,14 @@ env:
10
10
  HF_AUTH_TOKEN: ${{ secrets.HF_AUTH_TOKEN }}
11
11
 
12
12
  jobs:
13
+ check-code-quality:
14
+ uses: ./.github/workflows/check_code_quality.yml
15
+
16
+ test-docstrings:
17
+ uses: ./.github/workflows/test-docstrings.yml
18
+ with:
19
+ test_all_files: true
20
+
13
21
  load-version:
14
22
  runs-on: rebel-k8s-runner
15
23
  outputs:
@@ -24,9 +24,19 @@ jobs:
24
24
  echo "No [skip ci] found, continuing with CI"
25
25
  fi
26
26
 
27
+ check-code-quality:
28
+ needs: check-skip-ci
29
+ if: ${{ needs.check-skip-ci.outputs.should_skip != 'true' }}
30
+ uses: ./.github/workflows/check_code_quality.yml
31
+
32
+ test-docstrings:
33
+ needs: check-skip-ci
34
+ if: ${{ needs.check-skip-ci.outputs.should_skip != 'true' }}
35
+ uses: ./.github/workflows/test-docstrings.yml
36
+
27
37
  load-version:
28
38
  runs-on: rebel-k8s-runner
29
- needs: check-skip-ci
39
+ needs: [check-skip-ci, check-code-quality, test-docstrings]
30
40
  if: ${{ needs.check-skip-ci.outputs.should_skip != 'true' }}
31
41
  outputs:
32
42
  compiler_version: ${{ steps.get_version.outputs.compiler_version }}
@@ -41,7 +51,7 @@ jobs:
41
51
  echo "compiler_version=$VERSION" >> $GITHUB_OUTPUT
42
52
 
43
53
  check-compiler:
44
- needs: [check-skip-ci, load-version]
54
+ needs: [check-skip-ci, check-code-quality, test-docstrings, load-version]
45
55
  if: ${{ needs.check-skip-ci.outputs.should_skip != 'true' }}
46
56
  uses: ./.github/workflows/rbln_check_compiler.yaml
47
57
  with:
@@ -50,7 +60,7 @@ jobs:
50
60
 
51
61
  check-team-member:
52
62
  runs-on: rebel-k8s-runner
53
- needs: [check-skip-ci, check-compiler]
63
+ needs: [check-skip-ci, check-code-quality, test-docstrings, check-compiler]
54
64
  if: ${{ needs.check-skip-ci.outputs.should_skip != 'true' && needs.check-compiler.outputs.is_deploy_version == 'true' }}
55
65
  outputs:
56
66
  is_team_member: ${{ steps.check_member.outputs.IS_TEAM_MEMBER }}
@@ -75,7 +85,7 @@ jobs:
75
85
  fi
76
86
 
77
87
  optimum-rbln-pytest:
78
- needs: [check-skip-ci, check-compiler, check-team-member]
88
+ needs: [check-skip-ci, check-code-quality, test-docstrings, check-compiler, check-team-member]
79
89
  if: ${{ needs.check-skip-ci.outputs.should_skip != 'true' && needs.check-team-member.outputs.is_team_member == 'true' }}
80
90
  uses: ./.github/workflows/rbln_optimum_pytest.yaml
81
91
  with:
@@ -85,7 +95,7 @@ jobs:
85
95
  secrets: inherit
86
96
 
87
97
  optimum-rbln-inference-test:
88
- needs: [check-skip-ci, check-compiler, check-team-member]
98
+ needs: [check-skip-ci, check-code-quality, test-docstrings, check-compiler, check-team-member]
89
99
  if: ${{ needs.check-skip-ci.outputs.should_skip != 'true' && needs.check-team-member.outputs.is_team_member == 'true' }}
90
100
  uses: ./.github/workflows/rbln_optimum_inference_test.yaml
91
101
  with:
@@ -0,0 +1,137 @@
1
+ name: Test Docstring Parsing
2
+
3
+ on:
4
+ workflow_call:
5
+ inputs:
6
+ test_all_files:
7
+ description: "Test all files in src/ instead of just changed files"
8
+ required: false
9
+ type: boolean
10
+ default: false
11
+
12
+ jobs:
13
+ test-docstrings:
14
+ runs-on: ubuntu-latest-rbln
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ with:
19
+ fetch-depth: 0 # Get full git history for file diff
20
+
21
+ - name: Set up Python
22
+ uses: actions/setup-python@v4
23
+ with:
24
+ python-version: '3.9'
25
+
26
+ - name: Install dependencies
27
+ run: |
28
+ pip install mkdocs mkdocs-material mkdocstrings mkdocstrings-python
29
+
30
+ - name: Get Python files to test
31
+ id: changed-files
32
+ run: |
33
+ if [ "${{ inputs.test_all_files }}" = "true" ]; then
34
+ # For scheduled test, get all Python files in src/
35
+ ALL_FILES=$(find src/ -name '*.py' -type f || true)
36
+ echo "Testing all Python files in src/:"
37
+ echo "$ALL_FILES"
38
+
39
+ if [ -n "$ALL_FILES" ]; then
40
+ FILES_JSON=$(echo "$ALL_FILES" | jq -R -s -c 'split("\n")[:-1]')
41
+ echo "files=$FILES_JSON" >> $GITHUB_OUTPUT
42
+ echo "has_changes=true" >> $GITHUB_OUTPUT
43
+ else
44
+ echo "has_changes=false" >> $GITHUB_OUTPUT
45
+ fi
46
+ else
47
+ # For PR, compare with base branch
48
+ if [ "${{ github.event_name }}" = "pull_request" ]; then
49
+ CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | grep '\.py$' | grep 'src/' || true)
50
+ else
51
+ # For push, compare with previous commit
52
+ CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD | grep '\.py$' | grep 'src/' || true)
53
+ fi
54
+
55
+ echo "Changed Python files:"
56
+ echo "$CHANGED_FILES"
57
+
58
+ # Convert to JSON array for matrix
59
+ if [ -n "$CHANGED_FILES" ]; then
60
+ FILES_JSON=$(echo "$CHANGED_FILES" | jq -R -s -c 'split("\n")[:-1]')
61
+ echo "files=$FILES_JSON" >> $GITHUB_OUTPUT
62
+ echo "has_changes=true" >> $GITHUB_OUTPUT
63
+ else
64
+ echo "has_changes=false" >> $GITHUB_OUTPUT
65
+ fi
66
+ fi
67
+
68
+ - name: Test docstring parsing
69
+ if: steps.changed-files.outputs.has_changes == 'true'
70
+ run: |
71
+ FILES='${{ steps.changed-files.outputs.files }}'
72
+
73
+ # Exclude files (hardcoded)
74
+ EXCLUDE_FILES=(
75
+ "src/optimum/rbln/transformers/models/llava_next/modeling_llava_next.py"
76
+ "src/optimum/rbln/transformers/models/t5/modeling_t5.py"
77
+ )
78
+
79
+ # Filter out excluded files
80
+ FILTERED_FILES=""
81
+ echo "$FILES" | jq -r '.[]' | while read -r file; do
82
+ should_exclude=false
83
+ for exclude_file in "${EXCLUDE_FILES[@]}"; do
84
+ if [[ "$file" == "$exclude_file" ]]; then
85
+ echo "⏭️ Skipping excluded file: $file"
86
+ should_exclude=true
87
+ break
88
+ fi
89
+ done
90
+
91
+ if [[ "$should_exclude" == "false" ]]; then
92
+ echo "$file" >> /tmp/filtered_files.txt
93
+ fi
94
+ done
95
+
96
+ # Check if we have files to process
97
+ if [[ ! -f /tmp/filtered_files.txt ]] || [[ ! -s /tmp/filtered_files.txt ]]; then
98
+ echo "No files to process after excluding files"
99
+ exit 0
100
+ fi
101
+
102
+ TOTAL_FILES=$(wc -l < /tmp/filtered_files.txt)
103
+ echo "Processing $TOTAL_FILES files with 16 parallel processes..."
104
+
105
+ # Function to validate a single file
106
+ validate_file() {
107
+ local file=$1
108
+ echo "Testing: $file"
109
+ python .github/scripts/validate_docstrings.py "$file"
110
+ if [ $? -ne 0 ]; then
111
+ echo "❌ Docstring test failed for $file"
112
+ return 1
113
+ fi
114
+ echo "✅ Docstring test passed for $file"
115
+ return 0
116
+ }
117
+
118
+ # Export function for use with xargs
119
+ export -f validate_file
120
+
121
+ # Process files in parallel with 16 processes
122
+ cat /tmp/filtered_files.txt | xargs -I {} -P 16 -n 1 bash -c 'validate_file "$@"' _ {}
123
+
124
+ # Check if any process failed
125
+ if [ $? -ne 0 ]; then
126
+ echo "❌ Some docstring tests failed"
127
+ exit 1
128
+ fi
129
+
130
+ echo "🎉 All docstring tests passed!"
131
+
132
+ # Clean up
133
+ rm -f /tmp/filtered_files.txt
134
+
135
+ - name: No changes detected
136
+ if: steps.changed-files.outputs.has_changes == 'false'
137
+ run: echo "No Python files to test"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: optimum-rbln
3
- Version: 0.8.0.post1
3
+ Version: 0.8.1
4
4
  Summary: Optimum RBLN is the interface between the HuggingFace 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
@@ -23,12 +23,12 @@ Classifier: Programming Language :: Python :: 3.12
23
23
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
24
24
  Requires-Python: <3.13,>=3.9
25
25
  Requires-Dist: accelerate>=1.0.1
26
- Requires-Dist: diffusers<=0.31.0
26
+ Requires-Dist: diffusers==0.34.0
27
27
  Requires-Dist: packaging>=24.1
28
- Requires-Dist: torch==2.6.0
29
- Requires-Dist: torchaudio<=2.6.0
30
- Requires-Dist: torchvision<=0.21.0
31
- Requires-Dist: transformers==4.50.3
28
+ Requires-Dist: torch==2.7.0
29
+ Requires-Dist: torchaudio<=2.7.0
30
+ Requires-Dist: torchvision<=0.22.0
31
+ Requires-Dist: transformers==4.51.3
32
32
  Description-Content-Type: text/markdown
33
33
 
34
34
 
@@ -0,0 +1,159 @@
1
+ """
2
+ # Advanced Tutorial: Creating Custom RBLN Classes
3
+
4
+ This tutorial demonstrates how to create custom RBLN model classes for use with the optimum-rbln framework.
5
+
6
+ ## Requirements for Custom Class Creation:
7
+
8
+ 1. You must create two classes:
9
+ - A custom model class that inherits from RBLNModel
10
+ - A custom config class that inherits from RBLNModelConfig
11
+
12
+ 2. The naming convention is critical:
13
+ - Model class: RBLN<OriginalModelName> (e.g., RBLNResNetModel)
14
+ - Config class: RBLN<OriginalModelName>Config (e.g., RBLNResNetModelConfig)
15
+
16
+ 3. Your custom class MUST implement the _update_rbln_config method
17
+ - This method configures input shapes and compilation settings
18
+
19
+ 4. You must register both classes with the auto registration system
20
+ - This enables the framework to discover and use your custom classes
21
+
22
+ Important: Custom RBLN classes can only be created for models that exist in
23
+ the transformers or diffusers libraries. You cannot create custom RBLN classes
24
+ for completely custom architectures without a corresponding HuggingFace implementation.
25
+
26
+ This example demonstrates creating a custom RBLN class for the ResNet model from transformers.
27
+ """
28
+
29
+ from typing import TYPE_CHECKING, Optional, Tuple, Union
30
+
31
+ import torch
32
+ from transformers import ResNetModel # noqa: F401
33
+ from transformers.models.resnet.modeling_resnet import BaseModelOutputWithPoolingAndNoAttention
34
+
35
+ from optimum.rbln import RBLNAutoConfig, RBLNAutoModel, RBLNCompileConfig, RBLNModel, RBLNModelConfig
36
+
37
+
38
+ if TYPE_CHECKING:
39
+ from transformers import AutoFeatureExtractor, AutoProcessor, AutoTokenizer, PretrainedConfig, PreTrainedModel
40
+
41
+
42
+ # --------------------------------------------------------
43
+ # STEP 1: Create a custom model class that extends RBLNModel
44
+ # --------------------------------------------------------
45
+ # A custom RBLN model class must:
46
+ # - Follow the naming pattern: RBLN<OriginalModelName>
47
+ # - Implement the _update_rbln_config method (required)
48
+ # - Define a proper forward method matching the original model's inputs/outputs
49
+ #
50
+ # The _update_rbln_config method is critical - it sets up the input tensor
51
+ # specifications and other compilation parameters needed for the RBLN compiler.
52
+ #
53
+ # For our ResNet example, we need to:
54
+ # 1. Specify the input tensor shape for images (batch_size, channels, height, width)
55
+ # 2. Set the proper configuration options
56
+ # 3. Return the updated RBLN configuration
57
+ class RBLNResNetModel(RBLNModel):
58
+ @classmethod
59
+ def _update_rbln_config(
60
+ cls,
61
+ preprocessors: Optional[Union["AutoFeatureExtractor", "AutoProcessor", "AutoTokenizer"]] = None,
62
+ model: Optional["PreTrainedModel"] = None,
63
+ model_config: Optional["PretrainedConfig"] = None,
64
+ rbln_config: Optional["RBLNResNetModelConfig"] = None,
65
+ ) -> "RBLNResNetModelConfig":
66
+ # Set image_size if not provided
67
+ if rbln_config.image_size is None:
68
+ if rbln_config.image_size is None:
69
+ rbln_config.image_size = model_config.image_size
70
+
71
+ if rbln_config.image_size is None:
72
+ raise ValueError("`image_size` should be specified!")
73
+
74
+ # Define input tensor specification for the compiler
75
+ # Format: (tensor_name, tensor_shape, dtype)
76
+ input_info = [
77
+ (
78
+ "pixel_values",
79
+ [rbln_config.batch_size, 3, rbln_config.image_size[0], rbln_config.image_size[1]],
80
+ "float32",
81
+ )
82
+ ]
83
+
84
+ # Configure compilation settings
85
+ rbln_config.set_compile_cfgs([RBLNCompileConfig(input_info=input_info)])
86
+ return rbln_config
87
+
88
+ def forward(self, pixel_values, return_dict: Optional[bool] = None, **kwargs):
89
+ return_dict = return_dict if return_dict is not None else self.config.use_return_dict
90
+
91
+ # self.model is a list of rebel.Runtime objects
92
+ # See https://docs.rbln.ai/software/api/python/python_api.html#rebel.rebel_runtime.Runtime for more details
93
+ output = self.model[0](pixel_values)
94
+
95
+ if not return_dict:
96
+ return output
97
+ else:
98
+ return BaseModelOutputWithPoolingAndNoAttention(last_hidden_state=output[0], pooler_output=output[1])
99
+
100
+
101
+ # ----------------------------------------------------------------
102
+ # STEP 2: Create a custom configuration class that extends RBLNModelConfig
103
+ # ----------------------------------------------------------------
104
+ # The configuration class must:
105
+ # - Follow the naming pattern: RBLN<OriginalModelName>Config
106
+ # - Define model-specific parameters needed for compilation
107
+ #
108
+ # For ResNet, we need:
109
+ # - batch_size: Batch size for inference
110
+ # - image_size: Input image dimensions (height, width)
111
+ class RBLNResNetModelConfig(RBLNModelConfig):
112
+ def __init__(self, batch_size: int = None, image_size: Optional[Tuple[int, int]] = None, **kwargs):
113
+ super().__init__(**kwargs)
114
+ self.batch_size = batch_size or 1
115
+ self.image_size = image_size or (224, 224)
116
+
117
+
118
+ # ----------------------------------------------------------------
119
+ # STEP 3: Register both classes with the auto registration system
120
+ # ----------------------------------------------------------------
121
+ # Registration is essential for the RBLN framework to:
122
+ # 1. Discover your custom classes when needed
123
+ # 2. Enable using RBLNAutoModel.from_pretrained() with your model type
124
+ # 3. Connect your configuration class to the model class in the framework
125
+ RBLNAutoModel.register(RBLNResNetModel)
126
+ RBLNAutoConfig.register(RBLNResNetModelConfig)
127
+
128
+
129
+ # ----------------------------------------------------------------
130
+ # STEP 4: Usage Example - Creating and using the custom RBLN model
131
+ # ----------------------------------------------------------------
132
+ # Initialize the model from a pretrained HuggingFace model
133
+ # The 'export=True' parameter triggers the model compilation process
134
+ # rbln_image_size and rbln_batch_size are passed to the custom configuration
135
+ my_model = RBLNResNetModel.from_pretrained(
136
+ "microsoft/resnet-50", export=True, rbln_image_size=(224, 224), rbln_batch_size=1
137
+ )
138
+
139
+ # Save the compiled model for later use
140
+ my_model.save_pretrained("my_resnet_model_saved")
141
+
142
+ # Create a random input tensor for demonstration
143
+ # The shape must match what we defined in _update_rbln_config
144
+ random_image_input = torch.randn(1, 3, 224, 224)
145
+
146
+ # Run inference with the compiled model
147
+ output = my_model(random_image_input)
148
+
149
+ # Print each key-value pair in the output dictionary
150
+ for key, value in output.items():
151
+ print(key, value)
152
+
153
+
154
+ # ----------------------------------------------------------------
155
+ # STEP 5: Loading a saved RBLN model
156
+ # ----------------------------------------------------------------
157
+ # Load the model we just saved - no need to recompile
158
+ my_model_reloaded = RBLNResNetModel.from_pretrained("my_resnet_model_saved")
159
+ print(my_model_reloaded)
@@ -28,12 +28,12 @@ classifiers = [
28
28
  ]
29
29
  keywords = ["transformers", "diffusers", "inference", "rbln", "atom", "rebel"]
30
30
  dependencies = [
31
- "torch==2.6.0",
32
- "torchaudio<=2.6.0",
33
- "torchvision<=0.21.0",
31
+ "torch==2.7.0",
32
+ "torchaudio<=2.7.0",
33
+ "torchvision<=0.22.0",
34
34
  "accelerate>=1.0.1",
35
- "transformers==4.50.3",
36
- "diffusers<=0.31.0",
35
+ "transformers==4.51.3",
36
+ "diffusers==0.34.0",
37
37
  "packaging>=24.1",
38
38
  ]
39
39
 
@@ -78,6 +78,9 @@ version-file = "src/optimum/rbln/__version__.py"
78
78
  [tool.hatch.build.targets.wheel]
79
79
  packages = ["src/optimum"]
80
80
 
81
+ [tool.hatch.metadata]
82
+ allow-direct-references = true
83
+
81
84
  [tool.uv]
82
85
  environments = [
83
86
  "sys_platform == 'linux'"
@@ -26,6 +26,7 @@ _import_structure = {
26
26
  "RBLNModel",
27
27
  ],
28
28
  "configuration_utils": [
29
+ "RBLNAutoConfig",
29
30
  "RBLNCompileConfig",
30
31
  "RBLNModelConfig",
31
32
  ],
@@ -69,6 +70,8 @@ _import_structure = {
69
70
  "RBLNCLIPVisionModelConfig",
70
71
  "RBLNCLIPVisionModelWithProjection",
71
72
  "RBLNCLIPVisionModelWithProjectionConfig",
73
+ "RBLNColPaliForRetrieval",
74
+ "RBLNColPaliForRetrievalConfig",
72
75
  "RBLNDecoderOnlyModelForCausalLM",
73
76
  "RBLNDecoderOnlyModelForCausalLMConfig",
74
77
  "RBLNDistilBertForQuestionAnswering",
@@ -135,8 +138,17 @@ _import_structure = {
135
138
  "diffusers": [
136
139
  "RBLNAutoencoderKL",
137
140
  "RBLNAutoencoderKLConfig",
141
+ "RBLNAutoencoderKLCosmos",
142
+ "RBLNAutoencoderKLCosmosConfig",
138
143
  "RBLNControlNetModel",
139
144
  "RBLNControlNetModelConfig",
145
+ "RBLNCosmosTextToWorldPipeline",
146
+ "RBLNCosmosVideoToWorldPipeline",
147
+ "RBLNCosmosTextToWorldPipelineConfig",
148
+ "RBLNCosmosVideoToWorldPipelineConfig",
149
+ "RBLNCosmosSafetyChecker",
150
+ "RBLNCosmosTransformer3DModel",
151
+ "RBLNCosmosTransformer3DModelConfig",
140
152
  "RBLNDiffusionMixin",
141
153
  "RBLNKandinskyV22CombinedPipeline",
142
154
  "RBLNKandinskyV22CombinedPipelineConfig",
@@ -192,14 +204,24 @@ _import_structure = {
192
204
 
193
205
  if TYPE_CHECKING:
194
206
  from .configuration_utils import (
207
+ RBLNAutoConfig,
195
208
  RBLNCompileConfig,
196
209
  RBLNModelConfig,
197
210
  )
198
211
  from .diffusers import (
199
212
  RBLNAutoencoderKL,
200
213
  RBLNAutoencoderKLConfig,
214
+ RBLNAutoencoderKLCosmos,
215
+ RBLNAutoencoderKLCosmosConfig,
201
216
  RBLNControlNetModel,
202
217
  RBLNControlNetModelConfig,
218
+ RBLNCosmosSafetyChecker,
219
+ RBLNCosmosTextToWorldPipeline,
220
+ RBLNCosmosTextToWorldPipelineConfig,
221
+ RBLNCosmosTransformer3DModel,
222
+ RBLNCosmosTransformer3DModelConfig,
223
+ RBLNCosmosVideoToWorldPipeline,
224
+ RBLNCosmosVideoToWorldPipelineConfig,
203
225
  RBLNDiffusionMixin,
204
226
  RBLNKandinskyV22CombinedPipeline,
205
227
  RBLNKandinskyV22CombinedPipelineConfig,
@@ -295,6 +317,8 @@ if TYPE_CHECKING:
295
317
  RBLNCLIPVisionModelConfig,
296
318
  RBLNCLIPVisionModelWithProjection,
297
319
  RBLNCLIPVisionModelWithProjectionConfig,
320
+ RBLNColPaliForRetrieval,
321
+ RBLNColPaliForRetrievalConfig,
298
322
  RBLNDecoderOnlyModelForCausalLM,
299
323
  RBLNDecoderOnlyModelForCausalLMConfig,
300
324
  RBLNDistilBertForQuestionAnswering,
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.8.0.post1'
21
- __version_tuple__ = version_tuple = (0, 8, 0, 'post1')
20
+ __version__ = version = '0.8.1'
21
+ __version_tuple__ = version_tuple = (0, 8, 1)