optimum-rbln 0.8.4a0__tar.gz → 0.8.4a2__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.

Potentially problematic release.


This version of optimum-rbln might be problematic. Click here for more details.

Files changed (320) hide show
  1. optimum_rbln-0.8.4a2/.github/version.yaml +1 -0
  2. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/PKG-INFO +1 -1
  3. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/__init__.py +8 -0
  4. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/__version__.py +2 -2
  5. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/configuration_utils.py +10 -3
  6. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/modeling_diffusers.py +15 -1
  7. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/auto_pipeline.py +37 -4
  8. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/modeling_base.py +40 -2
  9. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/__init__.py +8 -0
  10. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/__init__.py +12 -0
  11. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/auto/auto_factory.py +28 -13
  12. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py +1 -1
  13. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/grounding_dino/grounding_dino_architecture.py +110 -18
  14. optimum_rbln-0.8.4a2/src/optimum/rbln/transformers/models/qwen2_vl/__init__.py +19 -0
  15. optimum_rbln-0.8.4a2/src/optimum/rbln/transformers/models/qwen2_vl/configuration_qwen2_vl.py +88 -0
  16. optimum_rbln-0.8.4a2/src/optimum/rbln/transformers/models/qwen2_vl/modeling_qwen2_vl.py +506 -0
  17. optimum_rbln-0.8.4a2/src/optimum/rbln/transformers/models/qwen2_vl/qwen2_vl_architecture.py +141 -0
  18. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/time_series_transformer/time_series_transformers_architecture.py +7 -1
  19. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/test_base.py +0 -6
  20. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/test_config.py +6 -6
  21. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/test_diffusers.py +1 -5
  22. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/test_llm.py +45 -0
  23. optimum_rbln-0.8.4a0/.github/version.yaml +0 -1
  24. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  25. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  26. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  27. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/ISSUE_TEMPLATE/model_request.md +0 -0
  28. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/pull_request_template.md +0 -0
  29. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/scripts/auto_code_review.py +0 -0
  30. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/scripts/validate_docstrings.py +0 -0
  31. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/scripts/validate_pr_checklist.py +0 -0
  32. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/auto_code_review.yml +0 -0
  33. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/check_code_quality.yml +0 -0
  34. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/deploy-on-tag.yaml +0 -0
  35. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/deploy.yaml +0 -0
  36. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/pr-title-check.yaml +0 -0
  37. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/pr_checklist_validator.yml +0 -0
  38. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/rbln_check_compiler.yaml +0 -0
  39. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/rbln_dispatch_pytest.yaml +0 -0
  40. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/rbln_optimum_inference_test.yaml +0 -0
  41. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/rbln_optimum_pytest.yaml +0 -0
  42. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/rbln_scheduled_test.yaml +0 -0
  43. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/rbln_trigger_on_pr.yaml +0 -0
  44. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/test-docstrings.yml +0 -0
  45. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.gitignore +0 -0
  46. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/CODE_OF_CONDUCT.md +0 -0
  47. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/CONTRIBUTING.md +0 -0
  48. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/LICENSE +0 -0
  49. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/README.md +0 -0
  50. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/assets/rbln_logo.png +0 -0
  51. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/advanced/custom_class.py +0 -0
  52. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/audio-classification/run_ast_audio_classification.py +0 -0
  53. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/depth-estimation/run_dpt.py +0 -0
  54. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/image-classification/run_image_classification.py +0 -0
  55. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/image-classification/run_vit_image_classification.py +0 -0
  56. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/image-to-text/run_idefics3.py +0 -0
  57. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/image-to-text/run_llava_next_image_to_text.py +0 -0
  58. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/kandinsky2_2/run_kandinsky2_2.py +0 -0
  59. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/kandinsky2_2/run_kandinsky2_2_combined.py +0 -0
  60. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/kandinsky2_2/run_kandinsky2_2_img2img.py +0 -0
  61. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/kandinsky2_2/run_kandinsky2_2_img2img_combined.py +0 -0
  62. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/kandinsky2_2/run_kandinsky2_2_inpaint.py +0 -0
  63. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/kandinsky2_2/run_kandinsky2_2_inpaint_combined.py +0 -0
  64. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/kandinsky2_2/run_kandinsky2_2_prior_interpolate.py +0 -0
  65. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/question-answering/run_question_answering.py +0 -0
  66. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/speech-recognition/run_wav2vec2.py +0 -0
  67. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/speech-recognition/run_whisper.py +0 -0
  68. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/stable-diffusion/run_stable_diffusion.py +0 -0
  69. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/stable-diffusion/run_stable_diffusion_controlnet.py +0 -0
  70. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/stable-diffusion/run_stable_diffusion_img2img.py +0 -0
  71. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/stable-diffusion/run_stable_diffusion_img2img_controlnet.py +0 -0
  72. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/stable-diffusion/run_stable_diffusion_inpaint.py +0 -0
  73. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/stable-diffusion/run_stable_diffusion_lora.py +0 -0
  74. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/stable-diffusion/run_stable_diffusion_multicontrolnet.py +0 -0
  75. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text-classification/run_bge_m3_text_classification.py +0 -0
  76. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text-classification/run_bge_reranker_v2_m3_text_classification.py +0 -0
  77. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text-classification/run_secureBERT.py +0 -0
  78. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text-classification/run_t5_classification.py +0 -0
  79. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text-classification/run_twitter_roberta_text_classification.py +0 -0
  80. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text2text-generation/run_bart_text2text_generation.py +0 -0
  81. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text2text-generation/run_llama_peft.py +0 -0
  82. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text2text-generation/run_llama_text2text_generation.py +0 -0
  83. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/time-series-forecasting/run_time_series_forecasting.py +0 -0
  84. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/pyproject.toml +0 -0
  85. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/scripts/uv-lock.sh +0 -0
  86. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/scripts/uv-sync.sh +0 -0
  87. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/__init__.py +0 -0
  88. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/__init__.py +0 -0
  89. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/__init__.py +0 -0
  90. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl.py +0 -0
  91. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl_cosmos.py +0 -0
  92. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_controlnet.py +0 -0
  93. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_prior_transformer.py +0 -0
  94. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_transformer_cosmos.py +0 -0
  95. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_transformer_sd3.py +0 -0
  96. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_unet_2d_condition.py +0 -0
  97. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_vq_model.py +0 -0
  98. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/pipelines/__init__.py +0 -0
  99. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_controlnet.py +0 -0
  100. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_cosmos.py +0 -0
  101. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_kandinsky2_2.py +0 -0
  102. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion.py +0 -0
  103. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_3.py +0 -0
  104. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_xl.py +0 -0
  105. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/__init__.py +0 -0
  106. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/autoencoders/__init__.py +0 -0
  107. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl.py +0 -0
  108. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl_cosmos.py +0 -0
  109. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/autoencoders/vae.py +0 -0
  110. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/autoencoders/vq_model.py +0 -0
  111. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/controlnet.py +0 -0
  112. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/transformers/__init__.py +0 -0
  113. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/transformers/prior_transformer.py +0 -0
  114. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/transformers/transformer_cosmos.py +0 -0
  115. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/transformers/transformer_sd3.py +0 -0
  116. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/unets/__init__.py +0 -0
  117. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/unets/unet_2d_condition.py +0 -0
  118. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/__init__.py +0 -0
  119. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/controlnet/__init__.py +0 -0
  120. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/controlnet/multicontrolnet.py +0 -0
  121. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet.py +0 -0
  122. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +0 -0
  123. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +0 -0
  124. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +0 -0
  125. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/cosmos/__init__.py +0 -0
  126. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/cosmos/configuration_cosmos_guardrail.py +0 -0
  127. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/cosmos/cosmos_guardrail.py +0 -0
  128. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/cosmos/pipeline_cosmos_text2world.py +0 -0
  129. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/cosmos/pipeline_cosmos_video2world.py +0 -0
  130. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/__init__.py +0 -0
  131. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +0 -0
  132. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +0 -0
  133. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +0 -0
  134. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpaint.py +0 -0
  135. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +0 -0
  136. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/__init__.py +0 -0
  137. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +0 -0
  138. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +0 -0
  139. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +0 -0
  140. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/__init__.py +0 -0
  141. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +0 -0
  142. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +0 -0
  143. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +0 -0
  144. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/__init__.py +0 -0
  145. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +0 -0
  146. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +0 -0
  147. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +0 -0
  148. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/modeling.py +0 -0
  149. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/ops/__init__.py +0 -0
  150. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/ops/attn.py +0 -0
  151. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/ops/flash_attn.py +0 -0
  152. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/ops/kv_cache_update.py +0 -0
  153. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/ops/linear.py +0 -0
  154. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/ops/sliding_window_attn.py +0 -0
  155. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/configuration_generic.py +0 -0
  156. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/modeling_attention_utils.py +0 -0
  157. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/modeling_generic.py +0 -0
  158. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/modeling_outputs.py +0 -0
  159. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/modeling_rope_utils.py +0 -0
  160. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/__init__.py +0 -0
  161. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/configuration_audio_spectrogram_transformer.py +0 -0
  162. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/modeling_audio_spectrogram_transformer.py +0 -0
  163. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/auto/__init__.py +0 -0
  164. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/auto/modeling_auto.py +0 -0
  165. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bart/__init__.py +0 -0
  166. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bart/bart_architecture.py +0 -0
  167. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bart/configuration_bart.py +0 -0
  168. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bart/modeling_bart.py +0 -0
  169. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bert/__init__.py +0 -0
  170. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bert/bert_architecture.py +0 -0
  171. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bert/configuration_bert.py +0 -0
  172. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bert/modeling_bert.py +0 -0
  173. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/blip_2/__init__.py +0 -0
  174. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/blip_2/configuration_blip_2.py +0 -0
  175. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/blip_2/modeling_blip_2.py +0 -0
  176. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/clip/__init__.py +0 -0
  177. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/clip/configuration_clip.py +0 -0
  178. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/clip/modeling_clip.py +0 -0
  179. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/colpali/__init__.py +0 -0
  180. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/colpali/colpali_architecture.py +0 -0
  181. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/colpali/configuration_colpali.py +0 -0
  182. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/colpali/modeling_colpali.py +0 -0
  183. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/decoderonly/__init__.py +0 -0
  184. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py +0 -0
  185. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/decoderonly/decoderonly_runtime_utils.py +0 -0
  186. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/decoderonly/generation_decoderonly.py +0 -0
  187. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +0 -0
  188. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/depth_anything/__init__.py +0 -0
  189. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/depth_anything/configuration_depth_anything.py +0 -0
  190. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/depth_anything/modeling_depth_anything.py +0 -0
  191. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/distilbert/__init__.py +0 -0
  192. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/distilbert/configuration_distilbert.py +0 -0
  193. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/distilbert/modeling_distilbert.py +0 -0
  194. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/dpt/__init__.py +0 -0
  195. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/dpt/configuration_dpt.py +0 -0
  196. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/dpt/modeling_dpt.py +0 -0
  197. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/exaone/__init__.py +0 -0
  198. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/exaone/configuration_exaone.py +0 -0
  199. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/exaone/exaone_architecture.py +0 -0
  200. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/exaone/modeling_exaone.py +0 -0
  201. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma/__init__.py +0 -0
  202. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma/configuration_gemma.py +0 -0
  203. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma/gemma_architecture.py +0 -0
  204. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma/modeling_gemma.py +0 -0
  205. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma3/__init__.py +0 -0
  206. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma3/configuration_gemma3.py +0 -0
  207. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma3/gemma3_architecture.py +0 -0
  208. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma3/gemma3_runtime_utils.py +0 -0
  209. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma3/modeling_gemma3.py +0 -0
  210. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gpt2/__init__.py +0 -0
  211. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gpt2/configuration_gpt2.py +0 -0
  212. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gpt2/gpt2_architecture.py +0 -0
  213. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gpt2/modeling_gpt2.py +0 -0
  214. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/grounding_dino/__init__.py +0 -0
  215. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/grounding_dino/configuration_grounding_dino.py +0 -0
  216. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/grounding_dino/modeling_grounding_dino.py +0 -0
  217. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/idefics3/__init__.py +0 -0
  218. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/idefics3/configuration_idefics3.py +0 -0
  219. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/idefics3/modeling_idefics3.py +0 -0
  220. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llama/__init__.py +0 -0
  221. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llama/configuration_llama.py +0 -0
  222. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llama/llama_architecture.py +0 -0
  223. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llama/modeling_llama.py +0 -0
  224. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llava/__init__.py +0 -0
  225. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llava/configuration_llava.py +0 -0
  226. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llava/modeling_llava.py +0 -0
  227. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llava_next/__init__.py +0 -0
  228. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llava_next/configuration_llava_next.py +0 -0
  229. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llava_next/modeling_llava_next.py +0 -0
  230. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/midm/__init__.py +0 -0
  231. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/midm/configuration_midm.py +0 -0
  232. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/midm/midm_architecture.py +0 -0
  233. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/midm/modeling_midm.py +0 -0
  234. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/mistral/__init__.py +0 -0
  235. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/mistral/configuration_mistral.py +0 -0
  236. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/mistral/mistral_architecture.py +0 -0
  237. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/mistral/modeling_mistral.py +0 -0
  238. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/opt/__init__.py +0 -0
  239. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/opt/configuration_opt.py +0 -0
  240. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/opt/modeling_opt.py +0 -0
  241. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/opt/opt_architecture.py +0 -0
  242. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pegasus/__init__.py +0 -0
  243. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pegasus/configuration_pegasus.py +0 -0
  244. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pegasus/modeling_pegasus.py +0 -0
  245. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pegasus/pegasus_architecture.py +0 -0
  246. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/phi/__init__.py +0 -0
  247. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/phi/configuration_phi.py +0 -0
  248. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/phi/modeling_phi.py +0 -0
  249. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/phi/phi_architecture.py +0 -0
  250. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pixtral/__init__.py +0 -0
  251. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pixtral/configuration_pixtral.py +0 -0
  252. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pixtral/modeling_pixtral.py +0 -0
  253. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pixtral/pixtral_architecture.py +0 -0
  254. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen2/__init__.py +0 -0
  255. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen2/configuration_qwen2.py +0 -0
  256. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen2/modeling_qwen2.py +0 -0
  257. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen2/qwen2_architecture.py +0 -0
  258. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen2_5_vl/__init__.py +0 -0
  259. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen2_5_vl/configuration_qwen2_5_vl.py +0 -0
  260. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen2_5_vl/modeling_qwen2_5_vl.py +0 -0
  261. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen2_5_vl/qwen2_5_vl_architecture.py +0 -0
  262. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen3/__init__.py +0 -0
  263. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen3/configuration_qwen3.py +0 -0
  264. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen3/modeling_qwen3.py +0 -0
  265. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen3/qwen3_architecture.py +0 -0
  266. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/resnet/__init__.py +0 -0
  267. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/resnet/configuration_resnet.py +0 -0
  268. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/resnet/modeling_resnet.py +0 -0
  269. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/roberta/__init__.py +0 -0
  270. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/roberta/configuration_roberta.py +0 -0
  271. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/roberta/modeling_roberta.py +0 -0
  272. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/seq2seq/__init__.py +0 -0
  273. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/seq2seq/configuration_seq2seq.py +0 -0
  274. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/seq2seq/modeling_seq2seq.py +0 -0
  275. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/seq2seq/seq2seq_architecture.py +0 -0
  276. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/siglip/__init__.py +0 -0
  277. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/siglip/configuration_siglip.py +0 -0
  278. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/siglip/modeling_siglip.py +0 -0
  279. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/swin/__init__.py +0 -0
  280. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/swin/configuration_swin.py +0 -0
  281. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/swin/modeling_swin.py +0 -0
  282. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/t5/__init__.py +0 -0
  283. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/t5/configuration_t5.py +0 -0
  284. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/t5/modeling_t5.py +0 -0
  285. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/t5/t5_architecture.py +0 -0
  286. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/time_series_transformer/__init__.py +0 -0
  287. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/time_series_transformer/configuration_time_series_transformer.py +0 -0
  288. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/time_series_transformer/modeling_time_series_transformer.py +0 -0
  289. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/vit/__init__.py +0 -0
  290. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/vit/configuration_vit.py +0 -0
  291. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/vit/modeling_vit.py +0 -0
  292. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/wav2vec2/__init__.py +0 -0
  293. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/wav2vec2/configuration_wav2vec2.py +0 -0
  294. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/wav2vec2/modeling_wav2vec2.py +0 -0
  295. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/whisper/__init__.py +0 -0
  296. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/whisper/configuration_whisper.py +0 -0
  297. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/whisper/generation_whisper.py +0 -0
  298. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/whisper/modeling_whisper.py +0 -0
  299. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/whisper/whisper_architecture.py +0 -0
  300. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/xlm_roberta/__init__.py +0 -0
  301. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/xlm_roberta/configuration_xlm_roberta.py +0 -0
  302. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/xlm_roberta/modeling_xlm_roberta.py +0 -0
  303. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/utils/__init__.py +0 -0
  304. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/utils/rbln_quantization.py +0 -0
  305. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/__init__.py +0 -0
  306. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/decorator_utils.py +0 -0
  307. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/depreacate_utils.py +0 -0
  308. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/hub.py +0 -0
  309. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/import_utils.py +0 -0
  310. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/logging.py +0 -0
  311. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/model_utils.py +0 -0
  312. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/runtime_utils.py +0 -0
  313. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/save_utils.py +0 -0
  314. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/submodule.py +0 -0
  315. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/__init__.py +0 -0
  316. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/psnr.py +0 -0
  317. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/requirements_sdxl.txt +0 -0
  318. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/run_stable_diffusion_xl_base.py +0 -0
  319. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/test_transformers.py +0 -0
  320. {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/uv.lock +0 -0
@@ -0,0 +1 @@
1
+ rebel_compiler_version: 0.8.4.dev278+ge147357b
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: optimum-rbln
3
- Version: 0.8.4a0
3
+ Version: 0.8.4a2
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
@@ -148,6 +148,10 @@ _import_structure = {
148
148
  "RBLNQwen3ForCausalLMConfig",
149
149
  "RBLNQwen3Model",
150
150
  "RBLNQwen3ModelConfig",
151
+ "RBLNQwen2VisionTransformerPretrainedModel",
152
+ "RBLNQwen2VisionTransformerPretrainedModelConfig",
153
+ "RBLNQwen2VLForConditionalGeneration",
154
+ "RBLNQwen2VLForConditionalGenerationConfig",
151
155
  "RBLNResNetForImageClassification",
152
156
  "RBLNResNetForImageClassificationConfig",
153
157
  "RBLNRobertaForMaskedLM",
@@ -430,6 +434,10 @@ if TYPE_CHECKING:
430
434
  RBLNQwen2ForCausalLMConfig,
431
435
  RBLNQwen2Model,
432
436
  RBLNQwen2ModelConfig,
437
+ RBLNQwen2VisionTransformerPretrainedModel,
438
+ RBLNQwen2VisionTransformerPretrainedModelConfig,
439
+ RBLNQwen2VLForConditionalGeneration,
440
+ RBLNQwen2VLForConditionalGenerationConfig,
433
441
  RBLNQwen3ForCausalLM,
434
442
  RBLNQwen3ForCausalLMConfig,
435
443
  RBLNQwen3Model,
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.8.4a0'
32
- __version_tuple__ = version_tuple = (0, 8, 4, 'a0')
31
+ __version__ = version = '0.8.4a2'
32
+ __version_tuple__ = version_tuple = (0, 8, 4, 'a2')
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -248,9 +248,6 @@ class RBLNAutoConfig:
248
248
  if key[5:] not in RUNTIME_KEYWORDS and key[5:] not in cls.submodules
249
249
  }
250
250
 
251
- if len(rbln_kwargs) > 0:
252
- raise ValueError(f"Cannot set the following arguments: {list(rbln_kwargs.keys())}")
253
-
254
251
  # Process submodule's rbln_config
255
252
  for submodule in cls.submodules:
256
253
  if submodule not in config_file:
@@ -265,6 +262,16 @@ class RBLNAutoConfig:
265
262
 
266
263
  config_file.update(rbln_runtime_kwargs)
267
264
 
265
+ rbln_config = cls(**config_file)
266
+
267
+ if len(rbln_kwargs) > 0:
268
+ for key, value in rbln_kwargs.items():
269
+ if getattr(rbln_config, key) != value:
270
+ raise ValueError(
271
+ f"Cannot set the following arguments: {list(rbln_kwargs.keys())} "
272
+ f"Since the value is already set to {getattr(rbln_config, key)}"
273
+ )
274
+
268
275
  if return_unused_kwargs:
269
276
  return cls(**config_file), kwargs
270
277
  else:
@@ -130,7 +130,7 @@ class RBLNDiffusionMixin:
130
130
  cls,
131
131
  model_id: str,
132
132
  *,
133
- export: bool = False,
133
+ export: bool = None,
134
134
  model_save_dir: Optional[PathLike] = None,
135
135
  rbln_config: Dict[str, Any] = {},
136
136
  lora_ids: Optional[Union[str, List[str]]] = None,
@@ -181,6 +181,20 @@ class RBLNDiffusionMixin:
181
181
  """
182
182
  rbln_config, kwargs = cls.get_rbln_config_class().initialize_from_kwargs(rbln_config, **kwargs)
183
183
 
184
+ if export is None:
185
+ export = any(
186
+ not RBLNModel._is_compiled(
187
+ model_id,
188
+ token=kwargs.get("token"),
189
+ revision=kwargs.get("revision"),
190
+ force_download=kwargs.get("force_download", False),
191
+ cache_dir=kwargs.get("cache_dir"),
192
+ subfolder=submodule_name,
193
+ local_files_only=kwargs.get("local_files_only", False),
194
+ )
195
+ for submodule_name in cls._submodules
196
+ )
197
+
184
198
  if export:
185
199
  # keep submodules if user passed any of them.
186
200
  passed_submodules = {
@@ -14,7 +14,8 @@
14
14
 
15
15
 
16
16
  import importlib
17
- from typing import Type
17
+ from pathlib import Path
18
+ from typing import Type, Union
18
19
 
19
20
  from diffusers.models.controlnets import ControlNetUnionModel
20
21
  from diffusers.pipelines.auto_pipeline import (
@@ -42,7 +43,13 @@ class RBLNAutoPipelineBase:
42
43
  _model_mapping_names = None
43
44
 
44
45
  @classmethod
45
- def get_rbln_cls(cls, pretrained_model_name_or_path, export=True, **kwargs):
46
+ def get_rbln_cls(cls, pretrained_model_name_or_path: Union[str, Path], export: bool = None, **kwargs):
47
+ if isinstance(pretrained_model_name_or_path, Path):
48
+ pretrained_model_name_or_path = pretrained_model_name_or_path.as_posix()
49
+
50
+ if export is None:
51
+ export = not cls._is_compiled_pipeline(pretrained_model_name_or_path, **kwargs)
52
+
46
53
  if export:
47
54
  hf_model_class = cls.infer_hf_model_class(pretrained_model_name_or_path, **kwargs)
48
55
  rbln_class_name = convert_hf_to_rbln_model_name(hf_model_class.__name__)
@@ -66,7 +73,7 @@ class RBLNAutoPipelineBase:
66
73
  return rbln_cls
67
74
 
68
75
  @classmethod
69
- def get_rbln_model_cls_name(cls, pretrained_model_name_or_path, **kwargs):
76
+ def get_rbln_model_cls_name(cls, pretrained_model_name_or_path: Union[str, Path], **kwargs):
70
77
  """
71
78
  Retrieve the path to the compiled model directory for a given RBLN model.
72
79
 
@@ -86,10 +93,36 @@ class RBLNAutoPipelineBase:
86
93
 
87
94
  return model_index_config["_class_name"]
88
95
 
96
+ @classmethod
97
+ def _is_compiled_pipeline(
98
+ cls,
99
+ pretrained_model_name_or_path: Union[str, Path],
100
+ cache_dir=None,
101
+ force_download=False,
102
+ proxies=None,
103
+ token=None,
104
+ local_files_only=False,
105
+ revision=None,
106
+ **kwargs,
107
+ ):
108
+ config: dict = cls.load_config(
109
+ pretrained_model_name_or_path,
110
+ cache_dir=cache_dir,
111
+ force_download=force_download,
112
+ proxies=proxies,
113
+ token=token,
114
+ local_files_only=local_files_only,
115
+ revision=revision,
116
+ )
117
+ for value in config.values():
118
+ if isinstance(value, list) and len(value) > 0 and value[0] == "optimum.rbln":
119
+ return True
120
+ return False
121
+
89
122
  @classmethod
90
123
  def infer_hf_model_class(
91
124
  cls,
92
- pretrained_model_or_path,
125
+ pretrained_model_or_path: Union[str, Path],
93
126
  cache_dir=None,
94
127
  force_download=False,
95
128
  proxies=None,
@@ -343,11 +343,37 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
343
343
  rbln_config, kwargs = config_cls.initialize_from_kwargs(rbln_config, **kwargs)
344
344
  return rbln_config, kwargs
345
345
 
346
+ @classmethod
347
+ def _is_compiled(
348
+ cls,
349
+ model_id: Union[str, Path],
350
+ token: Optional[Union[bool, str]] = None,
351
+ revision: Optional[str] = None,
352
+ force_download: bool = False,
353
+ cache_dir: Optional[str] = None,
354
+ subfolder: str = "",
355
+ local_files_only: bool = False,
356
+ ) -> bool:
357
+ # Check if the model is already compiled.
358
+ try:
359
+ cls._load_compiled_model_dir(
360
+ model_id=model_id,
361
+ token=token,
362
+ revision=revision,
363
+ force_download=force_download,
364
+ cache_dir=cache_dir,
365
+ subfolder=subfolder,
366
+ local_files_only=local_files_only,
367
+ )
368
+ return True
369
+ except (FileNotFoundError, KeyError):
370
+ return False
371
+
346
372
  @classmethod
347
373
  def from_pretrained(
348
374
  cls: Type["RBLNBaseModel"],
349
375
  model_id: Union[str, Path],
350
- export: bool = False,
376
+ export: bool = None,
351
377
  rbln_config: Optional[Union[Dict, RBLNModelConfig]] = None,
352
378
  **kwargs: Any,
353
379
  ) -> "RBLNBaseModel":
@@ -357,7 +383,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
357
383
 
358
384
  Args:
359
385
  model_id: The model id of the pre-trained model to be loaded. It can be downloaded from the HuggingFace model hub or a local path, or a model id of a compiled model using the RBLN Compiler.
360
- export: A boolean flag to indicate whether the model should be compiled.
386
+ export: A boolean flag to indicate whether the model should be compiled. If None, it will be determined based on the existence of the compiled model files in the model_id.
361
387
  rbln_config: Configuration for RBLN model compilation and runtime. This can be provided as a dictionary or an instance of the model's configuration class (e.g., `RBLNLlamaForCausalLMConfig` for Llama models).
362
388
  For detailed configuration options, see the specific model's configuration class documentation.
363
389
 
@@ -369,6 +395,18 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
369
395
 
370
396
  if isinstance(model_id, Path):
371
397
  model_id = model_id.as_posix()
398
+
399
+ if export is None:
400
+ export = not cls._is_compiled(
401
+ model_id=model_id,
402
+ token=kwargs.get("token"),
403
+ revision=kwargs.get("revision"),
404
+ force_download=kwargs.get("force_download", False),
405
+ cache_dir=kwargs.get("cache_dir"),
406
+ subfolder=kwargs.get("subfolder", ""),
407
+ local_files_only=kwargs.get("local_files_only", False),
408
+ )
409
+
372
410
  from_pretrained_method = cls._export if export else cls._from_pretrained
373
411
  return from_pretrained_method(model_id=model_id, **kwargs, rbln_config=rbln_config)
374
412
 
@@ -130,6 +130,10 @@ _import_structure = {
130
130
  "RBLNQwen2_5_VisionTransformerPretrainedModelConfig",
131
131
  "RBLNQwen2_5_VLForConditionalGeneration",
132
132
  "RBLNQwen2_5_VLForConditionalGenerationConfig",
133
+ "RBLNQwen2VisionTransformerPretrainedModel",
134
+ "RBLNQwen2VisionTransformerPretrainedModelConfig",
135
+ "RBLNQwen2VLForConditionalGeneration",
136
+ "RBLNQwen2VLForConditionalGenerationConfig",
133
137
  "RBLNQwen2Model",
134
138
  "RBLNQwen2ModelConfig",
135
139
  "RBLNQwen2ForCausalLM",
@@ -282,6 +286,10 @@ if TYPE_CHECKING:
282
286
  RBLNQwen2ForCausalLMConfig,
283
287
  RBLNQwen2Model,
284
288
  RBLNQwen2ModelConfig,
289
+ RBLNQwen2VisionTransformerPretrainedModel,
290
+ RBLNQwen2VisionTransformerPretrainedModelConfig,
291
+ RBLNQwen2VLForConditionalGeneration,
292
+ RBLNQwen2VLForConditionalGenerationConfig,
285
293
  RBLNQwen3ForCausalLM,
286
294
  RBLNQwen3ForCausalLMConfig,
287
295
  RBLNQwen3Model,
@@ -85,6 +85,12 @@ _import_structure = {
85
85
  "RBLNQwen2_5_VLForConditionalGeneration",
86
86
  "RBLNQwen2_5_VLForConditionalGenerationConfig",
87
87
  ],
88
+ "qwen2_vl": [
89
+ "RBLNQwen2VisionTransformerPretrainedModel",
90
+ "RBLNQwen2VisionTransformerPretrainedModelConfig",
91
+ "RBLNQwen2VLForConditionalGeneration",
92
+ "RBLNQwen2VLForConditionalGenerationConfig",
93
+ ],
88
94
  "decoderonly": [
89
95
  "RBLNDecoderOnlyModelConfig",
90
96
  "RBLNDecoderOnlyModel",
@@ -281,6 +287,12 @@ if TYPE_CHECKING:
281
287
  RBLNQwen2_5_VLForConditionalGeneration,
282
288
  RBLNQwen2_5_VLForConditionalGenerationConfig,
283
289
  )
290
+ from .qwen2_vl import (
291
+ RBLNQwen2VisionTransformerPretrainedModel,
292
+ RBLNQwen2VisionTransformerPretrainedModelConfig,
293
+ RBLNQwen2VLForConditionalGeneration,
294
+ RBLNQwen2VLForConditionalGenerationConfig,
295
+ )
284
296
  from .qwen3 import RBLNQwen3ForCausalLM, RBLNQwen3ForCausalLMConfig, RBLNQwen3Model, RBLNQwen3ModelConfig
285
297
  from .resnet import RBLNResNetForImageClassification, RBLNResNetForImageClassificationConfig
286
298
  from .roberta import (
@@ -14,9 +14,10 @@
14
14
  import importlib
15
15
  import inspect
16
16
  import warnings
17
- from typing import Type
17
+ from pathlib import Path
18
+ from typing import Any, Type, Union
18
19
 
19
- from transformers import AutoConfig, PretrainedConfig
20
+ from transformers import AutoConfig, PretrainedConfig, PreTrainedModel
20
21
  from transformers.dynamic_module_utils import get_class_from_dynamic_module
21
22
  from transformers.models.auto.auto_factory import _get_model_class
22
23
 
@@ -43,10 +44,10 @@ class _BaseAutoModelClass:
43
44
  @classmethod
44
45
  def get_rbln_cls(
45
46
  cls,
46
- pretrained_model_name_or_path,
47
- *args,
48
- export=True,
49
- **kwargs,
47
+ pretrained_model_name_or_path: Union[str, Path],
48
+ *args: Any,
49
+ export: bool = None,
50
+ **kwargs: Any,
50
51
  ):
51
52
  """
52
53
  Determine the appropriate RBLN model class based on the given model ID and configuration.
@@ -59,6 +60,20 @@ class _BaseAutoModelClass:
59
60
  Returns:
60
61
  RBLNBaseModel: The corresponding RBLN model class.
61
62
  """
63
+ if isinstance(pretrained_model_name_or_path, Path):
64
+ pretrained_model_name_or_path = pretrained_model_name_or_path.as_posix()
65
+
66
+ if export is None:
67
+ export = not RBLNBaseModel._is_compiled(
68
+ model_id=pretrained_model_name_or_path,
69
+ token=kwargs.get("token"),
70
+ revision=kwargs.get("revision"),
71
+ force_download=kwargs.get("force_download", False),
72
+ cache_dir=kwargs.get("cache_dir"),
73
+ subfolder=kwargs.get("subfolder", ""),
74
+ local_files_only=kwargs.get("local_files_only", False),
75
+ )
76
+
62
77
  if export:
63
78
  hf_model_class = cls.infer_hf_model_class(pretrained_model_name_or_path, **kwargs)
64
79
  rbln_class_name = convert_hf_to_rbln_model_name(hf_model_class.__name__)
@@ -85,9 +100,9 @@ class _BaseAutoModelClass:
85
100
  @classmethod
86
101
  def infer_hf_model_class(
87
102
  cls,
88
- pretrained_model_name_or_path,
89
- *args,
90
- **kwargs,
103
+ pretrained_model_name_or_path: Union[str, Path],
104
+ *args: Any,
105
+ **kwargs: Any,
91
106
  ):
92
107
  """
93
108
  Infer the HuggingFace model class based on the configuration or model name.
@@ -140,7 +155,7 @@ class _BaseAutoModelClass:
140
155
  return model_class
141
156
 
142
157
  @classmethod
143
- def get_rbln_model_cls_name(cls, pretrained_model_name_or_path, **kwargs):
158
+ def get_rbln_model_cls_name(cls, pretrained_model_name_or_path: Union[str, Path], **kwargs):
144
159
  """
145
160
  Retrieve the path to the compiled model directory for a given RBLN model.
146
161
 
@@ -163,17 +178,17 @@ class _BaseAutoModelClass:
163
178
  return rbln_config.rbln_model_cls_name
164
179
 
165
180
  @classmethod
166
- def from_pretrained(cls, model_id, *args, **kwargs):
181
+ def from_pretrained(cls, model_id: Union[str, Path], *args, **kwargs):
167
182
  rbln_cls = cls.get_rbln_cls(model_id, *args, **kwargs)
168
183
  return rbln_cls.from_pretrained(model_id, *args, **kwargs)
169
184
 
170
185
  @classmethod
171
- def from_model(cls, model, *args, **kwargs):
186
+ def from_model(cls, model: PreTrainedModel, *args, **kwargs):
172
187
  rbln_cls = get_rbln_model_cls(f"RBLN{model.__class__.__name__}")
173
188
  return rbln_cls.from_model(model, *args, **kwargs)
174
189
 
175
190
  @staticmethod
176
- def register(rbln_cls: Type[RBLNBaseModel], exist_ok=False):
191
+ def register(rbln_cls: Type[RBLNBaseModel], exist_ok: bool = False):
177
192
  """
178
193
  Register a new RBLN model class.
179
194
 
@@ -579,7 +579,7 @@ class DecoderOnlyAttention(nn.Module):
579
579
  )
580
580
  self.head_dim = self._original_mod.head_dim
581
581
  self._phase = "prefill"
582
- self.scale = torch.tensor(self.get_attn_scale())
582
+ self.scale = torch.nn.Parameter(torch.tensor(self.get_attn_scale()))
583
583
  self.quantization = rbln_config.quantization
584
584
 
585
585
  if hasattr(self._original_mod, "num_key_value_heads"):
@@ -11,6 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+ import math
14
15
  from functools import wraps
15
16
  from typing import TYPE_CHECKING, List, Optional, Tuple
16
17
 
@@ -20,7 +21,6 @@ from torch import Tensor
20
21
  from transformers.models.grounding_dino.modeling_grounding_dino import (
21
22
  GroundingDinoDecoder,
22
23
  GroundingDinoEncoder,
23
- get_sine_pos_embed,
24
24
  )
25
25
 
26
26
 
@@ -33,31 +33,46 @@ def monkey_patch():
33
33
  GroundingDinoBiMultiHeadAttention,
34
34
  GroundingDinoEncoderLayer,
35
35
  GroundingDinoMultiscaleDeformableAttention,
36
+ MultiScaleDeformableAttention,
36
37
  )
37
38
 
38
39
  original_forward = GroundingDinoMultiscaleDeformableAttention.forward
39
40
  original_bi_multihead_attention_forward = GroundingDinoBiMultiHeadAttention.forward
40
41
  original_encoder_layer_forward = GroundingDinoEncoderLayer.forward
42
+ original_multiscale_deform_attn = MultiScaleDeformableAttention.forward
41
43
 
42
44
  # Patch the methods with the custom implementations
43
45
  GroundingDinoMultiscaleDeformableAttention.forward = _GroundingDinoMultiscaleDeformableAttention.forward
44
46
  GroundingDinoBiMultiHeadAttention.forward = _GroundingDinoBiMultiHeadAttention.forward
45
47
  GroundingDinoEncoderLayer.forward = _GroundingDinoEncoderLayer.forward
48
+ MultiScaleDeformableAttention.forward = _MultiScaleDeformableAttention.forward
46
49
 
47
- return (original_forward, original_bi_multihead_attention_forward, original_encoder_layer_forward)
50
+ return (
51
+ original_forward,
52
+ original_bi_multihead_attention_forward,
53
+ original_encoder_layer_forward,
54
+ original_multiscale_deform_attn,
55
+ )
48
56
 
49
57
 
50
- def restore_monkey_patch(original_forward, original_bi_multihead_attention_forward, original_encoder_layer_forward):
58
+ def restore_monkey_patch(
59
+ original_forward,
60
+ original_bi_multihead_attention_forward,
61
+ original_encoder_layer_forward,
62
+ original_multiscale_deform_attn,
63
+ ):
51
64
  from transformers.models.grounding_dino.modeling_grounding_dino import (
52
65
  GroundingDinoBiMultiHeadAttention,
53
66
  GroundingDinoEncoderLayer,
54
67
  GroundingDinoMultiscaleDeformableAttention,
68
+ MultiScaleDeformableAttention,
55
69
  )
56
70
 
57
71
  # Restore the original methods
58
72
  GroundingDinoMultiscaleDeformableAttention.forward = original_forward
59
73
  GroundingDinoBiMultiHeadAttention.forward = original_bi_multihead_attention_forward
60
74
  GroundingDinoEncoderLayer.forward = original_encoder_layer_forward
75
+ MultiScaleDeformableAttention.forward = original_multiscale_deform_attn
61
76
 
62
77
 
63
78
  def monkey_patch_decorator(func):
@@ -76,6 +91,30 @@ def monkey_patch_decorator(func):
76
91
  return wrapper
77
92
 
78
93
 
94
+ def get_sine_pos_embed(
95
+ pos_tensor: torch.Tensor, num_pos_feats: int = 128, temperature: int = 10000, exchange_xy: bool = True
96
+ ) -> Tensor:
97
+ scale = 2 * math.pi
98
+ dim_t = torch.arange(num_pos_feats, dtype=torch.float32, device=pos_tensor.device)
99
+ dim_t = temperature ** (2 * torch.div(dim_t, 2, rounding_mode="floor") / num_pos_feats)
100
+
101
+ scaled_pos = pos_tensor.unsqueeze(-1) * scale / dim_t
102
+ reshaped_pos = scaled_pos.view(*scaled_pos.shape[:-1], -1, 2)
103
+ sin_chunk, cos_chunk = torch.split(reshaped_pos, 1, dim=-1)
104
+ sin_embed = sin_chunk.squeeze(-1).sin()
105
+ cos_embed = cos_chunk.squeeze(-1).cos()
106
+
107
+ pos_embed = torch.stack((sin_embed, cos_embed), dim=-1).flatten(-2)
108
+
109
+ if exchange_xy and pos_tensor.shape[-1] >= 2:
110
+ swapped_embeds = torch.cat([pos_embed[..., 1:2, :], pos_embed[..., 0:1, :], pos_embed[..., 2:, :]], dim=-2)
111
+ pos_embed = swapped_embeds
112
+
113
+ position_embeddings = pos_embed.flatten(start_dim=-2)
114
+
115
+ return position_embeddings
116
+
117
+
79
118
  class _GroundingDinoEncoder(torch.nn.Module):
80
119
  def __init__(self, model: "GroundingDinoEncoder", rbln_config: "RBLNGroundingDinoEncoderConfig"):
81
120
  super().__init__()
@@ -357,10 +396,16 @@ class _GroundingDinoMultiscaleDeformableAttention(torch.nn.Module):
357
396
  batch_size, num_queries, _ = hidden_states.shape
358
397
  batch_size, sequence_length, _ = encoder_hidden_states.shape
359
398
  # Ignore copy
360
- if (spatial_shapes[:, 0] * spatial_shapes[:, 1]).sum() != sequence_length:
361
- raise ValueError(
362
- "Make sure to align the spatial shapes with the sequence length of the encoder hidden states"
399
+ if torch.compiler.is_exporting():
400
+ torch._check(
401
+ (spatial_shapes[:, 0] * spatial_shapes[:, 1]).sum().item() == sequence_length,
402
+ "Make sure to align the spatial shapes with the sequence length of the encoder hidden states",
363
403
  )
404
+ else:
405
+ if (spatial_shapes[:, 0] * spatial_shapes[:, 1]).sum() != sequence_length:
406
+ raise ValueError(
407
+ "Make sure to align the spatial shapes with the sequence length of the encoder hidden states"
408
+ )
364
409
 
365
410
  value = self.value_proj(encoder_hidden_states)
366
411
  if attention_mask is not None:
@@ -380,16 +425,20 @@ class _GroundingDinoMultiscaleDeformableAttention(torch.nn.Module):
380
425
  # batch_size, num_queries, n_heads, n_levels, n_points, 2
381
426
  num_coordinates = reference_points.shape[-1]
382
427
  if num_coordinates == 2:
383
- offset_normalizer = torch.stack([spatial_shapes[..., 1], spatial_shapes[..., 0]], -1)
384
- sampling_locations = (
385
- reference_points[:, :, None, :, None, :]
428
+ offset_normalizer = 0.5 * torch.stack([spatial_shapes[..., 1], spatial_shapes[..., 0]], -1)
429
+ sampling_grids = (
430
+ 2 * reference_points[:, :, None, :, None, :]
431
+ - 1
386
432
  + sampling_offsets / offset_normalizer[None, None, None, :, None, :]
387
433
  )
388
434
  elif num_coordinates == 4:
389
- sampling_locations = (
390
- reference_points[:, :, None, :, None, :2]
391
- + sampling_offsets / self.n_points * reference_points[:, :, None, :, None, 2:] * 0.5
392
- )
435
+ ref_points_xy, ref_points_wh = torch.split(reference_points, 2, dim=-1)
436
+ ref_points_xy = ref_points_xy[:, :, None, :, None, :]
437
+ ref_points_wh = ref_points_wh[:, :, None, :, None, :]
438
+ ref_points_grids = 2 * ref_points_xy - 1
439
+ offset_grids = sampling_offsets / self.n_points * ref_points_wh
440
+ sampling_grids = ref_points_grids + offset_grids
441
+
393
442
  else:
394
443
  raise ValueError(f"Last dim of reference_points must be 2 or 4, but got {reference_points.shape[-1]}")
395
444
 
@@ -398,7 +447,7 @@ class _GroundingDinoMultiscaleDeformableAttention(torch.nn.Module):
398
447
  spatial_shapes,
399
448
  spatial_shapes_list,
400
449
  level_start_index,
401
- sampling_locations,
450
+ sampling_grids,
402
451
  attention_weights,
403
452
  self.im2col_step,
404
453
  )
@@ -450,15 +499,14 @@ class _GroundingDinoBiMultiHeadAttention(torch.nn.Module):
450
499
  # # Do not increase -50000/50000, data type half has quite limited range
451
500
  attn_weights = torch.clamp(attn_weights, min=-50000, max=50000)
452
501
 
453
- attn_weights_transposed = attn_weights.transpose(1, 2)
454
502
  # RBLN FIX: max_values from scalar to vector
455
- text_attn_weights = attn_weights_transposed - torch.max(attn_weights_transposed, dim=-1, keepdim=True)[
456
- 0
457
- ].repeat(1, 1, tgt_len)
503
+ text_attn_weights = attn_weights - torch.max(attn_weights, dim=1, keepdim=True)[0].repeat(1, tgt_len, 1)
458
504
 
459
505
  # # Do not increase -50000/50000, data type half has quite limited range
460
506
  text_attn_weights = torch.clamp(text_attn_weights, min=-50000, max=50000)
461
507
 
508
+ text_attn_weights = text_attn_weights.transpose(1, 2)
509
+
462
510
  # mask vision for language
463
511
  if vision_attention_mask is not None:
464
512
  # RBLN FIX: bool tensor to float tensor
@@ -505,3 +553,47 @@ class _GroundingDinoBiMultiHeadAttention(torch.nn.Module):
505
553
  text_attn_output = self.out_text_proj(text_attn_output)
506
554
 
507
555
  return (vision_attn_output, vision_attn_weights), (text_attn_output, text_attn_weights)
556
+
557
+
558
+ class _MultiScaleDeformableAttention(torch.nn.Module):
559
+ def forward(
560
+ self,
561
+ value: Tensor,
562
+ value_spatial_shapes: Tensor,
563
+ value_spatial_shapes_list: List[Tuple],
564
+ level_start_index: Tensor,
565
+ sampling_grids: Tensor,
566
+ attention_weights: Tensor,
567
+ im2col_step: int,
568
+ ):
569
+ batch_size, _, num_heads, hidden_dim = value.shape
570
+ _, num_queries, num_heads, num_levels, num_points, _ = sampling_grids.shape
571
+ value_list = value.split([height * width for height, width in value_spatial_shapes_list], dim=1)
572
+ sampling_value_list = []
573
+ sampling_grids_list = [t.squeeze(3) for t in torch.split(sampling_grids, 1, dim=3)]
574
+ for level_id, (height, width) in enumerate(value_spatial_shapes_list):
575
+ value_l_ = (
576
+ value_list[level_id].permute(0, 2, 3, 1).reshape(batch_size * num_heads, hidden_dim, height, width)
577
+ )
578
+ sampling_grid_l_ = sampling_grids_list[level_id].transpose(1, 2).flatten(0, 1)
579
+ sampling_value_l_ = torch.nn.functional.grid_sample(
580
+ value_l_,
581
+ sampling_grid_l_,
582
+ mode="bilinear",
583
+ padding_mode="zeros",
584
+ align_corners=False,
585
+ )
586
+ sampling_value_list.append(sampling_value_l_)
587
+
588
+ sampling_values = torch.cat(sampling_value_list, dim=-1)
589
+ attention_weights_prep = attention_weights.transpose(1, 2)
590
+ values_permuted = sampling_values.permute(0, 2, 3, 1)
591
+
592
+ weights_for_matmul = attention_weights_prep.reshape(
593
+ batch_size * num_heads, num_queries, 1, num_levels * num_points
594
+ )
595
+ output_before_permute = torch.matmul(weights_for_matmul, values_permuted)
596
+ output_before_view = output_before_permute.squeeze(2).permute(0, 2, 1)
597
+ output = output_before_view.reshape(batch_size, num_heads * hidden_dim, num_queries)
598
+
599
+ return output.transpose(1, 2).contiguous()
@@ -0,0 +1,19 @@
1
+ # Copyright 2025 Rebellions Inc. All rights reserved.
2
+
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at:
6
+
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from .configuration_qwen2_vl import (
16
+ RBLNQwen2VisionTransformerPretrainedModelConfig,
17
+ RBLNQwen2VLForConditionalGenerationConfig,
18
+ )
19
+ from .modeling_qwen2_vl import RBLNQwen2VisionTransformerPretrainedModel, RBLNQwen2VLForConditionalGeneration