optimum-rbln 0.7.3.post1__tar.gz → 0.7.4__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.
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/ISSUE_TEMPLATE/model_request.md +1 -1
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/scripts/auto_code_review.py +5 -23
- optimum_rbln-0.7.4/.github/version.yaml +1 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/workflows/auto_code_review.yml +1 -1
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/workflows/check_code_quality.yml +1 -1
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/workflows/deploy-on-tag.yaml +1 -1
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/workflows/pr-title-check.yaml +1 -1
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/workflows/pr_checklist_validator.yml +1 -1
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/workflows/rbln_optimum_pytest.yaml +10 -2
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/PKG-INFO +6 -6
- optimum_rbln-0.7.4/examples/image-to-text/run_idefics3.py +67 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/kandinsky2_2/run_kandinsky2_2_img2img.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/question-answering/run_question_answering.py +1 -1
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/stable-diffusion/run_stable_diffusion.py +5 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/stable-diffusion/run_stable_diffusion_controlnet.py +8 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/stable-diffusion/run_stable_diffusion_img2img.py +5 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/stable-diffusion/run_stable_diffusion_img2img_controlnet.py +8 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/stable-diffusion/run_stable_diffusion_multicontrolnet.py +1 -0
- optimum_rbln-0.7.4/examples/time-series-forecasting/run_time_series_forecasting.py +43 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/pyproject.toml +7 -5
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/__init__.py +173 -35
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/__version__.py +2 -2
- optimum_rbln-0.7.4/src/optimum/rbln/configuration_utils.py +816 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/__init__.py +56 -0
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/configurations/__init__.py +30 -0
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/configurations/models/__init__.py +6 -0
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl.py +66 -0
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/configurations/models/configuration_controlnet.py +62 -0
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/configurations/models/configuration_prior_transformer.py +52 -0
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/configurations/models/configuration_transformer_sd3.py +56 -0
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/configurations/models/configuration_unet_2d_condition.py +74 -0
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/configurations/models/configuration_vq_model.py +67 -0
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/configurations/pipelines/__init__.py +30 -0
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/configurations/pipelines/configuration_controlnet.py +236 -0
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/configurations/pipelines/configuration_kandinsky2_2.py +289 -0
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion.py +118 -0
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_3.py +143 -0
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_xl.py +124 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/modeling_diffusers.py +111 -137
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl.py +210 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/models/autoencoders/vae.py +4 -6
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/models/autoencoders/vq_model.py +166 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/models/controlnet.py +56 -71
- optimum_rbln-0.7.4/src/optimum/rbln/diffusers/models/transformers/prior_transformer.py +137 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/models/transformers/transformer_sd3.py +44 -69
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/models/unets/unet_2d_condition.py +111 -114
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/controlnet/multicontrolnet.py +3 -4
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpaint.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +4 -1
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +2 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/modeling.py +66 -40
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/modeling_base.py +111 -86
- {optimum_rbln-0.7.3.post1/src/optimum/rbln/transformers/models/bart → optimum_rbln-0.7.4/src/optimum/rbln/ops}/__init__.py +4 -1
- optimum_rbln-0.7.4/src/optimum/rbln/ops/attn.py +287 -0
- optimum_rbln-0.7.4/src/optimum/rbln/ops/flash_attn.py +176 -0
- optimum_rbln-0.7.4/src/optimum/rbln/ops/kv_cache_update.py +24 -0
- optimum_rbln-0.7.4/src/optimum/rbln/ops/linear.py +25 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/__init__.py +97 -8
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/configuration_alias.py +49 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/configuration_generic.py +142 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/modeling_generic.py +317 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/__init__.py +193 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/auto/auto_factory.py +6 -6
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/bart/__init__.py +17 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/bart/configuration_bart.py +24 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/bart/modeling_bart.py +56 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/bert/__init__.py +1 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/bert/configuration_bert.py +31 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/bert/modeling_bert.py +35 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/clip/__init__.py +6 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/clip/configuration_clip.py +79 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/clip/modeling_clip.py +72 -75
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/decoderonly/__init__.py +11 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py +90 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py +197 -178
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +343 -249
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/dpt/__init__.py +1 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/dpt/configuration_dpt.py +19 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/dpt/modeling_dpt.py +20 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/exaone/__init__.py +1 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/exaone/configuration_exaone.py +19 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/gemma/__init__.py +1 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/gemma/configuration_gemma.py +19 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/gpt2/__init__.py +1 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/gpt2/configuration_gpt2.py +19 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/idefics3/__init__.py +16 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/idefics3/configuration_idefics3.py +51 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/idefics3/modeling_idefics3.py +459 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/llama/__init__.py +1 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/llama/configuration_llama.py +19 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/llava_next/__init__.py +1 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/llava_next/configuration_llava_next.py +46 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/llava_next/modeling_llava_next.py +18 -23
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/midm/__init__.py +1 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/midm/configuration_midm.py +19 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/mistral/__init__.py +1 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/mistral/configuration_mistral.py +19 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/phi/__init__.py +1 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/phi/configuration_phi.py +19 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/qwen2/__init__.py +1 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/qwen2/configuration_qwen2.py +19 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/qwen2_5_vl/__init__.py +19 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/qwen2_5_vl/configuration_qwen2_5_vl.py +68 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/qwen2_5_vl/modeling_qwen2_5_vl.py +608 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/qwen2_5_vl/qwen2_5_vl_architecture.py +214 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/seq2seq/__init__.py +1 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/seq2seq/configuration_seq2seq2.py +66 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/seq2seq/modeling_seq2seq.py +99 -118
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/seq2seq/seq2seq_architecture.py +12 -21
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/t5/__init__.py +2 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/t5/configuration_t5.py +24 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/t5/modeling_t5.py +82 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/t5/t5_architecture.py +10 -5
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/time_series_transformers/__init__.py +26 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/time_series_transformers/configuration_time_series_transformer.py +34 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/time_series_transformers/modeling_time_series_transformers.py +420 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/time_series_transformers/time_series_transformers_architecture.py +331 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/wav2vec2/__init__.py +1 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/wav2vec2/configuration_wav2vec.py +19 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/wav2vec2/modeling_wav2vec2.py +54 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/whisper/__init__.py +2 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/whisper/configuration_whisper.py +64 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/whisper/modeling_whisper.py +135 -100
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/whisper/whisper_architecture.py +73 -40
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/xlm_roberta/__init__.py +1 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/xlm_roberta/configuration_xlm_roberta.py +19 -0
- optimum_rbln-0.7.4/src/optimum/rbln/transformers/models/xlm_roberta/modeling_xlm_roberta.py +20 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/utils/hub.py +2 -2
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/utils/import_utils.py +23 -6
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/utils/model_utils.py +4 -4
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/utils/runtime_utils.py +33 -2
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/utils/submodule.py +36 -44
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/tests/run_stable_diffusion_xl_base.py +1 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/tests/test_base.py +17 -11
- optimum_rbln-0.7.4/tests/test_config.py +132 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/tests/test_diffusers.py +47 -24
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/tests/test_llm.py +82 -1
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/tests/test_transformers.py +84 -18
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/uv.lock +385 -133
- optimum_rbln-0.7.3.post1/.github/version.yaml +0 -1
- optimum_rbln-0.7.3.post1/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl.py +0 -229
- optimum_rbln-0.7.3.post1/src/optimum/rbln/diffusers/models/autoencoders/vq_model.py +0 -167
- optimum_rbln-0.7.3.post1/src/optimum/rbln/diffusers/models/transformers/prior_transformer.py +0 -174
- optimum_rbln-0.7.3.post1/src/optimum/rbln/modeling_config.py +0 -310
- optimum_rbln-0.7.3.post1/src/optimum/rbln/ops/__init__.py +0 -21
- optimum_rbln-0.7.3.post1/src/optimum/rbln/ops/attn.py +0 -221
- optimum_rbln-0.7.3.post1/src/optimum/rbln/ops/flash_attn.py +0 -82
- optimum_rbln-0.7.3.post1/src/optimum/rbln/ops/kv_cache_update.py +0 -60
- optimum_rbln-0.7.3.post1/src/optimum/rbln/transformers/modeling_generic.py +0 -404
- optimum_rbln-0.7.3.post1/src/optimum/rbln/transformers/models/__init__.py +0 -105
- optimum_rbln-0.7.3.post1/src/optimum/rbln/transformers/models/bart/modeling_bart.py +0 -131
- optimum_rbln-0.7.3.post1/src/optimum/rbln/transformers/models/bert/modeling_bert.py +0 -108
- optimum_rbln-0.7.3.post1/src/optimum/rbln/transformers/models/dpt/modeling_dpt.py +0 -93
- optimum_rbln-0.7.3.post1/src/optimum/rbln/transformers/models/t5/modeling_t5.py +0 -210
- optimum_rbln-0.7.3.post1/src/optimum/rbln/transformers/models/wav2vec2/modeling_wav2vec2.py +0 -117
- optimum_rbln-0.7.3.post1/src/optimum/rbln/transformers/models/xlm_roberta/modeling_xlm_roberta.py +0 -100
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/pull_request_template.md +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/scripts/validate_pr_checklist.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/workflows/deploy.yaml +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/workflows/rbln_check_compiler.yaml +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/workflows/rbln_dispatch_pytest.yaml +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/workflows/rbln_optimum_inference_test.yaml +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/workflows/rbln_scheduled_test.yaml +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.github/workflows/rbln_trigger_on_pr.yaml +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/.gitignore +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/CODE_OF_CONDUCT.md +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/CONTRIBUTING.md +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/LICENSE +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/README.md +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/assets/rbln_logo.png +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/audio-classification/run_ast_audio_classification.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/depth-estimation/run_dpt.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/image-classification/run_image_classification.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/image-classification/run_vit_image_classification.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/image-to-text/run_llava_next_image_to_text.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/kandinsky2_2/run_kandinsky2_2.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/kandinsky2_2/run_kandinsky2_2_combined.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/kandinsky2_2/run_kandinsky2_2_img2img_combined.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/kandinsky2_2/run_kandinsky2_2_inpaint.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/kandinsky2_2/run_kandinsky2_2_inpaint_combined.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/kandinsky2_2/run_kandinsky2_2_prior_interpolate.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/speech-recognition/run_wav2vec2.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/speech-recognition/run_whisper.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/stable-diffusion/run_stable_diffusion_inpaint.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/stable-diffusion/run_stable_diffusion_lora.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/text-classification/run_bge_m3_text_classification.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/text-classification/run_bge_reranker_v2_m3_text_classification.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/text-classification/run_secureBERT.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/text-classification/run_t5_classification.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/text-classification/run_twitter_roberta_text_classification.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/text2text-generation/run_bart_text2text_generation.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/text2text-generation/run_llama_peft.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/text2text-generation/run_llama_text2text_generation.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/scripts/uv-lock.sh +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/scripts/uv-sync.sh +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/models/__init__.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/models/autoencoders/__init__.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/models/transformers/__init__.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/models/unets/__init__.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/__init__.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/controlnet/__init__.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/__init__.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/__init__.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/__init__.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/__init__.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/modeling_alias.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/modeling_rope_utils.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/auto/__init__.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/auto/modeling_auto.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/bart/bart_architecture.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/exaone/exaone_architecture.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/exaone/modeling_exaone.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/gemma/gemma_architecture.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/gemma/modeling_gemma.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/gpt2/gpt2_architecture.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/gpt2/modeling_gpt2.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/llama/llama_architecture.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/llama/modeling_llama.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/midm/midm_architecture.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/midm/modeling_midm.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/mistral/mistral_architecture.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/mistral/modeling_mistral.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/phi/modeling_phi.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/phi/phi_architecture.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/qwen2/modeling_qwen2.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/qwen2/qwen2_architecture.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/models/whisper/generation_whisper.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/utils/__init__.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/transformers/utils/rbln_quantization.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/utils/__init__.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/utils/decorator_utils.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/utils/logging.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/src/optimum/rbln/utils/save_utils.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/tests/__init__.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/tests/psnr.py +0 -0
- {optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/tests/requirements_sdxl.txt +0 -0
@@ -22,8 +22,7 @@ from github import Github
|
|
22
22
|
|
23
23
|
model_name = os.environ["GOOGLE_MODEL_ID"]
|
24
24
|
genai.configure(api_key=os.environ["GOOGLE_API_KEY"])
|
25
|
-
max_context_token =
|
26
|
-
force_review = False
|
25
|
+
max_context_token = 500000
|
27
26
|
|
28
27
|
|
29
28
|
def get_pr_diff():
|
@@ -37,7 +36,7 @@ def get_pr_diff():
|
|
37
36
|
|
38
37
|
|
39
38
|
def get_prompt(diff, pr):
|
40
|
-
system_prompt = """You are an experienced software engineer specializing in code reviews for deep learning libraries. Your task is to review code changes and related pull request (PR) information for `optimum-rbln`, a Python library that optimizes
|
39
|
+
system_prompt = """You are an experienced software engineer specializing in code reviews for deep learning libraries. Your task is to review code changes and related pull request (PR) information for `optimum-rbln`, a Python library that optimizes HuggingFace models for execution on RBLN NPUs.
|
41
40
|
|
42
41
|
Focus on providing actionable and constructive feedback. Don't make generalized suggestions."""
|
43
42
|
|
@@ -58,19 +57,6 @@ Review the following code changes(GIT DIFF) along with the pull request (PR) det
|
|
58
57
|
return system_prompt, prompt
|
59
58
|
|
60
59
|
|
61
|
-
def translate_review(review):
|
62
|
-
model = genai.GenerativeModel(
|
63
|
-
model_name,
|
64
|
-
system_instruction="You are a professional translator specializing in technical and software-related content. Keep the technical words in English, but understand the whole sentence and rephrase it in Korean.",
|
65
|
-
)
|
66
|
-
prompt = f"""Translate the following English text into Korean, maintaining technical accuracy and clarity. Include ONLY the translation, NO OTHER EXPLANATIONS or RESPONSES as a chatbot. :
|
67
|
-
|
68
|
-
{review}"""
|
69
|
-
response = model.generate_content(prompt)
|
70
|
-
|
71
|
-
return response.text
|
72
|
-
|
73
|
-
|
74
60
|
def review_code(system_prompt, prompt):
|
75
61
|
model = genai.GenerativeModel(model_name, system_instruction=system_prompt)
|
76
62
|
response = model.generate_content(prompt)
|
@@ -125,7 +111,7 @@ def main():
|
|
125
111
|
system_prompt, prompt = get_prompt(diff, pr)
|
126
112
|
model = genai.GenerativeModel(model_name=model_name, system_instruction=system_prompt)
|
127
113
|
num_tokens = model.count_tokens(prompt).total_tokens
|
128
|
-
if num_tokens > max_context_token
|
114
|
+
if num_tokens > max_context_token:
|
129
115
|
msg = f"Diff ({len(diff)}) exceeds maximum allowed tokens ({max_context_token}) > ({num_tokens}). Skipping review."
|
130
116
|
print(msg)
|
131
117
|
pr.create_issue_comment(msg)
|
@@ -133,14 +119,10 @@ def main():
|
|
133
119
|
|
134
120
|
# Get Auto review
|
135
121
|
review = review_code(system_prompt, prompt)
|
136
|
-
translation = translate_review(review)
|
137
122
|
|
138
123
|
# Post comment on PR
|
139
|
-
pr.create_issue_comment(f"""# Auto Code Review
|
140
|
-
|
141
|
-
- [참고] Auto Code Review를 invoke하려면, commit message의 시작을 [autoreview]로 시작하거나, "/autoreview" 를 comment로 작성한 후,
|
142
|
-
해당 commit의 github action에서 code review를 re-run 하시면 됩니다.
|
143
|
-
\n\n{review}\n\n{translation}""")
|
124
|
+
pr.create_issue_comment(f"""# Auto Code Review by {model_name}
|
125
|
+
\n\n{review}""")
|
144
126
|
|
145
127
|
|
146
128
|
if __name__ == "__main__":
|
@@ -0,0 +1 @@
|
|
1
|
+
rebel_compiler_version: 0.7.4.dev61+gb562a7f0
|
@@ -43,7 +43,9 @@ jobs:
|
|
43
43
|
if: ${{ inputs.commit_message == '' }}
|
44
44
|
run: |
|
45
45
|
COMMIT_MESSAGE=$(git log -1 --pretty=%B)
|
46
|
-
echo "message
|
46
|
+
echo "message<<EOF" >> $GITHUB_OUTPUT
|
47
|
+
echo "$COMMIT_MESSAGE" >> $GITHUB_OUTPUT
|
48
|
+
echo "EOF" >> $GITHUB_OUTPUT
|
47
49
|
|
48
50
|
- name: Setup uv
|
49
51
|
uses: astral-sh/setup-uv@v3
|
@@ -62,7 +64,13 @@ jobs:
|
|
62
64
|
run: |
|
63
65
|
PYPI_URL=$(echo ${{ env.REBEL_PYPI_ENDPOINT }} | sed "s/\/\//\0${{ env.REBEL_PYPI_USERNAME}}:${{ env.REBEL_PYPI_PASSWORD}}@/")
|
64
66
|
uv pip install --extra-index-url $PYPI_URL rebel-compiler==${{ inputs.rebel_compiler_version }}
|
65
|
-
|
67
|
+
|
68
|
+
- name: Run pytest (config)
|
69
|
+
env:
|
70
|
+
OPTIMUM_RBLN_TEST_LEVEL: ${{ inputs.test_level }}
|
71
|
+
run: |
|
72
|
+
uv run --no-sync pytest tests/test_config.py
|
73
|
+
|
66
74
|
- name: Run pytest (transformers)
|
67
75
|
env:
|
68
76
|
OPTIMUM_RBLN_TEST_LEVEL: ${{ inputs.test_level }}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: optimum-rbln
|
3
|
-
Version: 0.7.
|
4
|
-
Summary: Optimum RBLN is the interface between the
|
3
|
+
Version: 0.7.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
|
7
7
|
Project-URL: Repository, https://github.com/rebellions-sw/optimum-rbln
|
@@ -25,10 +25,10 @@ Requires-Python: <3.13,>=3.9
|
|
25
25
|
Requires-Dist: accelerate>=1.0.1
|
26
26
|
Requires-Dist: diffusers<=0.31.0
|
27
27
|
Requires-Dist: packaging>=24.1
|
28
|
-
Requires-Dist: torch
|
29
|
-
Requires-Dist: torchaudio<=2.
|
30
|
-
Requires-Dist: torchvision<=0.
|
31
|
-
Requires-Dist: transformers==4.
|
28
|
+
Requires-Dist: torch==2.6.0
|
29
|
+
Requires-Dist: torchaudio<=2.6.0
|
30
|
+
Requires-Dist: torchvision<=0.21.0
|
31
|
+
Requires-Dist: transformers==4.50.3
|
32
32
|
Description-Content-Type: text/markdown
|
33
33
|
|
34
34
|
|
@@ -0,0 +1,67 @@
|
|
1
|
+
import os
|
2
|
+
import typing
|
3
|
+
|
4
|
+
import fire
|
5
|
+
from datasets import load_dataset
|
6
|
+
from transformers import AutoProcessor
|
7
|
+
|
8
|
+
from optimum.rbln import RBLNIdefics3ForConditionalGeneration
|
9
|
+
|
10
|
+
|
11
|
+
def main(
|
12
|
+
model_id: str = "HuggingFaceM4/Idefics3-8B-Llama3",
|
13
|
+
batch_size: int = 1,
|
14
|
+
from_transformers: bool = False,
|
15
|
+
prompt: typing.Optional[str] = None,
|
16
|
+
max_seq_len: typing.Optional[int] = None,
|
17
|
+
tensor_parallel_size: typing.Optional[int] = 4,
|
18
|
+
):
|
19
|
+
processor = AutoProcessor.from_pretrained(model_id)
|
20
|
+
|
21
|
+
if from_transformers:
|
22
|
+
model = RBLNIdefics3ForConditionalGeneration.from_pretrained(
|
23
|
+
model_id,
|
24
|
+
export=True,
|
25
|
+
rbln_config={
|
26
|
+
"text_model": {
|
27
|
+
"attn_impl": "flash_attn",
|
28
|
+
"max_seq_len": max_seq_len,
|
29
|
+
"use_inputs_embeds": True,
|
30
|
+
"tensor_parallel_size": tensor_parallel_size,
|
31
|
+
"batch_size": batch_size,
|
32
|
+
}
|
33
|
+
},
|
34
|
+
)
|
35
|
+
model.save_pretrained(os.path.basename(model_id))
|
36
|
+
else:
|
37
|
+
model = RBLNIdefics3ForConditionalGeneration.from_pretrained(
|
38
|
+
os.path.basename(model_id),
|
39
|
+
export=False,
|
40
|
+
)
|
41
|
+
|
42
|
+
ds = load_dataset("HuggingFaceM4/the_cauldron", "ai2d", split="train")
|
43
|
+
samples = ds.select(range(batch_size))
|
44
|
+
images = []
|
45
|
+
prompts = []
|
46
|
+
|
47
|
+
for sample in samples:
|
48
|
+
img = sample["images"]
|
49
|
+
images.append(img)
|
50
|
+
|
51
|
+
message = [{"role": "user", "content": [{"type": "image"}, {"type": "text", "text": "Describe this image."}]}]
|
52
|
+
prompt = processor.apply_chat_template(message, add_generation_prompt=True)
|
53
|
+
prompts.append(prompt)
|
54
|
+
|
55
|
+
inputs = processor(text=prompts, images=images, return_tensors="pt", padding=True)
|
56
|
+
inputs = dict(inputs)
|
57
|
+
# Generate
|
58
|
+
|
59
|
+
generated_ids = model.generate(**inputs, max_new_tokens=500)
|
60
|
+
generated_texts = processor.batch_decode(generated_ids, skip_special_tokens=True)
|
61
|
+
|
62
|
+
for i, text in enumerate(generated_texts):
|
63
|
+
print(f"Sample {i + 1} generate:\n{text}\n")
|
64
|
+
|
65
|
+
|
66
|
+
if __name__ == "__main__":
|
67
|
+
fire.Fire(main)
|
{optimum_rbln-0.7.3.post1 → optimum_rbln-0.7.4}/examples/kandinsky2_2/run_kandinsky2_2_img2img.py
RENAMED
@@ -20,6 +20,7 @@ def main(
|
|
20
20
|
prior_pipe = RBLNKandinskyV22PriorPipeline.from_pretrained(
|
21
21
|
model_id=prior_model_id,
|
22
22
|
export=True,
|
23
|
+
rbln_config={"prior": {"batch_size": 2}},
|
23
24
|
)
|
24
25
|
prior_pipe.save_pretrained(os.path.basename(prior_model_id))
|
25
26
|
|
@@ -28,6 +29,7 @@ def main(
|
|
28
29
|
export=True,
|
29
30
|
rbln_img_height=768,
|
30
31
|
rbln_img_width=768,
|
32
|
+
rbln_config={"unet": {"batch_size": 2}},
|
31
33
|
)
|
32
34
|
pipe.save_pretrained(os.path.basename(inpaint_model_id))
|
33
35
|
else:
|
@@ -38,6 +38,14 @@ def main(
|
|
38
38
|
controlnet=controlnet,
|
39
39
|
rbln_img_width=img_width,
|
40
40
|
rbln_img_height=img_height,
|
41
|
+
rbln_config={
|
42
|
+
"unet": {
|
43
|
+
"batch_size": 2,
|
44
|
+
},
|
45
|
+
"controlnet": {
|
46
|
+
"batch_size": 2,
|
47
|
+
},
|
48
|
+
},
|
41
49
|
export=True,
|
42
50
|
scheduler=UniPCMultistepScheduler.from_pretrained(diffusion_model_id, subfolder="scheduler"),
|
43
51
|
)
|
@@ -40,6 +40,14 @@ def main(
|
|
40
40
|
controlnet=controlnet,
|
41
41
|
rbln_img_width=img_width,
|
42
42
|
rbln_img_height=img_height,
|
43
|
+
rbln_config={
|
44
|
+
"unet": {
|
45
|
+
"batch_size": 2,
|
46
|
+
},
|
47
|
+
"controlnet": {
|
48
|
+
"batch_size": 2,
|
49
|
+
},
|
50
|
+
},
|
43
51
|
export=True,
|
44
52
|
scheduler=UniPCMultistepScheduler.from_pretrained(diffusion_model_id, subfolder="scheduler"),
|
45
53
|
)
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import os
|
2
|
+
|
3
|
+
import fire
|
4
|
+
import torch
|
5
|
+
from huggingface_hub import hf_hub_download
|
6
|
+
|
7
|
+
from optimum.rbln import RBLNTimeSeriesTransformerForPrediction
|
8
|
+
|
9
|
+
|
10
|
+
def main(
|
11
|
+
model_id: str = "huggingface/time-series-transformer-tourism-monthly",
|
12
|
+
batch_size: int = 1,
|
13
|
+
num_parallel_samples: int = 100,
|
14
|
+
from_transformers: bool = False,
|
15
|
+
):
|
16
|
+
if from_transformers:
|
17
|
+
model = RBLNTimeSeriesTransformerForPrediction.from_pretrained(
|
18
|
+
model_id, export=True, rbln_batch_size=batch_size, num_parallel_samples=num_parallel_samples
|
19
|
+
)
|
20
|
+
model.save_pretrained(os.path.basename(model_id))
|
21
|
+
else:
|
22
|
+
model = RBLNTimeSeriesTransformerForPrediction.from_pretrained(
|
23
|
+
os.path.basename(model_id),
|
24
|
+
export=False,
|
25
|
+
)
|
26
|
+
|
27
|
+
dataset = hf_hub_download(
|
28
|
+
repo_id="hf-internal-testing/tourism-monthly-batch", filename="val-batch.pt", repo_type="dataset"
|
29
|
+
)
|
30
|
+
data = torch.load(dataset, weights_only=True)
|
31
|
+
|
32
|
+
batched_data = {}
|
33
|
+
for k, v in data.items():
|
34
|
+
batched_data[k] = v[:batch_size]
|
35
|
+
|
36
|
+
rbln_outputs = model.generate(**batched_data)
|
37
|
+
mean_prediction = rbln_outputs.sequences.mean(dim=1)
|
38
|
+
|
39
|
+
print(mean_prediction)
|
40
|
+
|
41
|
+
|
42
|
+
if __name__ == "__main__":
|
43
|
+
fire.Fire(main)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
[project]
|
2
2
|
name = "optimum-rbln"
|
3
3
|
description = """
|
4
|
-
Optimum RBLN is the interface between the
|
4
|
+
Optimum RBLN is the interface between the HuggingFace Transformers and Diffusers libraries and RBLN accelerators.
|
5
5
|
It provides a set of tools enabling easy model loading and inference on single and multiple rbln device settings for different downstream tasks.
|
6
6
|
"""
|
7
7
|
authors = [
|
@@ -28,11 +28,11 @@ classifiers = [
|
|
28
28
|
]
|
29
29
|
keywords = ["transformers", "diffusers", "inference", "rbln", "atom", "rebel"]
|
30
30
|
dependencies = [
|
31
|
-
"torch
|
32
|
-
"torchaudio<=2.
|
33
|
-
"torchvision<=0.
|
31
|
+
"torch==2.6.0",
|
32
|
+
"torchaudio<=2.6.0",
|
33
|
+
"torchvision<=0.21.0",
|
34
34
|
"accelerate>=1.0.1",
|
35
|
-
"transformers==4.
|
35
|
+
"transformers==4.50.3",
|
36
36
|
"diffusers<=0.31.0",
|
37
37
|
"packaging>=24.1",
|
38
38
|
]
|
@@ -53,6 +53,8 @@ tests = [
|
|
53
53
|
"sacremoses>=0.1.1",
|
54
54
|
"safetensors>=0.4.2",
|
55
55
|
"protobuf>=5.27.2",
|
56
|
+
"soundfile>=0.13.1",
|
57
|
+
"librosa>=0.11.0",
|
56
58
|
]
|
57
59
|
quality = [
|
58
60
|
"ruff>=0.3.3",
|