From 5fabebdb7d4f9ee5a6459f7c0dcde0b1901f6205 Mon Sep 17 00:00:00 2001 From: Yih-Dar <2521628+ydshieh@users.noreply.github.com> Date: Tue, 16 Apr 2024 21:25:06 +0200 Subject: [PATCH] Fix test fetcher (doctest) + `Idefics2`'s doc example (#30274) fix Co-authored-by: ydshieh --- .../models/idefics2/modeling_idefics2.py | 13 +++++-------- utils/tests_fetcher.py | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/transformers/models/idefics2/modeling_idefics2.py b/src/transformers/models/idefics2/modeling_idefics2.py index 32d707ae66a370..3f39882f3053e9 100644 --- a/src/transformers/models/idefics2/modeling_idefics2.py +++ b/src/transformers/models/idefics2/modeling_idefics2.py @@ -1786,17 +1786,13 @@ def forward( >>> from transformers import AutoProcessor, AutoModelForVision2Seq >>> from transformers.image_utils import load_image - >>> DEVICE = "cuda:0" - >>> # Note that passing the image urls (instead of the actual pil images) to the processor is also possible >>> image1 = load_image("https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg") >>> image2 = load_image("https://cdn.britannica.com/59/94459-050-DBA42467/Skyline-Chicago.jpg") >>> image3 = load_image("https://cdn.britannica.com/68/170868-050-8DDE8263/Golden-Gate-Bridge-San-Francisco.jpg") >>> processor = AutoProcessor.from_pretrained("HuggingFaceM4/idefics2-8b-base") - >>> model = AutoModelForVision2Seq.from_pretrained( - ... "HuggingFaceM4/idefics2-8b-base", - >>> ).to(DEVICE) + >>> model = AutoModelForVision2Seq.from_pretrained("HuggingFaceM4/idefics2-8b-base", device_map="auto") >>> BAD_WORDS_IDS = processor.tokenizer(["", ""], add_special_tokens=False).input_ids >>> EOS_WORDS_IDS = [processor.tokenizer.eos_token_id] @@ -1805,15 +1801,16 @@ def forward( >>> prompts = [ ... "In this image, we can see the city of New York, and more specifically the Statue of Liberty.In this image,", ... "In which city is that bridge located?", - >>> ] + ... ] >>> images = [[image1, image2], [image3]] - >>> inputs = processor(text=prompts, padding=True, return_tensors="pt").to(DEVICE) + >>> inputs = processor(text=prompts, padding=True, return_tensors="pt").to("cuda") >>> # Generate - >>> generated_ids = model.generate(**inputs, bad_words_ids=BAD_WORDS_IDS, max_new_tokens=500) + >>> generated_ids = model.generate(**inputs, bad_words_ids=BAD_WORDS_IDS, max_new_tokens=20) >>> generated_texts = processor.batch_decode(generated_ids, skip_special_tokens=True) >>> print(generated_texts) + ['In this image, we can see the city of New York, and more specifically the Statue of Liberty. In this image, we can see the city of New York, and more specifically the Statue of Liberty.\n\n', 'In which city is that bridge located?\n\nThe bridge is located in the city of Pittsburgh, Pennsylvania.\n\n\nThe bridge is'] ```""" output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions diff --git a/utils/tests_fetcher.py b/utils/tests_fetcher.py index 60a1c8f53c1fda..c75479757bca81 100644 --- a/utils/tests_fetcher.py +++ b/utils/tests_fetcher.py @@ -507,7 +507,7 @@ def get_all_doctest_files() -> List[str]: # change to use "/" as path separator test_files_to_run = ["/".join(Path(x).parts) for x in test_files_to_run] # don't run doctest for files in `src/transformers/models/deprecated` - test_files_to_run = [x for x in test_files_to_run if "models/deprecated" not in test_files_to_run] + test_files_to_run = [x for x in test_files_to_run if "models/deprecated" not in x] # only include files in `src` or `docs/source/en/` test_files_to_run = [x for x in test_files_to_run if x.startswith(("src/", "docs/source/en/"))]