optimum-rbln 0.8.2a2__tar.gz → 0.8.2a4__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.2a2 → optimum_rbln-0.8.2a4}/.github/workflows/rbln_optimum_pytest.yaml +7 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/workflows/rbln_scheduled_test.yaml +1 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/PKG-INFO +1 -1
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/__version__.py +2 -2
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/modeling_diffusers.py +2 -4
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/modeling.py +1 -3
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/modeling_base.py +17 -13
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/bart/bart_architecture.py +1 -4
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/clip/configuration_clip.py +12 -1
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/clip/modeling_clip.py +123 -28
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +8 -1
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/gemma3/configuration_gemma3.py +2 -3
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/gemma3/modeling_gemma3.py +104 -249
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/llava_next/configuration_llava_next.py +18 -1
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/utils/hub.py +8 -47
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/tests/test_base.py +75 -77
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/tests/test_diffusers.py +2 -2
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/tests/test_llm.py +5 -1
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/tests/test_transformers.py +2 -2
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/ISSUE_TEMPLATE/model_request.md +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/pull_request_template.md +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/scripts/auto_code_review.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/scripts/validate_docstrings.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/scripts/validate_pr_checklist.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/version.yaml +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/workflows/auto_code_review.yml +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/workflows/check_code_quality.yml +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/workflows/deploy-on-tag.yaml +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/workflows/deploy.yaml +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/workflows/pr-title-check.yaml +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/workflows/pr_checklist_validator.yml +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/workflows/rbln_check_compiler.yaml +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/workflows/rbln_dispatch_pytest.yaml +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/workflows/rbln_optimum_inference_test.yaml +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/workflows/rbln_trigger_on_pr.yaml +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.github/workflows/test-docstrings.yml +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/.gitignore +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/CODE_OF_CONDUCT.md +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/CONTRIBUTING.md +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/LICENSE +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/README.md +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/assets/rbln_logo.png +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/advanced/custom_class.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/audio-classification/run_ast_audio_classification.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/depth-estimation/run_dpt.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/image-classification/run_image_classification.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/image-classification/run_vit_image_classification.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/image-to-text/run_idefics3.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/image-to-text/run_llava_next_image_to_text.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/kandinsky2_2/run_kandinsky2_2.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/kandinsky2_2/run_kandinsky2_2_combined.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/kandinsky2_2/run_kandinsky2_2_img2img.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/kandinsky2_2/run_kandinsky2_2_img2img_combined.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/kandinsky2_2/run_kandinsky2_2_inpaint.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/kandinsky2_2/run_kandinsky2_2_inpaint_combined.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/kandinsky2_2/run_kandinsky2_2_prior_interpolate.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/question-answering/run_question_answering.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/speech-recognition/run_wav2vec2.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/speech-recognition/run_whisper.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/stable-diffusion/run_stable_diffusion.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/stable-diffusion/run_stable_diffusion_controlnet.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/stable-diffusion/run_stable_diffusion_img2img.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/stable-diffusion/run_stable_diffusion_img2img_controlnet.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/stable-diffusion/run_stable_diffusion_inpaint.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/stable-diffusion/run_stable_diffusion_lora.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/stable-diffusion/run_stable_diffusion_multicontrolnet.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/text-classification/run_bge_m3_text_classification.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/text-classification/run_bge_reranker_v2_m3_text_classification.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/text-classification/run_secureBERT.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/text-classification/run_t5_classification.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/text-classification/run_twitter_roberta_text_classification.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/text2text-generation/run_bart_text2text_generation.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/text2text-generation/run_llama_peft.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/text2text-generation/run_llama_text2text_generation.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/examples/time-series-forecasting/run_time_series_forecasting.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/pyproject.toml +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/scripts/uv-lock.sh +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/scripts/uv-sync.sh +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/configuration_utils.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/models/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl_cosmos.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/models/configuration_controlnet.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/models/configuration_prior_transformer.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/models/configuration_transformer_cosmos.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/models/configuration_transformer_sd3.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/models/configuration_unet_2d_condition.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/models/configuration_vq_model.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/pipelines/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_controlnet.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_cosmos.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_kandinsky2_2.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_3.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_xl.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/models/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/models/autoencoders/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl_cosmos.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/models/autoencoders/vae.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/models/autoencoders/vq_model.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/models/controlnet.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/models/transformers/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/models/transformers/prior_transformer.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/models/transformers/transformer_cosmos.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/models/transformers/transformer_sd3.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/models/unets/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/models/unets/unet_2d_condition.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/controlnet/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/controlnet/multicontrolnet.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/cosmos/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/cosmos/configuration_cosmos_guardrail.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/cosmos/cosmos_guardrail.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/cosmos/pipeline_cosmos_text2world.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/cosmos/pipeline_cosmos_video2world.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpaint.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/ops/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/ops/attn.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/ops/flash_attn.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/ops/kv_cache_update.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/ops/linear.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/ops/sliding_window_attn.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/configuration_generic.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/modeling_generic.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/modeling_rope_utils.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/configuration_audio_spectrogram_transformer.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/modeling_audio_spectrogram_transformer.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/auto/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/auto/auto_factory.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/auto/modeling_auto.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/bart/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/bart/configuration_bart.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/bart/modeling_bart.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/bert/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/bert/configuration_bert.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/bert/modeling_bert.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/blip_2/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/blip_2/configuration_blip_2.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/blip_2/modeling_blip_2.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/clip/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/colpali/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/colpali/colpali_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/colpali/configuration_colpali.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/colpali/modeling_colpali.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/decoderonly/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/distilbert/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/distilbert/configuration_distilbert.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/distilbert/modeling_distilbert.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/dpt/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/dpt/configuration_dpt.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/dpt/modeling_dpt.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/exaone/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/exaone/configuration_exaone.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/exaone/exaone_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/exaone/modeling_exaone.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/gemma/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/gemma/configuration_gemma.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/gemma/gemma_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/gemma/modeling_gemma.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/gemma3/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/gemma3/gemma3_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/gpt2/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/gpt2/configuration_gpt2.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/gpt2/gpt2_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/gpt2/modeling_gpt2.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/idefics3/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/idefics3/configuration_idefics3.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/idefics3/modeling_idefics3.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/llama/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/llama/configuration_llama.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/llama/llama_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/llama/modeling_llama.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/llava_next/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/llava_next/modeling_llava_next.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/midm/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/midm/configuration_midm.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/midm/midm_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/midm/modeling_midm.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/mistral/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/mistral/configuration_mistral.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/mistral/mistral_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/mistral/modeling_mistral.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/opt/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/opt/configuration_opt.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/opt/modeling_opt.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/opt/opt_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/phi/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/phi/configuration_phi.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/phi/modeling_phi.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/phi/phi_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/qwen2/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/qwen2/configuration_qwen2.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/qwen2/modeling_qwen2.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/qwen2/qwen2_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/qwen2_5_vl/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/qwen2_5_vl/configuration_qwen2_5_vl.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/qwen2_5_vl/modeling_qwen2_5_vl.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/qwen2_5_vl/qwen2_5_vl_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/qwen3/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/qwen3/configuration_qwen3.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/qwen3/modeling_qwen3.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/qwen3/qwen3_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/resnet/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/resnet/configuration_resnet.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/resnet/modeling_resnet.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/roberta/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/roberta/configuration_roberta.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/roberta/modeling_roberta.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/seq2seq/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/seq2seq/configuration_seq2seq.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/seq2seq/modeling_seq2seq.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/seq2seq/seq2seq_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/siglip/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/siglip/configuration_siglip.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/siglip/modeling_siglip.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/t5/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/t5/configuration_t5.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/t5/modeling_t5.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/t5/t5_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/time_series_transformer/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/time_series_transformer/configuration_time_series_transformer.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/time_series_transformer/modeling_time_series_transformer.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/time_series_transformer/time_series_transformers_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/vit/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/vit/configuration_vit.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/vit/modeling_vit.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/wav2vec2/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/wav2vec2/configuration_wav2vec2.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/wav2vec2/modeling_wav2vec2.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/whisper/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/whisper/configuration_whisper.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/whisper/generation_whisper.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/whisper/modeling_whisper.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/whisper/whisper_architecture.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/xlm_roberta/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/xlm_roberta/configuration_xlm_roberta.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/models/xlm_roberta/modeling_xlm_roberta.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/utils/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/transformers/utils/rbln_quantization.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/utils/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/utils/decorator_utils.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/utils/import_utils.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/utils/logging.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/utils/model_utils.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/utils/runtime_utils.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/utils/save_utils.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/utils/submodule.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/tests/__init__.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/tests/psnr.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/tests/requirements_sdxl.txt +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/tests/run_stable_diffusion_xl_base.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/tests/test_config.py +0 -0
- {optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/uv.lock +0 -0
|
@@ -20,12 +20,19 @@ on:
|
|
|
20
20
|
required: false
|
|
21
21
|
type: string
|
|
22
22
|
default: "default"
|
|
23
|
+
enable_hf_hub_tests:
|
|
24
|
+
description: "Whether to enable HF Hub tests (requires HF credentials)"
|
|
25
|
+
required: false
|
|
26
|
+
type: boolean
|
|
27
|
+
default: false
|
|
23
28
|
|
|
24
29
|
env:
|
|
25
30
|
REBEL_PYPI_ENDPOINT: ${{ vars.REBEL_PYPI_INTERNAL_ENDPOINT }}
|
|
26
31
|
REBEL_PYPI_USERNAME: ${{ secrets.REBEL_PYPI_USERNAME }}
|
|
27
32
|
REBEL_PYPI_PASSWORD: ${{ secrets.REBEL_PYPI_PASSWORD }}
|
|
28
33
|
HF_HOME: ${{ secrets.HF_HOME }}
|
|
34
|
+
HF_USER_ID: ${{ inputs.enable_hf_hub_tests && secrets.HF_USER_ID || '' }}
|
|
35
|
+
HF_AUTH_TOKEN: ${{ inputs.enable_hf_hub_tests && secrets.HF_AUTH_TOKEN || '' }}
|
|
29
36
|
|
|
30
37
|
jobs:
|
|
31
38
|
pytest:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: optimum-rbln
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.2a4
|
|
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
|
|
@@ -17,5 +17,5 @@ __version__: str
|
|
|
17
17
|
__version_tuple__: VERSION_TUPLE
|
|
18
18
|
version_tuple: VERSION_TUPLE
|
|
19
19
|
|
|
20
|
-
__version__ = version = '0.8.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 8, 2, '
|
|
20
|
+
__version__ = version = '0.8.2a4'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 8, 2, 'a4')
|
{optimum_rbln-0.8.2a2 → optimum_rbln-0.8.2a4}/src/optimum/rbln/diffusers/modeling_diffusers.py
RENAMED
|
@@ -70,8 +70,6 @@ class RBLNDiffusionMixin:
|
|
|
70
70
|
_submodules = []
|
|
71
71
|
_optional_submodules = []
|
|
72
72
|
_prefix = {}
|
|
73
|
-
_rbln_config_class = None
|
|
74
|
-
_hf_class = None
|
|
75
73
|
|
|
76
74
|
@staticmethod
|
|
77
75
|
def _maybe_apply_and_fuse_lora(
|
|
@@ -114,14 +112,14 @@ class RBLNDiffusionMixin:
|
|
|
114
112
|
@classmethod
|
|
115
113
|
def get_rbln_config_class(cls) -> Type[RBLNModelConfig]:
|
|
116
114
|
# Lazily loads and caches the corresponding RBLN model config class.
|
|
117
|
-
if cls._rbln_config_class is None:
|
|
115
|
+
if "_rbln_config_class" not in cls.__dict__ or cls._rbln_config_class is None:
|
|
118
116
|
rbln_config_class_name = cls.__name__ + "Config"
|
|
119
117
|
cls._rbln_config_class = get_rbln_config_class(rbln_config_class_name)
|
|
120
118
|
return cls._rbln_config_class
|
|
121
119
|
|
|
122
120
|
@classmethod
|
|
123
121
|
def get_hf_class(cls):
|
|
124
|
-
if cls._hf_class is None:
|
|
122
|
+
if "_hf_class" not in cls.__dict__ or cls._hf_class is None:
|
|
125
123
|
hf_cls_name = cls.__name__[4:]
|
|
126
124
|
library = importlib.import_module("diffusers")
|
|
127
125
|
cls._hf_class = getattr(library, hf_cls_name, None)
|
|
@@ -35,8 +35,6 @@ logger = get_logger(__name__)
|
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
class RBLNModel(RBLNBaseModel):
|
|
38
|
-
_output_class = None
|
|
39
|
-
|
|
40
38
|
@classmethod
|
|
41
39
|
def update_kwargs(cls, kwargs):
|
|
42
40
|
# Update user-given kwargs to get proper pytorch model.
|
|
@@ -289,7 +287,7 @@ class RBLNModel(RBLNBaseModel):
|
|
|
289
287
|
@classmethod
|
|
290
288
|
def get_hf_output_class(cls):
|
|
291
289
|
# Dynamically gets the output class from the corresponding HuggingFace model class.
|
|
292
|
-
if cls._output_class:
|
|
290
|
+
if "_output_class" in cls.__dict__ and cls._output_class is not None:
|
|
293
291
|
return cls._output_class
|
|
294
292
|
|
|
295
293
|
hf_class = cls.get_hf_class()
|
|
@@ -23,9 +23,10 @@ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Type, Union
|
|
|
23
23
|
import rebel
|
|
24
24
|
import torch
|
|
25
25
|
from transformers import AutoConfig, AutoModel, GenerationConfig, PretrainedConfig
|
|
26
|
+
from transformers.utils.hub import PushToHubMixin
|
|
26
27
|
|
|
27
28
|
from .configuration_utils import RBLNAutoConfig, RBLNCompileConfig, RBLNModelConfig, get_rbln_config_class
|
|
28
|
-
from .utils.hub import
|
|
29
|
+
from .utils.hub import pull_compiled_model_from_hub, validate_files
|
|
29
30
|
from .utils.logging import get_logger
|
|
30
31
|
from .utils.runtime_utils import UnavailableRuntime, tp_and_devices_are_ok
|
|
31
32
|
from .utils.save_utils import maybe_load_preprocessors
|
|
@@ -50,11 +51,8 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
|
|
|
50
51
|
model_type = "rbln_model"
|
|
51
52
|
auto_model_class = AutoModel
|
|
52
53
|
config_class = AutoConfig
|
|
53
|
-
|
|
54
54
|
config_name = "config.json"
|
|
55
55
|
hf_library_name = "transformers"
|
|
56
|
-
_hf_class = None
|
|
57
|
-
_rbln_config_class = None
|
|
58
56
|
|
|
59
57
|
def __init__(
|
|
60
58
|
self,
|
|
@@ -115,7 +113,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
|
|
|
115
113
|
def _load_compiled_model_dir(
|
|
116
114
|
cls,
|
|
117
115
|
model_id: Union[str, Path],
|
|
118
|
-
|
|
116
|
+
token: Optional[Union[bool, str]] = None,
|
|
119
117
|
revision: Optional[str] = None,
|
|
120
118
|
force_download: bool = False,
|
|
121
119
|
cache_dir: Optional[str] = None,
|
|
@@ -134,7 +132,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
|
|
|
134
132
|
model_path = pull_compiled_model_from_hub(
|
|
135
133
|
model_id=model_id,
|
|
136
134
|
subfolder=subfolder,
|
|
137
|
-
|
|
135
|
+
token=token,
|
|
138
136
|
revision=revision,
|
|
139
137
|
cache_dir=cache_dir,
|
|
140
138
|
force_download=force_download,
|
|
@@ -172,7 +170,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
|
|
|
172
170
|
cls,
|
|
173
171
|
model_id: Union[str, Path],
|
|
174
172
|
config: Optional["PretrainedConfig"] = None,
|
|
175
|
-
|
|
173
|
+
token: Optional[Union[bool, str]] = None,
|
|
176
174
|
revision: Optional[str] = None,
|
|
177
175
|
force_download: bool = False,
|
|
178
176
|
cache_dir: Optional[str] = None,
|
|
@@ -189,7 +187,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
|
|
|
189
187
|
if rbln_compiled_models is None:
|
|
190
188
|
model_path_subfolder = cls._load_compiled_model_dir(
|
|
191
189
|
model_id=model_id,
|
|
192
|
-
|
|
190
|
+
token=token,
|
|
193
191
|
revision=revision,
|
|
194
192
|
force_download=force_download,
|
|
195
193
|
cache_dir=cache_dir,
|
|
@@ -232,7 +230,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
|
|
|
232
230
|
cache_dir=cache_dir,
|
|
233
231
|
force_download=force_download,
|
|
234
232
|
revision=revision,
|
|
235
|
-
token=
|
|
233
|
+
token=token,
|
|
236
234
|
trust_remote_code=trust_remote_code,
|
|
237
235
|
)
|
|
238
236
|
elif cls.hf_library_name == "diffusers":
|
|
@@ -250,7 +248,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
|
|
|
250
248
|
force_download=force_download,
|
|
251
249
|
local_files_only=local_files_only,
|
|
252
250
|
revision=revision,
|
|
253
|
-
token=
|
|
251
|
+
token=token,
|
|
254
252
|
subfolder=subfolder,
|
|
255
253
|
)
|
|
256
254
|
config = PretrainedConfig(**config)
|
|
@@ -421,7 +419,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
|
|
|
421
419
|
|
|
422
420
|
# Returns:
|
|
423
421
|
# type: The original HuggingFace model class
|
|
424
|
-
if cls._hf_class is None:
|
|
422
|
+
if "_hf_class" not in cls.__dict__ or cls._hf_class is None:
|
|
425
423
|
hf_cls_name = cls.__name__[4:]
|
|
426
424
|
library = importlib.import_module(cls.hf_library_name)
|
|
427
425
|
cls._hf_class = getattr(library, hf_cls_name, None)
|
|
@@ -430,7 +428,7 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
|
|
|
430
428
|
@classmethod
|
|
431
429
|
def get_rbln_config_class(cls) -> Type[RBLNModelConfig]:
|
|
432
430
|
# Lazily loads and caches the corresponding RBLN model config class.
|
|
433
|
-
if cls._rbln_config_class is None:
|
|
431
|
+
if "_rbln_config_class" not in cls.__dict__ or cls._rbln_config_class is None:
|
|
434
432
|
rbln_config_class_name = cls.__name__ + "Config"
|
|
435
433
|
cls._rbln_config_class = get_rbln_config_class(rbln_config_class_name)
|
|
436
434
|
return cls._rbln_config_class
|
|
@@ -507,6 +505,9 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
|
|
|
507
505
|
f"Please ensure the model directory exists and you have the necessary permissions to access it."
|
|
508
506
|
)
|
|
509
507
|
|
|
508
|
+
if isinstance(self.config, PretrainedConfig):
|
|
509
|
+
self.config.save_pretrained(real_save_dir)
|
|
510
|
+
|
|
510
511
|
if save_directory_path == real_save_dir:
|
|
511
512
|
raise FileExistsError(
|
|
512
513
|
f"Cannot save model to '{save_directory}'. This directory already exists and contains the model files."
|
|
@@ -534,7 +535,10 @@ class RBLNBaseModel(SubModulesMixin, PushToHubMixin, PreTrainedModel):
|
|
|
534
535
|
raise e # Re-raise the exception after cleanup
|
|
535
536
|
|
|
536
537
|
if push_to_hub:
|
|
537
|
-
|
|
538
|
+
repo_id = kwargs.pop("repo_id", None)
|
|
539
|
+
if repo_id is None:
|
|
540
|
+
raise ValueError("`repo_id` must be provided to push the model to the HuggingFace model hub.")
|
|
541
|
+
return super().push_to_hub(repo_id=repo_id, **kwargs)
|
|
538
542
|
|
|
539
543
|
@staticmethod
|
|
540
544
|
def _raise_missing_compiled_file_error(missing_files: List[str]):
|
|
@@ -56,10 +56,7 @@ class BartDecoderWrapper(Seq2SeqDecoderWrapper):
|
|
|
56
56
|
|
|
57
57
|
|
|
58
58
|
class BartForConditionalGeneration(Seq2SeqForConditionalGeneration):
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
def __post_init__(self):
|
|
62
|
-
self.scaling = self.config.d_model**-0.5
|
|
59
|
+
pass
|
|
63
60
|
|
|
64
61
|
|
|
65
62
|
class BartDecoder(Seq2SeqDecoder):
|
|
@@ -43,7 +43,15 @@ class RBLNCLIPTextModelWithProjectionConfig(RBLNCLIPTextModelConfig):
|
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
class RBLNCLIPVisionModelConfig(RBLNModelConfig):
|
|
46
|
-
def __init__(
|
|
46
|
+
def __init__(
|
|
47
|
+
self,
|
|
48
|
+
batch_size: Optional[int] = None,
|
|
49
|
+
image_size: Optional[int] = None,
|
|
50
|
+
interpolate_pos_encoding: Optional[bool] = None,
|
|
51
|
+
output_hidden_states: Optional[bool] = None,
|
|
52
|
+
output_attentions: Optional[bool] = None,
|
|
53
|
+
**kwargs: Dict[str, Any],
|
|
54
|
+
):
|
|
47
55
|
"""
|
|
48
56
|
Args:
|
|
49
57
|
batch_size (Optional[int]): The batch size for image processing. Defaults to 1.
|
|
@@ -60,6 +68,9 @@ class RBLNCLIPVisionModelConfig(RBLNModelConfig):
|
|
|
60
68
|
raise ValueError(f"batch_size must be a positive integer, got {self.batch_size}")
|
|
61
69
|
|
|
62
70
|
self.image_size = image_size
|
|
71
|
+
self.interpolate_pos_encoding = interpolate_pos_encoding or False
|
|
72
|
+
self.output_hidden_states = output_hidden_states
|
|
73
|
+
self.output_attentions = output_attentions
|
|
63
74
|
|
|
64
75
|
@property
|
|
65
76
|
def image_width(self):
|
|
@@ -16,6 +16,7 @@ from typing import TYPE_CHECKING, Optional, Tuple, Union
|
|
|
16
16
|
|
|
17
17
|
import torch
|
|
18
18
|
from transformers import CLIPTextConfig, CLIPTextModel, CLIPVisionConfig, CLIPVisionModel
|
|
19
|
+
from transformers.modeling_outputs import BaseModelOutputWithPooling
|
|
19
20
|
from transformers.models.clip.modeling_clip import CLIPTextModelOutput, CLIPVisionModelOutput
|
|
20
21
|
|
|
21
22
|
from ....configuration_utils import RBLNCompileConfig
|
|
@@ -111,12 +112,27 @@ class RBLNCLIPTextModelWithProjection(RBLNCLIPTextModel):
|
|
|
111
112
|
|
|
112
113
|
|
|
113
114
|
class _VisionEncoder(torch.nn.Module):
|
|
114
|
-
def __init__(
|
|
115
|
+
def __init__(
|
|
116
|
+
self,
|
|
117
|
+
enc: CLIPVisionModel,
|
|
118
|
+
interpolate_pos_encoding: bool,
|
|
119
|
+
output_hidden_states: bool,
|
|
120
|
+
output_attentions: bool,
|
|
121
|
+
):
|
|
115
122
|
super().__init__()
|
|
116
123
|
self.enc = enc
|
|
124
|
+
self.interpolate_pos_encoding = interpolate_pos_encoding
|
|
125
|
+
self.output_hidden_states = output_hidden_states
|
|
126
|
+
self.output_attentions = output_attentions
|
|
117
127
|
|
|
118
128
|
def forward(self, inp):
|
|
119
|
-
enc_out = self.enc(
|
|
129
|
+
enc_out = self.enc(
|
|
130
|
+
inp,
|
|
131
|
+
output_hidden_states=self.output_hidden_states,
|
|
132
|
+
interpolate_pos_encoding=self.interpolate_pos_encoding,
|
|
133
|
+
output_attentions=self.output_attentions,
|
|
134
|
+
return_dict=False,
|
|
135
|
+
)
|
|
120
136
|
return enc_out
|
|
121
137
|
|
|
122
138
|
|
|
@@ -130,7 +146,12 @@ class RBLNCLIPVisionModel(RBLNModel):
|
|
|
130
146
|
|
|
131
147
|
@classmethod
|
|
132
148
|
def wrap_model_if_needed(cls, model: torch.nn.Module, rbln_config: RBLNCLIPVisionModelConfig) -> torch.nn.Module:
|
|
133
|
-
|
|
149
|
+
wrapper_cfg = {
|
|
150
|
+
"interpolate_pos_encoding": rbln_config.interpolate_pos_encoding,
|
|
151
|
+
"output_hidden_states": rbln_config.output_hidden_states,
|
|
152
|
+
"output_attentions": rbln_config.output_attentions,
|
|
153
|
+
}
|
|
154
|
+
return _VisionEncoder(model, **wrapper_cfg).eval()
|
|
134
155
|
|
|
135
156
|
@classmethod
|
|
136
157
|
def update_rbln_config_using_pipe(
|
|
@@ -155,6 +176,12 @@ class RBLNCLIPVisionModel(RBLNModel):
|
|
|
155
176
|
if rbln_config.image_size is None:
|
|
156
177
|
raise ValueError("`rbln_image_size` should be specified!")
|
|
157
178
|
|
|
179
|
+
if rbln_config.output_attentions is None:
|
|
180
|
+
rbln_config.output_attentions = getattr(model_config, "output_attentions", False)
|
|
181
|
+
|
|
182
|
+
if rbln_config.output_hidden_states is None:
|
|
183
|
+
rbln_config.output_hidden_states = getattr(model_config, "output_hidden_states", False)
|
|
184
|
+
|
|
158
185
|
rbln_compile_config = RBLNCompileConfig(
|
|
159
186
|
input_info=[
|
|
160
187
|
(
|
|
@@ -176,27 +203,76 @@ class RBLNCLIPVisionModel(RBLNModel):
|
|
|
176
203
|
def forward(
|
|
177
204
|
self,
|
|
178
205
|
pixel_values: Optional[torch.FloatTensor] = None,
|
|
179
|
-
return_dict: bool =
|
|
206
|
+
return_dict: bool = True,
|
|
207
|
+
output_attentions: bool = None,
|
|
208
|
+
output_hidden_states: bool = None,
|
|
209
|
+
interpolate_pos_encoding: bool = False,
|
|
180
210
|
**kwargs,
|
|
181
|
-
) -> Union[Tuple,
|
|
211
|
+
) -> Union[Tuple, BaseModelOutputWithPooling]:
|
|
182
212
|
if len(kwargs) > 0 and any(value is not None for value in kwargs.values()):
|
|
183
213
|
logger.warning(
|
|
184
214
|
f"Currently, optimum-rbln does not support kwargs {kwargs.keys()} for {self.__class__.__name__}."
|
|
185
215
|
)
|
|
216
|
+
|
|
217
|
+
output_attentions = output_attentions if output_attentions is not None else self.rbln_config.output_attentions
|
|
218
|
+
output_hidden_states = (
|
|
219
|
+
output_hidden_states if output_hidden_states is not None else self.rbln_config.output_hidden_states
|
|
220
|
+
)
|
|
221
|
+
|
|
222
|
+
if output_attentions != self.rbln_config.output_attentions:
|
|
223
|
+
raise ValueError(
|
|
224
|
+
f"Variable output_attentions {output_attentions} is not equal to rbln_config.output_attentions {self.rbln_config.output_attentions} "
|
|
225
|
+
f"Please compile again with the correct argument."
|
|
226
|
+
)
|
|
227
|
+
|
|
228
|
+
if output_hidden_states != self.rbln_config.output_hidden_states:
|
|
229
|
+
raise ValueError(
|
|
230
|
+
f"Variable output_hidden_states {output_hidden_states} is not equal to rbln_config.output_hidden_states {self.rbln_config.output_hidden_states} "
|
|
231
|
+
f"Please compile again with the correct argument."
|
|
232
|
+
)
|
|
233
|
+
|
|
234
|
+
if interpolate_pos_encoding != self.rbln_config.interpolate_pos_encoding:
|
|
235
|
+
raise ValueError(
|
|
236
|
+
f"Variable interpolate_pos_encoding {interpolate_pos_encoding} is not equal to rbln_config.interpolate_pos_encoding {self.rbln_config.interpolate_pos_encoding} "
|
|
237
|
+
f"Please compile again with the correct argument."
|
|
238
|
+
)
|
|
239
|
+
|
|
186
240
|
output = super().forward(pixel_values, return_dict=return_dict)
|
|
187
241
|
return output
|
|
188
242
|
|
|
189
243
|
def _prepare_output(self, output, return_dict):
|
|
190
244
|
# Prepare model output based on return_dict flag.
|
|
191
245
|
# This method can be overridden by subclasses to provide task-specific output handling.
|
|
246
|
+
last_hidden_state = output.pop(0)
|
|
247
|
+
pooler_output = output.pop(0)
|
|
248
|
+
vision_config = self.config.vision_config if hasattr(self.config, "vision_config") else self.config
|
|
249
|
+
|
|
250
|
+
if self.rbln_config.output_hidden_states:
|
|
251
|
+
hidden_states = ()
|
|
252
|
+
num_hidden_layers = vision_config.num_hidden_layers
|
|
253
|
+
for _ in range(num_hidden_layers + 1):
|
|
254
|
+
hidden_states += (output.pop(0),)
|
|
255
|
+
else:
|
|
256
|
+
hidden_states = None
|
|
257
|
+
|
|
258
|
+
if self.rbln_config.output_attentions:
|
|
259
|
+
attentions = ()
|
|
260
|
+
num_hidden_layers = vision_config.num_hidden_layers
|
|
261
|
+
for _ in range(num_hidden_layers):
|
|
262
|
+
attentions += (output.pop(0),)
|
|
263
|
+
else:
|
|
264
|
+
attentions = None
|
|
192
265
|
|
|
193
266
|
if not return_dict:
|
|
194
|
-
return (
|
|
267
|
+
return tuple(
|
|
268
|
+
item for item in (last_hidden_state, pooler_output, hidden_states, attentions) if item is not None
|
|
269
|
+
)
|
|
195
270
|
else:
|
|
196
|
-
return
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
hidden_states=
|
|
271
|
+
return BaseModelOutputWithPooling(
|
|
272
|
+
last_hidden_state=last_hidden_state,
|
|
273
|
+
pooler_output=pooler_output,
|
|
274
|
+
hidden_states=hidden_states,
|
|
275
|
+
attentions=attentions,
|
|
200
276
|
)
|
|
201
277
|
|
|
202
278
|
|
|
@@ -208,21 +284,40 @@ class RBLNCLIPVisionModelWithProjection(RBLNCLIPVisionModel):
|
|
|
208
284
|
multimodal embedding alignment tasks.
|
|
209
285
|
"""
|
|
210
286
|
|
|
211
|
-
def
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
287
|
+
def _prepare_output(self, output, return_dict):
|
|
288
|
+
# Prepare model output based on return_dict flag.
|
|
289
|
+
# This method can be overridden by subclasses to provide task-specific output handling.
|
|
290
|
+
|
|
291
|
+
image_embeds = output.pop(0) if isinstance(output, (tuple, list)) else output
|
|
292
|
+
last_hidden_state = output.pop(0)
|
|
293
|
+
|
|
294
|
+
vision_config = self.config.vision_config if hasattr(self.config, "vision_config") else self.config
|
|
295
|
+
|
|
296
|
+
if self.rbln_config.output_hidden_states:
|
|
297
|
+
hidden_states = ()
|
|
298
|
+
num_hidden_layers = vision_config.num_hidden_layers
|
|
299
|
+
for _ in range(num_hidden_layers + 1):
|
|
300
|
+
hidden_states += (output.pop(0),)
|
|
301
|
+
else:
|
|
302
|
+
hidden_states = None
|
|
303
|
+
|
|
304
|
+
if self.rbln_config.output_attentions:
|
|
305
|
+
attentions = ()
|
|
306
|
+
num_hidden_layers = vision_config.num_hidden_layers
|
|
307
|
+
for _ in range(num_hidden_layers):
|
|
308
|
+
attentions += (output.pop(0),)
|
|
309
|
+
else:
|
|
310
|
+
attentions = None
|
|
311
|
+
|
|
312
|
+
if not return_dict:
|
|
313
|
+
return tuple(
|
|
314
|
+
item for item in (image_embeds, last_hidden_state, hidden_states, attentions) if item is not None
|
|
315
|
+
)
|
|
316
|
+
|
|
317
|
+
else:
|
|
318
|
+
return CLIPVisionModelOutput(
|
|
319
|
+
image_embeds=image_embeds,
|
|
320
|
+
last_hidden_state=last_hidden_state,
|
|
321
|
+
hidden_states=hidden_states,
|
|
322
|
+
attentions=attentions,
|
|
323
|
+
)
|
|
@@ -303,6 +303,8 @@ class RBLNRuntimeModel(RBLNPytorchRuntime):
|
|
|
303
303
|
position_embed = (
|
|
304
304
|
position_embed[:, :, :, attention_mask.bool(), :] if attention_mask is not None else position_embed
|
|
305
305
|
)
|
|
306
|
+
if token_type_ids is not None:
|
|
307
|
+
token_type_ids = token_type_ids[:, attention_mask.bool()] if attention_mask is not None else token_type_ids
|
|
306
308
|
|
|
307
309
|
query_length = inputs.shape[1]
|
|
308
310
|
if query_length > self.rbln_config.max_seq_len:
|
|
@@ -352,8 +354,11 @@ class RBLNRuntimeModel(RBLNPytorchRuntime):
|
|
|
352
354
|
if position_embed is not None:
|
|
353
355
|
position_embed = torch.nn.functional.pad(position_embed, (0, 0, 0, padding_size))
|
|
354
356
|
|
|
357
|
+
if token_type_ids is not None:
|
|
358
|
+
token_type_ids = torch.nn.functional.pad(token_type_ids, (0, padding_size), value=-1)
|
|
359
|
+
|
|
355
360
|
# Overwrite position_ids and padded_cache_lengths
|
|
356
|
-
position_ids =
|
|
361
|
+
position_ids = cache_position.clone()
|
|
357
362
|
padded_cache_lengths = 0
|
|
358
363
|
|
|
359
364
|
return (
|
|
@@ -365,6 +370,7 @@ class RBLNRuntimeModel(RBLNPytorchRuntime):
|
|
|
365
370
|
position_embed,
|
|
366
371
|
padded_cache_lengths,
|
|
367
372
|
query_length,
|
|
373
|
+
token_type_ids,
|
|
368
374
|
)
|
|
369
375
|
|
|
370
376
|
def prefill_forward(
|
|
@@ -393,6 +399,7 @@ class RBLNRuntimeModel(RBLNPytorchRuntime):
|
|
|
393
399
|
position_embed,
|
|
394
400
|
padded_cache_lengths,
|
|
395
401
|
query_length,
|
|
402
|
+
token_type_ids,
|
|
396
403
|
) = self._prepare_prefill_inputs(
|
|
397
404
|
inputs, cache_position, attention_mask, position_embed, token_type_ids=token_type_ids
|
|
398
405
|
)
|
|
@@ -23,22 +23,21 @@ from ..siglip.configuration_siglip import RBLNSiglipVisionModelConfig
|
|
|
23
23
|
class RBLNGemma3ForCausalLMConfig(RBLNDecoderOnlyModelForCausalLMConfig):
|
|
24
24
|
def __init__(
|
|
25
25
|
self,
|
|
26
|
-
prefill_chunk_size: Optional[int] = None,
|
|
27
26
|
use_position_ids: Optional[bool] = None,
|
|
28
27
|
use_attention_mask: Optional[bool] = None,
|
|
28
|
+
image_prefill_chunk_size: Optional[int] = None,
|
|
29
29
|
**kwargs: Dict[str, Any],
|
|
30
30
|
):
|
|
31
31
|
# use_attention_mask and use_position_ids are always True for Gemma3
|
|
32
32
|
use_attention_mask = use_attention_mask or True
|
|
33
33
|
use_position_ids = use_position_ids or True
|
|
34
|
-
prefill_chunk_size = prefill_chunk_size or 256
|
|
35
34
|
|
|
36
35
|
super().__init__(
|
|
37
|
-
prefill_chunk_size=prefill_chunk_size,
|
|
38
36
|
use_attention_mask=use_attention_mask,
|
|
39
37
|
use_position_ids=use_position_ids,
|
|
40
38
|
**kwargs,
|
|
41
39
|
)
|
|
40
|
+
self.image_prefill_chunk_size = image_prefill_chunk_size
|
|
42
41
|
|
|
43
42
|
npu = self.npu or rebel.get_npu_name()
|
|
44
43
|
if npu == "RBLN-CA02":
|