Add EmbeddingGemma-300M example to AI Edge Torch. #832
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add EmbeddingGemma-300M example to AI Edge Torch.
This change introduces a reauthored implementation of the EmbeddingGemma-300M model. It includes scripts to convert the model to TFLite and verify its output against the original Hugging Face SentenceTransformer implementation.
TFLite conversion for EmbeddingGemma now supports quantization but is limited to fixed input shapes. Dynamic sequence length could not be implemented due to limitations in the underlying conversion tooling (ODML Torch). The model uses torch.arange for positional embeddings; when tracing with a dynamic sequence length, the converter fails in odml_torch/export.py because its i64-to-i32 rewrite logic for arange does not support symbolic shapes, raising an AttributeError.
As a workaround, dynamic shapes are disabled, and the input shape is fixed based on --prefill_seq_lens. Additionally, torch.clamp was replaced with denominator smoothing to avoid the unsupported tfl.maximum op.