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.
- optimum_rbln-0.8.4a2/.github/version.yaml +1 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/PKG-INFO +1 -1
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/__init__.py +8 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/__version__.py +2 -2
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/configuration_utils.py +10 -3
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/modeling_diffusers.py +15 -1
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/auto_pipeline.py +37 -4
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/modeling_base.py +40 -2
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/__init__.py +8 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/__init__.py +12 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/auto/auto_factory.py +28 -13
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py +1 -1
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/grounding_dino/grounding_dino_architecture.py +110 -18
- optimum_rbln-0.8.4a2/src/optimum/rbln/transformers/models/qwen2_vl/__init__.py +19 -0
- optimum_rbln-0.8.4a2/src/optimum/rbln/transformers/models/qwen2_vl/configuration_qwen2_vl.py +88 -0
- optimum_rbln-0.8.4a2/src/optimum/rbln/transformers/models/qwen2_vl/modeling_qwen2_vl.py +506 -0
- optimum_rbln-0.8.4a2/src/optimum/rbln/transformers/models/qwen2_vl/qwen2_vl_architecture.py +141 -0
- {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
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/test_base.py +0 -6
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/test_config.py +6 -6
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/test_diffusers.py +1 -5
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/test_llm.py +45 -0
- optimum_rbln-0.8.4a0/.github/version.yaml +0 -1
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/ISSUE_TEMPLATE/model_request.md +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/pull_request_template.md +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/scripts/auto_code_review.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/scripts/validate_docstrings.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/scripts/validate_pr_checklist.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/auto_code_review.yml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/check_code_quality.yml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/deploy-on-tag.yaml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/deploy.yaml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/pr-title-check.yaml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/pr_checklist_validator.yml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/rbln_check_compiler.yaml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/rbln_dispatch_pytest.yaml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/rbln_optimum_inference_test.yaml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/rbln_optimum_pytest.yaml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/rbln_scheduled_test.yaml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/rbln_trigger_on_pr.yaml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.github/workflows/test-docstrings.yml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/.gitignore +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/CODE_OF_CONDUCT.md +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/CONTRIBUTING.md +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/LICENSE +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/README.md +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/assets/rbln_logo.png +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/advanced/custom_class.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/audio-classification/run_ast_audio_classification.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/depth-estimation/run_dpt.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/image-classification/run_image_classification.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/image-classification/run_vit_image_classification.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/image-to-text/run_idefics3.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/image-to-text/run_llava_next_image_to_text.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/kandinsky2_2/run_kandinsky2_2.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/kandinsky2_2/run_kandinsky2_2_combined.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/kandinsky2_2/run_kandinsky2_2_img2img.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/kandinsky2_2/run_kandinsky2_2_img2img_combined.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/kandinsky2_2/run_kandinsky2_2_inpaint.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/kandinsky2_2/run_kandinsky2_2_inpaint_combined.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/kandinsky2_2/run_kandinsky2_2_prior_interpolate.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/question-answering/run_question_answering.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/speech-recognition/run_wav2vec2.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/speech-recognition/run_whisper.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/stable-diffusion/run_stable_diffusion.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/stable-diffusion/run_stable_diffusion_controlnet.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/stable-diffusion/run_stable_diffusion_img2img.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/stable-diffusion/run_stable_diffusion_img2img_controlnet.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/stable-diffusion/run_stable_diffusion_inpaint.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/stable-diffusion/run_stable_diffusion_lora.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/stable-diffusion/run_stable_diffusion_multicontrolnet.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text-classification/run_bge_m3_text_classification.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text-classification/run_bge_reranker_v2_m3_text_classification.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text-classification/run_secureBERT.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text-classification/run_t5_classification.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text-classification/run_twitter_roberta_text_classification.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text2text-generation/run_bart_text2text_generation.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text2text-generation/run_llama_peft.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/text2text-generation/run_llama_text2text_generation.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/examples/time-series-forecasting/run_time_series_forecasting.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/pyproject.toml +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/scripts/uv-lock.sh +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/scripts/uv-sync.sh +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl_cosmos.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_controlnet.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_prior_transformer.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_transformer_cosmos.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_transformer_sd3.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_unet_2d_condition.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/models/configuration_vq_model.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/pipelines/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_controlnet.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_cosmos.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_kandinsky2_2.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_3.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_xl.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/autoencoders/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl_cosmos.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/autoencoders/vae.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/autoencoders/vq_model.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/controlnet.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/transformers/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/transformers/prior_transformer.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/transformers/transformer_cosmos.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/transformers/transformer_sd3.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/unets/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/models/unets/unet_2d_condition.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/controlnet/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/controlnet/multicontrolnet.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/cosmos/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/cosmos/configuration_cosmos_guardrail.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/cosmos/cosmos_guardrail.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/cosmos/pipeline_cosmos_text2world.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/cosmos/pipeline_cosmos_video2world.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpaint.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/__init__.py +0 -0
- {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
- {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
- {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
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/__init__.py +0 -0
- {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
- {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
- {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
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/modeling.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/ops/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/ops/attn.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/ops/flash_attn.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/ops/kv_cache_update.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/ops/linear.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/ops/sliding_window_attn.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/configuration_generic.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/modeling_attention_utils.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/modeling_generic.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/modeling_outputs.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/modeling_rope_utils.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/__init__.py +0 -0
- {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
- {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
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/auto/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/auto/modeling_auto.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bart/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bart/bart_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bart/configuration_bart.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bart/modeling_bart.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bert/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bert/bert_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bert/configuration_bert.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/bert/modeling_bert.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/blip_2/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/blip_2/configuration_blip_2.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/blip_2/modeling_blip_2.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/clip/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/clip/configuration_clip.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/clip/modeling_clip.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/colpali/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/colpali/colpali_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/colpali/configuration_colpali.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/colpali/modeling_colpali.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/decoderonly/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/decoderonly/decoderonly_runtime_utils.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/decoderonly/generation_decoderonly.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/depth_anything/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/depth_anything/configuration_depth_anything.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/depth_anything/modeling_depth_anything.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/distilbert/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/distilbert/configuration_distilbert.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/distilbert/modeling_distilbert.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/dpt/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/dpt/configuration_dpt.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/dpt/modeling_dpt.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/exaone/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/exaone/configuration_exaone.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/exaone/exaone_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/exaone/modeling_exaone.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma/configuration_gemma.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma/gemma_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma/modeling_gemma.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma3/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma3/configuration_gemma3.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma3/gemma3_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma3/gemma3_runtime_utils.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gemma3/modeling_gemma3.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gpt2/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gpt2/configuration_gpt2.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gpt2/gpt2_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/gpt2/modeling_gpt2.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/grounding_dino/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/grounding_dino/configuration_grounding_dino.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/grounding_dino/modeling_grounding_dino.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/idefics3/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/idefics3/configuration_idefics3.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/idefics3/modeling_idefics3.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llama/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llama/configuration_llama.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llama/llama_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llama/modeling_llama.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llava/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llava/configuration_llava.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llava/modeling_llava.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llava_next/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llava_next/configuration_llava_next.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/llava_next/modeling_llava_next.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/midm/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/midm/configuration_midm.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/midm/midm_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/midm/modeling_midm.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/mistral/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/mistral/configuration_mistral.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/mistral/mistral_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/mistral/modeling_mistral.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/opt/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/opt/configuration_opt.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/opt/modeling_opt.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/opt/opt_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pegasus/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pegasus/configuration_pegasus.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pegasus/modeling_pegasus.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pegasus/pegasus_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/phi/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/phi/configuration_phi.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/phi/modeling_phi.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/phi/phi_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pixtral/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pixtral/configuration_pixtral.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pixtral/modeling_pixtral.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/pixtral/pixtral_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen2/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen2/configuration_qwen2.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen2/modeling_qwen2.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen2/qwen2_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen2_5_vl/__init__.py +0 -0
- {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
- {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
- {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
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen3/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen3/configuration_qwen3.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen3/modeling_qwen3.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/qwen3/qwen3_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/resnet/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/resnet/configuration_resnet.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/resnet/modeling_resnet.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/roberta/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/roberta/configuration_roberta.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/roberta/modeling_roberta.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/seq2seq/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/seq2seq/configuration_seq2seq.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/seq2seq/modeling_seq2seq.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/seq2seq/seq2seq_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/siglip/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/siglip/configuration_siglip.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/siglip/modeling_siglip.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/swin/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/swin/configuration_swin.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/swin/modeling_swin.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/t5/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/t5/configuration_t5.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/t5/modeling_t5.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/t5/t5_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/time_series_transformer/__init__.py +0 -0
- {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
- {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
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/vit/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/vit/configuration_vit.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/vit/modeling_vit.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/wav2vec2/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/wav2vec2/configuration_wav2vec2.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/wav2vec2/modeling_wav2vec2.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/whisper/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/whisper/configuration_whisper.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/whisper/generation_whisper.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/whisper/modeling_whisper.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/whisper/whisper_architecture.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/xlm_roberta/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/xlm_roberta/configuration_xlm_roberta.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/xlm_roberta/modeling_xlm_roberta.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/utils/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/utils/rbln_quantization.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/decorator_utils.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/depreacate_utils.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/hub.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/import_utils.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/logging.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/model_utils.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/runtime_utils.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/save_utils.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/utils/submodule.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/__init__.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/psnr.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/requirements_sdxl.txt +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/run_stable_diffusion_xl_base.py +0 -0
- {optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/tests/test_transformers.py +0 -0
- {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.
|
|
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.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 8, 4, '
|
|
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:
|
{optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/modeling_diffusers.py
RENAMED
|
@@ -130,7 +130,7 @@ class RBLNDiffusionMixin:
|
|
|
130
130
|
cls,
|
|
131
131
|
model_id: str,
|
|
132
132
|
*,
|
|
133
|
-
export: bool =
|
|
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 = {
|
{optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/diffusers/pipelines/auto_pipeline.py
RENAMED
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
import importlib
|
|
17
|
-
from
|
|
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=
|
|
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 =
|
|
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,
|
{optimum_rbln-0.8.4a0 → optimum_rbln-0.8.4a2}/src/optimum/rbln/transformers/models/__init__.py
RENAMED
|
@@ -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
|
|
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=
|
|
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 (
|
|
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(
|
|
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
|
|
361
|
-
|
|
362
|
-
|
|
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
|
-
|
|
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
|
-
|
|
390
|
-
|
|
391
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|