optimum-rbln 0.9.2a3__tar.gz → 0.9.2a5__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.9.2a5/.github/version.yaml +1 -0
- optimum_rbln-0.9.2a5/.github/workflows/rbln_scheduled_test.yaml +186 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/workflows/rbln_trigger_on_pr.yaml +1 -1
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/PKG-INFO +5 -5
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/pyproject.toml +4 -4
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/__init__.py +4 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/__version__.py +2 -2
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/configuration_utils.py +3 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/modeling.py +71 -1
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/__init__.py +4 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/modeling_generic.py +23 -1
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/__init__.py +4 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/blip_2/modeling_blip_2.py +65 -1
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/decoderonly/__init__.py +1 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py +34 -0
- optimum_rbln-0.9.2a5/src/optimum/rbln/transformers/models/decoderonly/configuration_lora.py +411 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py +100 -20
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/decoderonly/decoderonly_runtime_utils.py +33 -0
- optimum_rbln-0.9.2a5/src/optimum/rbln/transformers/models/decoderonly/lora_architecture.py +204 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +79 -4
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/gemma3/gemma3_architecture.py +12 -2
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/gemma3/gemma3_runtime_utils.py +31 -3
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/gemma3/modeling_gemma3.py +9 -1
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/gpt2/gpt2_architecture.py +4 -1
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/idefics3/modeling_idefics3.py +2 -4
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/llava/modeling_llava.py +2 -1
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/llava_next/modeling_llava_next.py +2 -1
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/midm/midm_architecture.py +4 -1
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/phi/phi_architecture.py +5 -1
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen2_5_vl/modeling_qwen2_5_vl.py +0 -9
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen2_5_vl/qwen2_5_vl_architecture.py +2 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen2_vl/qwen2_vl_architecture.py +2 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/seq2seq/modeling_seq2seq.py +3 -1
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/whisper/generation_whisper.py +15 -5
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/whisper/modeling_whisper.py +2 -1
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/tests/test_llm.py +90 -87
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/uv.lock +1432 -1424
- optimum_rbln-0.9.2a3/.github/version.yaml +0 -1
- optimum_rbln-0.9.2a3/.github/workflows/rbln_scheduled_test.yaml +0 -61
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/ISSUE_TEMPLATE/model_request.md +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/pull_request_template.md +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/renovate.json +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/scripts/auto_code_review.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/scripts/validate_docstrings.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/scripts/validate_pr_checklist.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/workflows/auto_code_review.yml +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/workflows/auto_dependency_bot.yml +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/workflows/check_code_quality.yml +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/workflows/deploy-on-tag.yaml +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/workflows/deploy.yaml +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/workflows/pr-title-check.yaml +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/workflows/pr_checklist_validator.yml +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/workflows/rbln_check_compiler.yaml +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/workflows/rbln_dispatch_pytest.yaml +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/workflows/rbln_optimum_inference_test.yaml +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/workflows/rbln_optimum_pytest.yaml +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.github/workflows/test-docstrings.yml +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/.gitignore +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/CODE_OF_CONDUCT.md +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/CONTRIBUTING.md +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/LICENSE +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/README.md +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/assets/rbln_logo.png +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/advanced/custom_class.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/audio-classification/run_ast_audio_classification.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/depth-estimation/run_dpt.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/image-classification/run_image_classification.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/image-classification/run_vit_image_classification.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/image-to-text/run_idefics3.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/image-to-text/run_llava_next_image_to_text.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/kandinsky2_2/run_kandinsky2_2.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/kandinsky2_2/run_kandinsky2_2_combined.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/kandinsky2_2/run_kandinsky2_2_img2img.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/kandinsky2_2/run_kandinsky2_2_img2img_combined.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/kandinsky2_2/run_kandinsky2_2_inpaint.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/kandinsky2_2/run_kandinsky2_2_inpaint_combined.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/kandinsky2_2/run_kandinsky2_2_prior_interpolate.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/question-answering/run_question_answering.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/speech-recognition/run_wav2vec2.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/speech-recognition/run_whisper.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/stable-diffusion/run_stable_diffusion.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/stable-diffusion/run_stable_diffusion_controlnet.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/stable-diffusion/run_stable_diffusion_img2img.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/stable-diffusion/run_stable_diffusion_img2img_controlnet.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/stable-diffusion/run_stable_diffusion_inpaint.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/stable-diffusion/run_stable_diffusion_lora.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/stable-diffusion/run_stable_diffusion_multicontrolnet.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/text-classification/run_bge_m3_text_classification.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/text-classification/run_bge_reranker_v2_m3_text_classification.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/text-classification/run_secureBERT.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/text-classification/run_t5_classification.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/text-classification/run_twitter_roberta_text_classification.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/text2text-generation/run_bart_text2text_generation.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/text2text-generation/run_llama_peft.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/text2text-generation/run_llama_text2text_generation.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/examples/time-series-forecasting/run_time_series_forecasting.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/scripts/uv-lock.sh +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/scripts/uv-sync.sh +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/models/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl_cosmos.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/models/configuration_controlnet.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/models/configuration_prior_transformer.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/models/configuration_transformer_cosmos.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/models/configuration_transformer_sd3.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/models/configuration_unet_2d_condition.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/models/configuration_vq_model.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/pipelines/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_controlnet.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_cosmos.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_kandinsky2_2.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_3.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_xl.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/modeling_diffusers.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/models/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/models/autoencoders/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl_cosmos.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/models/autoencoders/vae.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/models/autoencoders/vq_model.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/models/controlnet.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/models/transformers/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/models/transformers/prior_transformer.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/models/transformers/transformer_cosmos.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/models/transformers/transformer_sd3.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/models/unets/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/models/unets/unet_2d_condition.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/auto_pipeline.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/controlnet/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/controlnet/multicontrolnet.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/cosmos/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/cosmos/configuration_cosmos_guardrail.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/cosmos/cosmos_guardrail.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/cosmos/pipeline_cosmos_text2world.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/cosmos/pipeline_cosmos_video2world.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpaint.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/modeling_base.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/ops/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/ops/attn.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/ops/flash_attn.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/ops/kv_cache_update.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/ops/linear.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/ops/sliding_window_attn.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/configuration_generic.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/modeling_attention_utils.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/modeling_outputs.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/modeling_rope_utils.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/configuration_audio_spectrogram_transformer.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/modeling_audio_spectrogram_transformer.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/auto/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/auto/auto_factory.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/auto/modeling_auto.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/bart/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/bart/bart_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/bart/configuration_bart.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/bart/modeling_bart.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/bert/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/bert/bert_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/bert/configuration_bert.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/bert/modeling_bert.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/blip_2/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/blip_2/configuration_blip_2.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/clip/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/clip/configuration_clip.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/clip/modeling_clip.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/colpali/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/colpali/colpali_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/colpali/configuration_colpali.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/colpali/modeling_colpali.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/decoderonly/generation_decoderonly.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/depth_anything/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/depth_anything/configuration_depth_anything.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/depth_anything/modeling_depth_anything.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/distilbert/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/distilbert/configuration_distilbert.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/distilbert/modeling_distilbert.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/dpt/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/dpt/configuration_dpt.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/dpt/modeling_dpt.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/exaone/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/exaone/configuration_exaone.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/exaone/exaone_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/exaone/modeling_exaone.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/gemma/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/gemma/configuration_gemma.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/gemma/gemma_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/gemma/modeling_gemma.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/gemma3/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/gemma3/configuration_gemma3.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/gpt2/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/gpt2/configuration_gpt2.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/gpt2/modeling_gpt2.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/grounding_dino/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/grounding_dino/configuration_grounding_dino.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/grounding_dino/grounding_dino_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/grounding_dino/modeling_grounding_dino.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/idefics3/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/idefics3/configuration_idefics3.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/llama/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/llama/configuration_llama.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/llama/llama_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/llama/modeling_llama.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/llava/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/llava/configuration_llava.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/llava_next/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/llava_next/configuration_llava_next.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/midm/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/midm/configuration_midm.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/midm/modeling_midm.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/mistral/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/mistral/configuration_mistral.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/mistral/mistral_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/mistral/modeling_mistral.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/opt/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/opt/configuration_opt.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/opt/modeling_opt.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/opt/opt_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/pegasus/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/pegasus/configuration_pegasus.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/pegasus/modeling_pegasus.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/pegasus/pegasus_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/phi/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/phi/configuration_phi.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/phi/modeling_phi.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/pixtral/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/pixtral/configuration_pixtral.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/pixtral/modeling_pixtral.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/pixtral/pixtral_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen2/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen2/configuration_qwen2.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen2/modeling_qwen2.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen2/qwen2_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen2_5_vl/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen2_5_vl/configuration_qwen2_5_vl.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen2_vl/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen2_vl/configuration_qwen2_vl.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen2_vl/modeling_qwen2_vl.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen3/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen3/configuration_qwen3.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen3/modeling_qwen3.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/qwen3/qwen3_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/resnet/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/resnet/configuration_resnet.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/resnet/modeling_resnet.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/roberta/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/roberta/configuration_roberta.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/roberta/modeling_roberta.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/seq2seq/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/seq2seq/configuration_seq2seq.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/seq2seq/seq2seq_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/siglip/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/siglip/configuration_siglip.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/siglip/modeling_siglip.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/swin/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/swin/configuration_swin.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/swin/modeling_swin.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/t5/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/t5/configuration_t5.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/t5/modeling_t5.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/t5/t5_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/time_series_transformer/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/time_series_transformer/configuration_time_series_transformer.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/time_series_transformer/modeling_time_series_transformer.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/time_series_transformer/time_series_transformers_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/vit/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/vit/configuration_vit.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/vit/modeling_vit.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/wav2vec2/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/wav2vec2/configuration_wav2vec2.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/wav2vec2/modeling_wav2vec2.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/whisper/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/whisper/configuration_whisper.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/whisper/whisper_architecture.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/xlm_roberta/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/xlm_roberta/configuration_xlm_roberta.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/xlm_roberta/modeling_xlm_roberta.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/utils/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/utils/rbln_quantization.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/utils/rbln_runtime_wrapper.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/utils/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/utils/decorator_utils.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/utils/depreacate_utils.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/utils/hub.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/utils/import_utils.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/utils/logging.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/utils/model_utils.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/utils/runtime_utils.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/utils/save_utils.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/utils/submodule.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/tests/__init__.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/tests/psnr.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/tests/requirements_sdxl.txt +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/tests/run_stable_diffusion_xl_base.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/tests/test_base.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/tests/test_config.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/tests/test_diffusers.py +0 -0
- {optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/tests/test_transformers.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
rebel_compiler_version: 0.9.2.dev155+g1ab49983.prod
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
name: Optimum-rbln / Scheduled Test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
# Run every day at 2am (17:00 UTC, 2:00am KST)
|
|
6
|
+
- cron: '0 17 * * *'
|
|
7
|
+
|
|
8
|
+
env:
|
|
9
|
+
HF_USER_ID: ${{ secrets.HF_USER_ID }}
|
|
10
|
+
HF_AUTH_TOKEN: ${{ secrets.HF_AUTH_TOKEN }}
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
check-code-quality:
|
|
14
|
+
uses: ./.github/workflows/check_code_quality.yml
|
|
15
|
+
|
|
16
|
+
test-docstrings:
|
|
17
|
+
uses: ./.github/workflows/test-docstrings.yml
|
|
18
|
+
with:
|
|
19
|
+
test_all_files: true
|
|
20
|
+
|
|
21
|
+
load-version:
|
|
22
|
+
runs-on: rebel-k8s-runner
|
|
23
|
+
outputs:
|
|
24
|
+
compiler_version: ${{ steps.get_version.outputs.compiler_version }}
|
|
25
|
+
steps:
|
|
26
|
+
- name: Checkout code
|
|
27
|
+
uses: actions/checkout@v3
|
|
28
|
+
|
|
29
|
+
- name: Get compiler version
|
|
30
|
+
id: get_version
|
|
31
|
+
run: |
|
|
32
|
+
VERSION=$(grep rebel_compiler_version .github/version.yaml | cut -d ':' -f2 | tr -d ' ')
|
|
33
|
+
echo "compiler_version=$VERSION" >> $GITHUB_OUTPUT
|
|
34
|
+
|
|
35
|
+
check-compiler:
|
|
36
|
+
needs: load-version
|
|
37
|
+
uses: ./.github/workflows/rbln_check_compiler.yaml
|
|
38
|
+
with:
|
|
39
|
+
compiler_version: ${{ needs.load-version.outputs.compiler_version }}
|
|
40
|
+
secrets: inherit
|
|
41
|
+
|
|
42
|
+
optimum-rbln-pytest:
|
|
43
|
+
needs: [load-version, check-compiler]
|
|
44
|
+
if: ${{ needs.check-compiler.outputs.compiler_version_check == 'true' }}
|
|
45
|
+
uses: ./.github/workflows/rbln_optimum_pytest.yaml
|
|
46
|
+
with:
|
|
47
|
+
ref: main
|
|
48
|
+
rebel_compiler_version: ${{ needs.check-compiler.outputs.compiler_version }}
|
|
49
|
+
test_level: "full"
|
|
50
|
+
enable_hf_hub_tests: true
|
|
51
|
+
fail_fast: false
|
|
52
|
+
secrets: inherit
|
|
53
|
+
|
|
54
|
+
optimum-rbln-inference-test:
|
|
55
|
+
needs: check-compiler
|
|
56
|
+
if: ${{ needs.check-compiler.outputs.compiler_version_check == 'true' }}
|
|
57
|
+
uses: ./.github/workflows/rbln_optimum_inference_test.yaml
|
|
58
|
+
with:
|
|
59
|
+
ref: main
|
|
60
|
+
rebel_compiler_version: ${{ needs.check-compiler.outputs.compiler_version }}
|
|
61
|
+
secrets: inherit
|
|
62
|
+
|
|
63
|
+
summary_and_report:
|
|
64
|
+
needs: [load-version, check-compiler, optimum-rbln-pytest]
|
|
65
|
+
if: always()
|
|
66
|
+
runs-on: rebel-k8s-runner
|
|
67
|
+
steps:
|
|
68
|
+
- name: Get failed test details
|
|
69
|
+
id: get_failed_tests
|
|
70
|
+
if: needs.optimum-rbln-pytest.result == 'failure'
|
|
71
|
+
run: |
|
|
72
|
+
# Get the workflow run jobs
|
|
73
|
+
JOBS=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
|
|
74
|
+
"https://api.github.com/repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/jobs")
|
|
75
|
+
|
|
76
|
+
# Extract failed pytest job names step by step for readability
|
|
77
|
+
FAILED_JOB_NAMES=$(echo "$JOBS" | jq -r '.jobs[] | select(.conclusion == "failure" and (.name | contains("Pytest"))) | .name')
|
|
78
|
+
# Remove "Pytest (...)" wrapper to get the test name
|
|
79
|
+
FAILED_TEST_NAMES=$(echo "$FAILED_JOB_NAMES" | sed 's/Pytest (\(.*\))/\1/')
|
|
80
|
+
# Join names with comma and space
|
|
81
|
+
FAILED_TESTS=$(echo "$FAILED_TEST_NAMES" | tr '\n' ', ' | sed 's/,$//')
|
|
82
|
+
|
|
83
|
+
if [ -z "$FAILED_TESTS" ]; then
|
|
84
|
+
echo "failed_tests=Unknown" >> $GITHUB_OUTPUT
|
|
85
|
+
else
|
|
86
|
+
echo "failed_tests=$FAILED_TESTS" >> $GITHUB_OUTPUT
|
|
87
|
+
fi
|
|
88
|
+
|
|
89
|
+
- name: Determine test results
|
|
90
|
+
id: test_results
|
|
91
|
+
run: |
|
|
92
|
+
# Determine overall status
|
|
93
|
+
if [ "${{ needs.optimum-rbln-pytest.result }}" == "success" ]; then
|
|
94
|
+
echo "pytest_status=✅ Success - All tests passed" >> $GITHUB_OUTPUT
|
|
95
|
+
echo "pytest_emoji=✅" >> $GITHUB_OUTPUT
|
|
96
|
+
elif [ "${{ needs.optimum-rbln-pytest.result }}" == "failure" ]; then
|
|
97
|
+
FAILED="${{ steps.get_failed_tests.outputs.failed_tests }}"
|
|
98
|
+
if [ -n "$FAILED" ] && [ "$FAILED" != "Unknown" ]; then
|
|
99
|
+
echo "pytest_status=❌ Failed - Tests: \`$FAILED\`" >> $GITHUB_OUTPUT
|
|
100
|
+
else
|
|
101
|
+
echo "pytest_status=❌ Failed" >> $GITHUB_OUTPUT
|
|
102
|
+
fi
|
|
103
|
+
echo "pytest_emoji=❌" >> $GITHUB_OUTPUT
|
|
104
|
+
elif [ "${{ needs.optimum-rbln-pytest.result }}" == "skipped" ]; then
|
|
105
|
+
echo "pytest_status=⏭️ Skipped" >> $GITHUB_OUTPUT
|
|
106
|
+
echo "pytest_emoji=⏭️" >> $GITHUB_OUTPUT
|
|
107
|
+
else
|
|
108
|
+
echo "pytest_status=⚠️ Cancelled" >> $GITHUB_OUTPUT
|
|
109
|
+
echo "pytest_emoji=⚠️" >> $GITHUB_OUTPUT
|
|
110
|
+
fi
|
|
111
|
+
|
|
112
|
+
# Determine compiler check status
|
|
113
|
+
if [ "${{ needs.check-compiler.result }}" == "success" ]; then
|
|
114
|
+
echo "compiler_status=✅ Available" >> $GITHUB_OUTPUT
|
|
115
|
+
else
|
|
116
|
+
echo "compiler_status=❌ Not Available" >> $GITHUB_OUTPUT
|
|
117
|
+
fi
|
|
118
|
+
|
|
119
|
+
- name: Notify Slack
|
|
120
|
+
if: always()
|
|
121
|
+
run: |
|
|
122
|
+
# Determine overall workflow status emoji
|
|
123
|
+
if [ "${{ needs.optimum-rbln-pytest.result }}" == "success" ]; then
|
|
124
|
+
title="✅ Optimum-RBLN Scheduled Pytest Results"
|
|
125
|
+
elif [ "${{ needs.check-compiler.result }}" != "success" ]; then
|
|
126
|
+
title="⚠️ Optimum-RBLN Scheduled Pytest Results - Compiler Check Failed"
|
|
127
|
+
else
|
|
128
|
+
title="❌ Optimum-RBLN Scheduled Pytest Results"
|
|
129
|
+
fi
|
|
130
|
+
|
|
131
|
+
commit="*Commit*\n<https://github.com/rebellions-sw/optimum-rbln/commit/${{github.sha}}|${{github.sha}}>"
|
|
132
|
+
action_link="*CI Report*\n<https://github.com/rebellions-sw/optimum-rbln/actions/runs/${{ github.run_id }}|View Details>"
|
|
133
|
+
compiler_version="${{ needs.load-version.outputs.compiler_version }}"
|
|
134
|
+
|
|
135
|
+
payload=$(jq -n \
|
|
136
|
+
--arg channel "${{ secrets.SLACK_CI_REPORTER_CHANNEL }}" \
|
|
137
|
+
--arg title "$title" \
|
|
138
|
+
--arg commit "$commit" \
|
|
139
|
+
--arg action_link "$action_link" \
|
|
140
|
+
--arg compiler_version "$compiler_version" \
|
|
141
|
+
--arg compiler_status "${{ steps.test_results.outputs.compiler_status }}" \
|
|
142
|
+
--arg pytest_status "${{ steps.test_results.outputs.pytest_status }}" \
|
|
143
|
+
'{
|
|
144
|
+
channel: $channel,
|
|
145
|
+
text: "Optimum-RBLN Scheduled Test Results",
|
|
146
|
+
blocks: [
|
|
147
|
+
{
|
|
148
|
+
type: "header",
|
|
149
|
+
text: {
|
|
150
|
+
type: "plain_text",
|
|
151
|
+
text: $title
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: "section",
|
|
156
|
+
fields: [
|
|
157
|
+
{ type: "mrkdwn", text: $commit },
|
|
158
|
+
{ type: "mrkdwn", text: $action_link }
|
|
159
|
+
]
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: "section",
|
|
163
|
+
fields: [
|
|
164
|
+
{ type: "mrkdwn", text: "*Compiler Version*" },
|
|
165
|
+
{ type: "mrkdwn", text: ("`" + $compiler_version + "`") }
|
|
166
|
+
]
|
|
167
|
+
},
|
|
168
|
+
{ type: "divider" },
|
|
169
|
+
{
|
|
170
|
+
type: "section",
|
|
171
|
+
fields: [
|
|
172
|
+
{ type: "mrkdwn", text: "*Compiler Check*" },
|
|
173
|
+
{ type: "mrkdwn", text: $compiler_status }
|
|
174
|
+
]
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
type: "section",
|
|
178
|
+
fields: [
|
|
179
|
+
{ type: "mrkdwn", text: "*Pytest Results*" },
|
|
180
|
+
{ type: "mrkdwn", text: $pytest_status }
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
]
|
|
184
|
+
}'
|
|
185
|
+
)
|
|
186
|
+
curl -X POST -H 'Authorization: Bearer ${{ secrets.SLACK_BOT_USER_OAUTH_ACCESS_TOKEN }}' -H 'Content-type: application/json; charset=utf-8' --data "$payload" https://slack.com/api/chat.postMessage
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: optimum-rbln
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.2a5
|
|
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
|
|
@@ -26,10 +26,10 @@ Requires-Python: <3.14,>=3.9
|
|
|
26
26
|
Requires-Dist: accelerate>=1.0.1
|
|
27
27
|
Requires-Dist: diffusers==0.35.1
|
|
28
28
|
Requires-Dist: packaging>=24.1
|
|
29
|
-
Requires-Dist: torch==2.
|
|
30
|
-
Requires-Dist: torchaudio<=2.
|
|
31
|
-
Requires-Dist: torchvision<=0.
|
|
32
|
-
Requires-Dist: transformers==4.
|
|
29
|
+
Requires-Dist: torch==2.8.0
|
|
30
|
+
Requires-Dist: torchaudio<=2.8.0
|
|
31
|
+
Requires-Dist: torchvision<=0.23.0
|
|
32
|
+
Requires-Dist: transformers==4.57.1
|
|
33
33
|
Description-Content-Type: text/markdown
|
|
34
34
|
|
|
35
35
|
|
|
@@ -29,11 +29,11 @@ classifiers = [
|
|
|
29
29
|
]
|
|
30
30
|
keywords = ["transformers", "diffusers", "inference", "rbln", "atom", "rebel"]
|
|
31
31
|
dependencies = [
|
|
32
|
-
"torch==2.
|
|
33
|
-
"torchaudio<=2.
|
|
34
|
-
"torchvision<=0.
|
|
32
|
+
"torch==2.8.0",
|
|
33
|
+
"torchaudio<=2.8.0",
|
|
34
|
+
"torchvision<=0.23.0",
|
|
35
35
|
"accelerate>=1.0.1",
|
|
36
|
-
"transformers==4.
|
|
36
|
+
"transformers==4.57.1",
|
|
37
37
|
"diffusers==0.35.1",
|
|
38
38
|
"packaging>=24.1",
|
|
39
39
|
]
|
|
@@ -118,6 +118,8 @@ _import_structure = {
|
|
|
118
118
|
"RBLNLlavaForConditionalGenerationConfig",
|
|
119
119
|
"RBLNLlavaNextForConditionalGeneration",
|
|
120
120
|
"RBLNLlavaNextForConditionalGenerationConfig",
|
|
121
|
+
"RBLNLoRAAdapterConfig",
|
|
122
|
+
"RBLNLoRAConfig",
|
|
121
123
|
"RBLNMidmLMHeadModel",
|
|
122
124
|
"RBLNMidmLMHeadModelConfig",
|
|
123
125
|
"RBLNMistralModel",
|
|
@@ -406,6 +408,8 @@ if TYPE_CHECKING:
|
|
|
406
408
|
RBLNLlavaForConditionalGenerationConfig,
|
|
407
409
|
RBLNLlavaNextForConditionalGeneration,
|
|
408
410
|
RBLNLlavaNextForConditionalGenerationConfig,
|
|
411
|
+
RBLNLoRAAdapterConfig,
|
|
412
|
+
RBLNLoRAConfig,
|
|
409
413
|
RBLNMidmLMHeadModel,
|
|
410
414
|
RBLNMidmLMHeadModelConfig,
|
|
411
415
|
RBLNMistralForCausalLM,
|
|
@@ -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.9.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 9, 2, '
|
|
31
|
+
__version__ = version = '0.9.2a5'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 9, 2, 'a5')
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -41,6 +41,9 @@ TypeInputInfo = List[Tuple[str, Tuple[int], str]]
|
|
|
41
41
|
class RBLNSerializableConfigProtocol(Protocol):
|
|
42
42
|
def _prepare_for_serialization(self) -> Dict[str, Any]: ...
|
|
43
43
|
|
|
44
|
+
def __repr__(self) -> str:
|
|
45
|
+
return f"{self.__class__.__name__}({self._prepare_for_serialization()})"
|
|
46
|
+
|
|
44
47
|
|
|
45
48
|
@dataclass
|
|
46
49
|
class RBLNCompileConfig:
|
|
@@ -34,6 +34,49 @@ if TYPE_CHECKING:
|
|
|
34
34
|
logger = get_logger(__name__)
|
|
35
35
|
|
|
36
36
|
|
|
37
|
+
def _get_dtype(
|
|
38
|
+
cls,
|
|
39
|
+
dtype: Optional[Union[str, torch.dtype, dict]],
|
|
40
|
+
config: PretrainedConfig,
|
|
41
|
+
) -> tuple[PretrainedConfig, Optional[torch.dtype], Optional[torch.dtype]]:
|
|
42
|
+
dtype_orig = None
|
|
43
|
+
|
|
44
|
+
if dtype is not None:
|
|
45
|
+
if isinstance(dtype, str):
|
|
46
|
+
if dtype == "auto":
|
|
47
|
+
if hasattr(config, "dtype") and config.dtype is not None:
|
|
48
|
+
dtype = config.dtype
|
|
49
|
+
else:
|
|
50
|
+
dtype = torch.get_default_dtype()
|
|
51
|
+
elif hasattr(torch, dtype):
|
|
52
|
+
dtype = getattr(torch, dtype)
|
|
53
|
+
config.dtype = dtype
|
|
54
|
+
elif isinstance(dtype, torch.dtype):
|
|
55
|
+
config.dtype = dtype
|
|
56
|
+
elif isinstance(dtype, dict):
|
|
57
|
+
for key, curr_dtype in dtype.items():
|
|
58
|
+
if hasattr(config, key):
|
|
59
|
+
value = getattr(config, key)
|
|
60
|
+
curr_dtype = curr_dtype if not isinstance(curr_dtype, str) else getattr(torch, curr_dtype)
|
|
61
|
+
value.dtype = curr_dtype
|
|
62
|
+
# main torch dtype for modules that aren't part of any sub-config
|
|
63
|
+
dtype = dtype.get("")
|
|
64
|
+
dtype = dtype if not isinstance(dtype, str) else getattr(torch, dtype)
|
|
65
|
+
config.dtype = dtype
|
|
66
|
+
if dtype is None:
|
|
67
|
+
dtype = torch.float32
|
|
68
|
+
else:
|
|
69
|
+
raise ValueError(f"Invalid dtype: {dtype}")
|
|
70
|
+
|
|
71
|
+
dtype_orig = cls._set_default_dtype(dtype)
|
|
72
|
+
else:
|
|
73
|
+
# Use default dtype
|
|
74
|
+
default_dtype = torch.get_default_dtype()
|
|
75
|
+
config.dtype = default_dtype
|
|
76
|
+
|
|
77
|
+
return config, dtype, dtype_orig
|
|
78
|
+
|
|
79
|
+
|
|
37
80
|
class RBLNModel(RBLNBaseModel):
|
|
38
81
|
@classmethod
|
|
39
82
|
def update_kwargs(cls, kwargs):
|
|
@@ -206,10 +249,37 @@ class RBLNModel(RBLNBaseModel):
|
|
|
206
249
|
trust_remote_code: bool = False,
|
|
207
250
|
# Some rbln-config should be applied before loading torch module (i.e. quantized llm)
|
|
208
251
|
rbln_config: Optional[RBLNModelConfig] = None,
|
|
252
|
+
dtype: Optional[Union[str, torch.dtype, dict]] = None,
|
|
209
253
|
**kwargs,
|
|
210
254
|
) -> "PreTrainedModel":
|
|
211
255
|
kwargs = cls.update_kwargs(kwargs)
|
|
212
|
-
|
|
256
|
+
|
|
257
|
+
hf_class = cls.get_hf_class()
|
|
258
|
+
|
|
259
|
+
if dtype is not None:
|
|
260
|
+
config = hf_class.config_class.from_pretrained(
|
|
261
|
+
model_id,
|
|
262
|
+
subfolder=subfolder,
|
|
263
|
+
revision=revision,
|
|
264
|
+
cache_dir=cache_dir,
|
|
265
|
+
use_auth_token=use_auth_token,
|
|
266
|
+
local_files_only=local_files_only,
|
|
267
|
+
force_download=force_download,
|
|
268
|
+
trust_remote_code=trust_remote_code,
|
|
269
|
+
)
|
|
270
|
+
|
|
271
|
+
config, processed_dtype, dtype_orig = _get_dtype(
|
|
272
|
+
cls=hf_class,
|
|
273
|
+
dtype=dtype,
|
|
274
|
+
config=config,
|
|
275
|
+
)
|
|
276
|
+
|
|
277
|
+
kwargs["torch_dtype"] = processed_dtype
|
|
278
|
+
|
|
279
|
+
if dtype_orig is not None:
|
|
280
|
+
hf_class._set_default_dtype(dtype_orig)
|
|
281
|
+
|
|
282
|
+
return hf_class.from_pretrained(
|
|
213
283
|
model_id,
|
|
214
284
|
subfolder=subfolder,
|
|
215
285
|
revision=revision,
|
|
@@ -110,6 +110,8 @@ _import_structure = {
|
|
|
110
110
|
"RBLNPegasusModelConfig",
|
|
111
111
|
"RBLNLlavaNextForConditionalGeneration",
|
|
112
112
|
"RBLNLlavaNextForConditionalGenerationConfig",
|
|
113
|
+
"RBLNLoRAAdapterConfig",
|
|
114
|
+
"RBLNLoRAConfig",
|
|
113
115
|
"RBLNMidmLMHeadModel",
|
|
114
116
|
"RBLNMidmLMHeadModelConfig",
|
|
115
117
|
"RBLNMistralForCausalLM",
|
|
@@ -258,6 +260,8 @@ if TYPE_CHECKING:
|
|
|
258
260
|
RBLNLlavaForConditionalGenerationConfig,
|
|
259
261
|
RBLNLlavaNextForConditionalGeneration,
|
|
260
262
|
RBLNLlavaNextForConditionalGenerationConfig,
|
|
263
|
+
RBLNLoRAAdapterConfig,
|
|
264
|
+
RBLNLoRAConfig,
|
|
261
265
|
RBLNMidmLMHeadModel,
|
|
262
266
|
RBLNMidmLMHeadModelConfig,
|
|
263
267
|
RBLNMistralForCausalLM,
|
{optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/modeling_generic.py
RENAMED
|
@@ -23,6 +23,7 @@ different model architectures.
|
|
|
23
23
|
import inspect
|
|
24
24
|
from typing import TYPE_CHECKING, Optional, Union
|
|
25
25
|
|
|
26
|
+
from torch import nn
|
|
26
27
|
from transformers import (
|
|
27
28
|
AutoModel,
|
|
28
29
|
AutoModelForAudioClassification,
|
|
@@ -57,6 +58,28 @@ class RBLNTransformerEncoder(RBLNModel):
|
|
|
57
58
|
rbln_model_input_names = ["input_ids", "attention_mask", "token_type_ids"]
|
|
58
59
|
rbln_dtype = "int64"
|
|
59
60
|
|
|
61
|
+
@classmethod
|
|
62
|
+
def wrap_model_if_needed(cls, model: "PreTrainedModel", rbln_config: RBLNTransformerEncoderConfig) -> nn.Module:
|
|
63
|
+
class TransformerEncoderWrapper(nn.Module):
|
|
64
|
+
# Parameters to disable for RBLN compilation
|
|
65
|
+
DISABLED_PARAMS = {"return_dict", "use_cache"}
|
|
66
|
+
|
|
67
|
+
def __init__(self, model: "PreTrainedModel", rbln_config: RBLNTransformerEncoderConfig):
|
|
68
|
+
super().__init__()
|
|
69
|
+
self.model = model
|
|
70
|
+
self.rbln_config = rbln_config
|
|
71
|
+
self._forward_signature = inspect.signature(model.forward)
|
|
72
|
+
|
|
73
|
+
def forward(self, *args, **kwargs):
|
|
74
|
+
# Disable parameters that are not compatible with RBLN compilation
|
|
75
|
+
for param_name in self.DISABLED_PARAMS:
|
|
76
|
+
if param_name in self._forward_signature.parameters:
|
|
77
|
+
kwargs[param_name] = False
|
|
78
|
+
|
|
79
|
+
return self.model(*args, **kwargs)
|
|
80
|
+
|
|
81
|
+
return TransformerEncoderWrapper(model, rbln_config).eval()
|
|
82
|
+
|
|
60
83
|
@classmethod
|
|
61
84
|
def _update_rbln_config(
|
|
62
85
|
cls,
|
|
@@ -208,7 +231,6 @@ class RBLNModelForQuestionAnswering(RBLNTransformerEncoder):
|
|
|
208
231
|
|
|
209
232
|
def _prepare_output(self, output, return_dict):
|
|
210
233
|
# Prepare QuestionAnswering specific output format.
|
|
211
|
-
|
|
212
234
|
start_logits, end_logits = output
|
|
213
235
|
|
|
214
236
|
if not return_dict:
|
{optimum_rbln-0.9.2a3 → optimum_rbln-0.9.2a5}/src/optimum/rbln/transformers/models/__init__.py
RENAMED
|
@@ -96,6 +96,8 @@ _import_structure = {
|
|
|
96
96
|
"RBLNDecoderOnlyModel",
|
|
97
97
|
"RBLNDecoderOnlyModelForCausalLM",
|
|
98
98
|
"RBLNDecoderOnlyModelForCausalLMConfig",
|
|
99
|
+
"RBLNLoRAAdapterConfig",
|
|
100
|
+
"RBLNLoRAConfig",
|
|
99
101
|
],
|
|
100
102
|
"depth_anything": ["RBLNDepthAnythingForDepthEstimationConfig", "RBLNDepthAnythingForDepthEstimation"],
|
|
101
103
|
"dpt": [
|
|
@@ -239,6 +241,8 @@ if TYPE_CHECKING:
|
|
|
239
241
|
RBLNDecoderOnlyModelConfig,
|
|
240
242
|
RBLNDecoderOnlyModelForCausalLM,
|
|
241
243
|
RBLNDecoderOnlyModelForCausalLMConfig,
|
|
244
|
+
RBLNLoRAAdapterConfig,
|
|
245
|
+
RBLNLoRAConfig,
|
|
242
246
|
)
|
|
243
247
|
from .depth_anything import RBLNDepthAnythingForDepthEstimation, RBLNDepthAnythingForDepthEstimationConfig
|
|
244
248
|
from .distilbert import RBLNDistilBertForQuestionAnswering, RBLNDistilBertForQuestionAnsweringConfig
|
|
@@ -31,6 +31,7 @@ from transformers.utils import logging
|
|
|
31
31
|
from ....configuration_utils import RBLNCompileConfig, RBLNModelConfig
|
|
32
32
|
from ....modeling import RBLNModel
|
|
33
33
|
from ...utils.rbln_runtime_wrapper import LoopProcessor
|
|
34
|
+
from ..decoderonly.generation_decoderonly import RBLNDecoderOnlyGenerationMixin
|
|
34
35
|
|
|
35
36
|
|
|
36
37
|
logger = logging.get_logger(__name__)
|
|
@@ -265,7 +266,7 @@ class RBLNBlip2QFormerModel(RBLNModel):
|
|
|
265
266
|
)
|
|
266
267
|
|
|
267
268
|
|
|
268
|
-
class RBLNBlip2ForConditionalGeneration(RBLNModel):
|
|
269
|
+
class RBLNBlip2ForConditionalGeneration(RBLNModel, RBLNDecoderOnlyGenerationMixin):
|
|
269
270
|
"""
|
|
270
271
|
RBLNBlip2ForConditionalGeneration is a multi-modal model that integrates vision and language processing capabilities,
|
|
271
272
|
optimized for RBLN NPUs. It is designed for conditional generation tasks that involve both image and text inputs.
|
|
@@ -433,3 +434,66 @@ class RBLNBlip2ForConditionalGeneration(RBLNModel):
|
|
|
433
434
|
)
|
|
434
435
|
|
|
435
436
|
return inputs_embeds
|
|
437
|
+
|
|
438
|
+
@torch.no_grad()
|
|
439
|
+
def generate(
|
|
440
|
+
self,
|
|
441
|
+
pixel_values: torch.FloatTensor,
|
|
442
|
+
input_ids: Optional[torch.LongTensor] = None,
|
|
443
|
+
attention_mask: Optional[torch.LongTensor] = None,
|
|
444
|
+
inputs_embeds: Optional[torch.FloatTensor] = None,
|
|
445
|
+
interpolate_pos_encoding: bool = False,
|
|
446
|
+
**generate_kwargs,
|
|
447
|
+
) -> torch.LongTensor:
|
|
448
|
+
batch_size = pixel_values.shape[0]
|
|
449
|
+
image_embeds = self.vision_model(
|
|
450
|
+
pixel_values,
|
|
451
|
+
return_dict=True,
|
|
452
|
+
interpolate_pos_encoding=interpolate_pos_encoding,
|
|
453
|
+
).last_hidden_state
|
|
454
|
+
image_attention_mask = torch.ones(image_embeds.size()[:-1], dtype=torch.long, device=image_embeds.device)
|
|
455
|
+
|
|
456
|
+
query_tokens = self.query_tokens.expand(image_embeds.shape[0], -1, -1)
|
|
457
|
+
query_outputs = self.qformer(
|
|
458
|
+
query_embeds=query_tokens,
|
|
459
|
+
encoder_hidden_states=image_embeds,
|
|
460
|
+
encoder_attention_mask=image_attention_mask,
|
|
461
|
+
return_dict=True,
|
|
462
|
+
)
|
|
463
|
+
query_output = query_outputs.last_hidden_state
|
|
464
|
+
|
|
465
|
+
if query_output.dtype != image_embeds.dtype:
|
|
466
|
+
query_output = query_output.to(image_embeds.dtype)
|
|
467
|
+
|
|
468
|
+
language_model_inputs = self.language_projection(query_output)
|
|
469
|
+
|
|
470
|
+
if inputs_embeds is None:
|
|
471
|
+
if input_ids is None:
|
|
472
|
+
image_tokens = [self.config.image_token_index] * self.config.num_query_tokens
|
|
473
|
+
start_tokens = image_tokens + [self.config.text_config.bos_token_id]
|
|
474
|
+
input_ids = torch.tensor([start_tokens], dtype=torch.long, device=image_embeds.device)
|
|
475
|
+
input_ids = input_ids.repeat(batch_size, 1)
|
|
476
|
+
inputs_embeds = self.get_input_embeddings()(input_ids)
|
|
477
|
+
|
|
478
|
+
if attention_mask is None:
|
|
479
|
+
attention_mask = torch.ones_like(input_ids)
|
|
480
|
+
|
|
481
|
+
if input_ids is None:
|
|
482
|
+
special_image_mask = inputs_embeds == self.get_input_embeddings()(
|
|
483
|
+
torch.tensor(self.config.image_token_id, dtype=torch.long, device=inputs_embeds.device)
|
|
484
|
+
)
|
|
485
|
+
special_image_mask = special_image_mask.all(-1)
|
|
486
|
+
else:
|
|
487
|
+
special_image_mask = input_ids == self.config.image_token_id
|
|
488
|
+
|
|
489
|
+
special_image_mask = special_image_mask.unsqueeze(-1).expand_as(inputs_embeds).to(inputs_embeds.device)
|
|
490
|
+
language_model_inputs = language_model_inputs.to(inputs_embeds.device, inputs_embeds.dtype)
|
|
491
|
+
inputs_embeds = inputs_embeds.masked_scatter(special_image_mask, language_model_inputs)
|
|
492
|
+
|
|
493
|
+
inputs = {"inputs_embeds": inputs_embeds, "attention_mask": attention_mask}
|
|
494
|
+
if not self.language_model.config.is_encoder_decoder:
|
|
495
|
+
inputs["input_ids"] = input_ids
|
|
496
|
+
|
|
497
|
+
outputs = self.language_model.generate(**inputs, **generate_kwargs)
|
|
498
|
+
|
|
499
|
+
return outputs
|
|
@@ -23,4 +23,5 @@ from ....ops import (
|
|
|
23
23
|
paged_flash_causal_attn_prefill,
|
|
24
24
|
)
|
|
25
25
|
from .configuration_decoderonly import RBLNDecoderOnlyModelConfig, RBLNDecoderOnlyModelForCausalLMConfig
|
|
26
|
+
from .configuration_lora import RBLNLoRAAdapterConfig, RBLNLoRAConfig
|
|
26
27
|
from .modeling_decoderonly import RBLNDecoderOnlyModel, RBLNDecoderOnlyModelForCausalLM
|
|
@@ -17,6 +17,7 @@ from typing import Any, Dict, List, Literal, Optional, Union, get_args
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
from ....utils.logging import get_logger
|
|
19
19
|
from ...utils.rbln_quantization import RBLNQuantizationConfig
|
|
20
|
+
from .configuration_lora import RBLNLoRAConfig
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
logger = get_logger()
|
|
@@ -48,6 +49,7 @@ class RBLNDecoderOnlyModelConfig(RBLNModelConfig):
|
|
|
48
49
|
kvcache_partition_len: Optional[int] = None,
|
|
49
50
|
kvcache_block_size: Optional[int] = None,
|
|
50
51
|
quantization: Optional[Union[Dict[str, Any], RBLNQuantizationConfig]] = None,
|
|
52
|
+
lora_config: Optional[Union[Dict[str, Any], RBLNLoRAConfig]] = None,
|
|
51
53
|
prefill_chunk_size: Optional[int] = None,
|
|
52
54
|
kvcache_num_blocks: Optional[int] = None,
|
|
53
55
|
decoder_batch_sizes: Optional[List[int]] = None,
|
|
@@ -80,6 +82,12 @@ class RBLNDecoderOnlyModelConfig(RBLNModelConfig):
|
|
|
80
82
|
kvcache_block_size (Optional[int]): Sets the size (in number of tokens) of each block
|
|
81
83
|
in the PagedAttention KV cache. See the "KV Cache Block Size (`kvcache_block_size`)"
|
|
82
84
|
section below for details.
|
|
85
|
+
quantization (Optional[Dict[str, Any]]): Configuration dictionary for applying model
|
|
86
|
+
quantization. Specifies format, etc.
|
|
87
|
+
lora_config (Optional[Union[Dict[str, Any], RBLNLoRAConfig]]): Configuration for LoRA
|
|
88
|
+
(Low-Rank Adaptation) settings when using (multi-)LoRA support. Can be provided as
|
|
89
|
+
a dictionary or an RBLNLoRAConfig instance. When provided, enables LoRA functionality
|
|
90
|
+
for the model compilation. Defaults to None (no LoRA).
|
|
83
91
|
prefill_chunk_size (Optional[int]): The chunk size used during the prefill phase for
|
|
84
92
|
processing input sequences. Defaults to 128. Must be a positive integer
|
|
85
93
|
divisible by 64. Affects prefill performance and memory usage.
|
|
@@ -185,6 +193,26 @@ class RBLNDecoderOnlyModelConfig(RBLNModelConfig):
|
|
|
185
193
|
if self.quantization and isinstance(self.quantization, dict):
|
|
186
194
|
self.quantization = RBLNQuantizationConfig(**self.quantization)
|
|
187
195
|
|
|
196
|
+
self.lora_config = lora_config
|
|
197
|
+
if self.lora_config and isinstance(self.lora_config, dict):
|
|
198
|
+
self.lora_config = RBLNLoRAConfig(**self.lora_config)
|
|
199
|
+
|
|
200
|
+
# Validate LoRA adapters if LoRA is enabled
|
|
201
|
+
if self.lora_config is not None:
|
|
202
|
+
validation_results = self.lora_config.validate_adapter_weights()
|
|
203
|
+
failed_adapters = [adapter_id for adapter_id, is_valid in validation_results.items() if not is_valid]
|
|
204
|
+
|
|
205
|
+
if failed_adapters:
|
|
206
|
+
raise ValueError(
|
|
207
|
+
f"Some LoRA adapters failed validation and may not be accessible at compile time: {failed_adapters}. "
|
|
208
|
+
"Please ensure all adapter weights are available and properly formatted."
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
logger.info(
|
|
212
|
+
f"LoRA configuration initialized with {self.lora_config.num_adapters} adapters: "
|
|
213
|
+
f"{self.lora_config.adapter_ids}. Max rank: {self.lora_config.max_lora_rank}"
|
|
214
|
+
)
|
|
215
|
+
|
|
188
216
|
self.attn_impl = attn_impl
|
|
189
217
|
self.kvcache_partition_len = kvcache_partition_len
|
|
190
218
|
self.kvcache_block_size = kvcache_block_size
|
|
@@ -204,6 +232,7 @@ class RBLNDecoderOnlyModelConfig(RBLNModelConfig):
|
|
|
204
232
|
if self.logits_to_keep is not None and self.logits_to_keep > 1:
|
|
205
233
|
raise NotImplementedError("`logits_to_keep` > 1 is currently not supported for RBLN models.")
|
|
206
234
|
|
|
235
|
+
self.decoder_batch_sizes = None
|
|
207
236
|
if "decode" in self.phases:
|
|
208
237
|
self.decoder_batch_sizes = decoder_batch_sizes
|
|
209
238
|
if self.decoder_batch_sizes is None:
|
|
@@ -243,6 +272,11 @@ class RBLNDecoderOnlyModelConfig(RBLNModelConfig):
|
|
|
243
272
|
def use_multiple_decoder(self) -> bool:
|
|
244
273
|
return isinstance(self.decoder_batch_sizes, list) and len(self.decoder_batch_sizes) > 1
|
|
245
274
|
|
|
275
|
+
@property
|
|
276
|
+
def use_lora(self):
|
|
277
|
+
"""Check if LoRA is enabled for this configuration."""
|
|
278
|
+
return self.lora_config is not None
|
|
279
|
+
|
|
246
280
|
@property
|
|
247
281
|
def can_generate(self) -> bool:
|
|
248
282
|
return "decode" in self.phases
|