Use non nested images and batched text Idefics2/3 #34222
Use non nested images and batched text Idefics2/3 #34222yonigozlan merged 4 commits intohuggingface:mainfrom
Conversation
564b47d to
e45cc3a
Compare
ArthurZucker
left a comment
There was a problem hiding this comment.
Thanks, can you -properly test the different error scenario as it is done in:
There was a problem hiding this comment.
indexes can be determined from a cumsum here no?
e45cc3a to
e35203f
Compare
|
The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update. |
|
Added tests @ArthurZucker :) |
ArthurZucker
left a comment
There was a problem hiding this comment.
Thanks, missing one more!
There was a problem hiding this comment.
what about the case when there is 1 image token in 1 prompt, and 1 image:
text = [
"This is a test sentence.",
"In this other sentence we try some good things<image>",
]There was a problem hiding this comment.
Hmmm I think this won't raise an error here, I will try
There was a problem hiding this comment.
Oh it does raise an error, because it creates an empty list which is not accepted as an image, my bad!
Added the tests and synced them with a copied from
6b75745 to
da0ca3c
Compare
* add support for non nested images and add tests * add tests error scenario * fix style * added single and no image to error tests
* Support BatchNorm in Hubert pos_conv_emb as in fairseq * Correct the new defaults (#34377) * Correct the new defaults * CIs * add check * Update utils.py * Update utils.py * Add the max_length in generate test checking shape without passing length * style * CIs * fix fx CI issue * [auto. ping] Avoid sending empty info + add more team members (#34383) * update * update --------- Co-authored-by: ydshieh <ydshieh@users.noreply.github.com> * Fix glm (#34388) * Fix duplicated * fix import * Use non nested images and batched text Idefics2/3 (#34222) * add support for non nested images and add tests * add tests error scenario * fix style * added single and no image to error tests * Fix onnx non-expotable inplace aten op (#34376) * fix onnx non-expotable inplace op * mistral, qwen2, qwen2_vl, starcoder2 * fixup copies * Fix right padding in LLaVA models (#34305) * fix right pad llavas * device mismatch * no filter (#34391) * no filter * no filter * no filter --------- Co-authored-by: ydshieh <ydshieh@users.noreply.github.com> * SynthID: better example (#34372) * better example * Update src/transformers/generation/configuration_utils.py * Update src/transformers/generation/logits_process.py * nits * Tests: upgrade `test_eager_matches_sdpa_generate` (#34386) * Fix bnb training test failure (#34414) * Fix bnb training test: compatibility with OPTSdpaAttention * Avoid check expected exception when it is on CUDA (#34408) * update * update --------- Co-authored-by: ydshieh <ydshieh@users.noreply.github.com> * Fix typos in agents_advanced.md (#34405) * [docs] Cache implementations (#34325) cache * [run-slow] hubert * Support BatchNorm in Hubert pos_conv_emb as in fairseq Add conversion integration test, and make batchnorm explicit variable * Support BatchNorm in Hubert pos_conv_emb as in fairseq fix make fixup styling changes * [run-slow] hubert * Support BatchNorm in Hubert pos_conv_emb as in fairseq * [run-slow] hubert * Support BatchNorm in Hubert pos_conv_emb as in fairseq Add conversion integration test, and make batchnorm explicit variable * Support BatchNorm in Hubert pos_conv_emb as in fairseq fix make fixup styling changes * [run-slow] hubert * [run-slow] hubert --------- Co-authored-by: Cyril Vallez <cyril.vallez@huggingface.co> Co-authored-by: Yih-Dar <2521628+ydshieh@users.noreply.github.com> Co-authored-by: ydshieh <ydshieh@users.noreply.github.com> Co-authored-by: Yoni Gozlan <74535834+yonigozlan@users.noreply.github.com> Co-authored-by: Ilyas Moutawwakil <57442720+IlyasMoutawwakil@users.noreply.github.com> Co-authored-by: Raushan Turganbay <raushan@huggingface.co> Co-authored-by: Joao Gante <joaofranciscocardosogante@gmail.com> Co-authored-by: Matthew Douglas <38992547+matthewdouglas@users.noreply.github.com> Co-authored-by: Rudy Delouya <rudy.delouya@gmail.com> Co-authored-by: Steven Liu <59462357+stevhliu@users.noreply.github.com> Co-authored-by: Yoach Lacombe <52246514+ylacombe@users.noreply.github.com>

What does this PR do?
Unlike most other image-text-to-text models, Idefics2 and Idefics3 do not support inputs such as:
images=[image1, image2], text=["text1 <image>", "text2 <image>"]But needs images to be nested to follow the number of tokens in each prompt:
images=[[image1], [image2]], text=["text1 <image>", "text2 <image>"]This PR adds support for the former, and also for deducing the nesting of a flat image lists to follow the number of image tokens in each prompt, meaning that this is also supported:
images=[image1, image2, image3], text=["text1 <image>", "text2 <image><image>"]This is done mostly to have a consistent batching behavior in the image-text-to-text pipeline between Idefics2/3 and other models.
Who can review?
@andimarafioti