Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to Transformers v4.49 #1698

Draft
wants to merge 126 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
5e88ce7
Upgrade to commit 74e19e81e2a23809af192532b9b0e7ea202be6f2
regisss Aug 28, 2024
43bc4eb
Merge branch 'main' into transformers_future
regisss Sep 2, 2024
8eea643
Add specific commit in setup.py
regisss Sep 3, 2024
a7be363
Upgrade to commit e48e5f1f13e05380e24f4f31f5fee07aa6f959eb
regisss Sep 6, 2024
f0b909a
Merge branch 'main' into transformers_future
regisss Sep 6, 2024
d99f18f
Fix default cache
regisss Sep 9, 2024
39b7a76
Merge branch 'main' into transformers_future
regisss Sep 9, 2024
da66ecf
Merge branch 'main' into transformers_future
regisss Sep 9, 2024
5547767
Merge branch 'main' into transformers_future
regisss Sep 10, 2024
bf89e41
Merge branch 'main' into transformers_future
regisss Sep 10, 2024
98b0da5
Merge branch 'main' into transformers_future
regisss Sep 24, 2024
47ad03c
Upgrade to commit 238b13478df209ab534f2195a397dc64a3930883
regisss Sep 24, 2024
94c23ba
Fix
regisss Sep 24, 2024
c19dedd
Upgrade to v4.45.0
regisss Sep 25, 2024
c12fd7e
Merge branch 'main' into transformers_future
regisss Sep 25, 2024
fc399fa
Fix
regisss Sep 25, 2024
9216159
Add bias to gptj (#1363)
jiminha Sep 26, 2024
679365a
Switch roberta from sdpa to eager attn (#1361)
skaulintel Sep 26, 2024
1abd6ee
Update bloom attention forward reshape follwing the transformer chang…
yeonsily Sep 26, 2024
8043d2c
Workaround for Llava/Llava-next
regisss Sep 26, 2024
047e7ff
Fix reshape error in mamba (#1369)
hsubramony Sep 28, 2024
f89e03b
Merge branch 'main' into transformers_future
regisss Sep 30, 2024
2ae546a
Merge branch 'main' into transformers_future
regisss Sep 30, 2024
1b8a3f7
Fix contrastive search
regisss Oct 1, 2024
2332afb
Fix local variable 'image_features' referenced before assignment (#1383)
vidyasiv Oct 1, 2024
f62ecde
Use model.generation_config instead of model.config (#1384)
hsubramony Oct 2, 2024
a8fb8ac
Make style
regisss Oct 2, 2024
c7ff331
Merge branch 'main' into transformers_future
regisss Jan 3, 2025
dd07c16
Upgrade to Transformers v4.47.1
regisss Jan 7, 2025
1924c89
Fix Transformers version to install
regisss Jan 8, 2025
f0926ae
Temporary workaround for GaudiTrainer
regisss Jan 9, 2025
e50e179
Fixes for text generation
regisss Jan 10, 2025
c804270
Set eager attention for distilbert, gpt_neox
regisss Jan 10, 2025
0000de5
Upgrade to Transformers v4.48
regisss Jan 15, 2025
2a3affa
Small fixes
regisss Jan 15, 2025
064f4c1
Fix integration tests
regisss Jan 15, 2025
21714f7
Fixes for text-generation
regisss Jan 16, 2025
1cfd53b
Fixes
regisss Jan 16, 2025
573cc57
Style
regisss Jan 16, 2025
a7bc517
Again
regisss Jan 16, 2025
3d402ea
Merge branch 'main' into transformers_future
regisss Jan 16, 2025
f69e957
Fix for image2text lora llama test (#1731)
vidyasiv Jan 28, 2025
265e6a1
Cherry-pick https://github.com/huggingface/transformers/pull/35651
regisss Jan 17, 2025
6dad1c4
Merge branch 'main' into transformers_future
regisss Jan 30, 2025
32478f5
Upgrade to Transformers v4.48.2
regisss Jan 31, 2025
1b79cf3
Fix deprecated imports following merged changes for DETR and Qwen2-VL
regisss Jan 31, 2025
c1f30d8
Workaround for textual inversion
regisss Jan 31, 2025
1460856
Merge branch 'main' into transformers_future
regisss Jan 31, 2025
7eadac6
Fixes for v4.48 pytest (#1699)
imangohari1 Jan 31, 2025
5cee218
fea(): Applied changes in HF #35235 (#1738)
imangohari1 Jan 31, 2025
417cbee
Merge branch 'main' into transformers_future
regisss Jan 31, 2025
c1e3232
Merge branch 'main' into transformers_future
regisss Feb 3, 2025
0f68bbb
Merge branch 'main' into transformers_future
regisss Feb 4, 2025
17943de
Removing HL_DS_DISTRIBUTED_ATTENTION_SEQ_DIM as it's not needed from …
bhargaveede Feb 5, 2025
d214819
Update DS config to align with recommended settings (#1730)
ckvermaAI Feb 5, 2025
6a520ff
Fix graph breaks in Mixtral (#65) (#1705)
Solaryee Feb 5, 2025
58de6b6
Merge branch 'main' into synapse_1_20
regisss Feb 5, 2025
bedc041
Add batch dim idx to support latest deepspeed DistributedAttention (…
bhargaveede Feb 6, 2025
ce57e40
Add _prepare_inputs_for_generation (#1743)
yafshar Feb 7, 2025
ef77fac
Merge branch 'main' into synapse_1_20
regisss Feb 7, 2025
be34027
Upgrade to v4.48.3
regisss Feb 7, 2025
bd9a60e
Fix the issue with --load_quantized_model_with_autoawq (#1747)
schoi-habana Feb 7, 2025
fc6a92b
Merge branch 'main' into synapse_1_20
regisss Feb 7, 2025
01bb4af
Merge branch 'synapse_1_20' into transformers_future
regisss Feb 7, 2025
2f665e8
Fix dpo crash in transformers 4.48 (#1750)
sywangyi Feb 12, 2025
595b816
Fix for Falcon image-to-text crash (#1760)
schoi-habana Feb 12, 2025
f3729a4
Fix llama attr (#1771)
atakaha Feb 12, 2025
bcb0778
Update llama scaling (#1775)
atakaha Feb 12, 2025
bd87113
Merge branch 'main' into synapse_1_20
regisss Feb 12, 2025
a13b5d2
Merge branch 'synapse_1_20' into transformers_future
regisss Feb 12, 2025
ce1bf08
Merge branch 'main' into synapse_1_20
regisss Feb 14, 2025
9b8bb2e
Merge branch 'synapse_1_20' into transformers_future
regisss Feb 14, 2025
d053218
Fix loss calculation (Workaround), final fix TBD (#1784)
emascarenhas Feb 14, 2025
8044aa4
Merge branch 'main' into synapse_1_20
regisss Feb 17, 2025
fe01ca2
Merge branch 'synapse_1_20' into transformers_future
regisss Feb 17, 2025
8b006c4
Simplify text-gen readme (#1780)
libinta Feb 18, 2025
0eb5d79
Merge branch 'main' into synapse_1_20
regisss Feb 18, 2025
a03f1d0
Merge branch 'synapse_1_20' into transformers_future
regisss Feb 18, 2025
6772b4f
Diffusers: Simplified the README files. Updated CI tests. (#1718)
imangohari1 Feb 20, 2025
06644af
Merge branch 'main' into synapse_1_20
regisss Feb 20, 2025
244b19e
Merge branch 'synapse_1_20' into transformers_future
regisss Feb 20, 2025
9279ab1
Merge branch 'main' into synapse_1_20
regisss Feb 21, 2025
5c7fea2
Merge branch 'synapse_1_20' into transformers_future
regisss Feb 21, 2025
fe65b05
Switch version number
regisss Feb 21, 2025
523370d
Merge branch 'main' into synapse_1_20
regisss Feb 21, 2025
3dfceb9
Merge branch 'main' into synapse_1_20
regisss Feb 26, 2025
836961e
Merge branch 'main' into synapse_1_20
regisss Feb 26, 2025
ffda2a0
Temporary WA for get_type error (#1806)
12010486 Feb 28, 2025
2688527
Merge branch 'main' into transformers_future
regisss Feb 28, 2025
167a218
Loss Computation for Compatibility with Transformers 4.48.3 (#1794)
yafshar Mar 5, 2025
379524c
Move model to device before wrapping with FSDP (#1801)
mieshkiwrk Mar 5, 2025
3197dd8
Merge branch 'main' into synapse_1_20
regisss Mar 5, 2025
46bad3b
v1.16 Llama3-405B text-generation. Added DEEPSPEED_USE_HABANA_FRAMEWO…
dsmertin Mar 5, 2025
0078227
Make style
regisss Mar 6, 2025
9b7ca11
Merge branch 'synapse_1_20' into transformers_future
regisss Mar 6, 2025
6d575e8
Merge branch 'main' into synapse_1_20
regisss Mar 6, 2025
73be6a2
Merge branch 'synapse_1_20' into transformers_future
regisss Mar 6, 2025
81f33ed
Revert placing llama on cpu (#1827)
ugolowic Mar 6, 2025
b46ed25
Merge branch 'synapse_1_20' into transformers_future
regisss Mar 7, 2025
73dd3ed
Merge branch 'main' into synapse_1_20
regisss Mar 7, 2025
4527647
Merge branch 'synapse_1_20' into transformers_future
regisss Mar 7, 2025
d0b54b8
Merge branch 'main' into transformers_future
regisss Mar 10, 2025
195fdf8
Fix contrastive search
regisss Mar 11, 2025
38f59eb
Merge branch 'main' into transformers_future
regisss Mar 12, 2025
b6602f7
Merge branch 'main' into transformers_future
regisss Mar 13, 2025
2f98dec
Merge branch 'main' into transformers_future
regisss Mar 13, 2025
45dc3aa
Merge branch 'main' into transformers_future
regisss Mar 14, 2025
a22b821
Upgrade to Transformers v4.49 (#1810)
regisss Mar 14, 2025
dd42c92
Fix `get_num_items_in_batches` for iterable datasets and when resumin…
regisss Mar 14, 2025
69f7e6d
Fixes pytest runtime error - Incompatible input shapes, broadcast not…
srajabos Mar 14, 2025
50d1f2e
Merge branch 'main' into transformers_future
regisss Mar 14, 2025
d0d0172
Fix for AutoModelForCausalLM.from_pretrained() (#1844)
dsmertin Mar 14, 2025
adbaa23
Fix unexpected 'num_items_in_batch' argument in GPT-NeoX forward (#1850)
mounikamandava Mar 14, 2025
e802f5f
Make style
regisss Mar 14, 2025
f461199
Fix for `GaudiLlamaAttention` object has no attribute 'max_position_e…
12010486 Mar 17, 2025
9cf57be
Fix error with TRL examples
regisss Mar 17, 2025
b780d70
[skip ci] Merge branch 'main' into transformers_future
regisss Mar 18, 2025
dbd987b
Adjust precision of eval_accuracy to avoid random failure in pytest f…
hchauhan123 Mar 19, 2025
78e50b9
Missing num_key_value_heads attribute in GaudiGemmaAttention (#1861)
hsubramony Mar 19, 2025
bff3803
Update Sentence Transformer CI/Ref (#1862)
ZhengHongming888 Mar 19, 2025
5d2fbde
Fix typo in modeling llama (#1864)
hsubramony Mar 20, 2025
0ec8b04
fea(): Added the updated skip list for mistral/mixtral tests (#1863)
imangohari1 Mar 20, 2025
639f96d
Fix llama internal bucketing issue (#1871)
dsocek Mar 21, 2025
f3124e7
Fix regression for test_run_image2text_lora_finetune_idefics2-8b_mult…
srajabos Mar 21, 2025
bbada81
Revert "Move model to device before wrapping with FSDP (#1801)" (#1865)
12010486 Mar 24, 2025
677acbe
Fix Qwen2 gradient checkpointing
regisss Mar 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -292,11 +292,11 @@ The following model architectures, tasks and device distributions have been vali

| Architecture | Training | Inference | Tasks |
|:--------------------|:--------:|:---------:|:------|
| Stable Diffusion | :heavy_check_mark: | :heavy_check_mark: | <li>[text-to-image generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#stable-diffusion)</li><li>[image-to-image generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#stable-diffusion-based-image-to-image)</li> |
| Stable Diffusion | :heavy_check_mark: | :heavy_check_mark: | <li>[text-to-image generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#text-to-image-generation)</li><li>[image-to-image generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#image-to-image-generation)</li> |
| Stable Diffusion XL | :heavy_check_mark: | :heavy_check_mark: | <li>[text-to-image generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#stable-diffusion-xl-sdxl)</li><li>[image-to-image generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#stable-diffusion-xl-refiner)</li> |
| Stable Diffusion Depth2img | | <li>Single card</li> | <li>[depth-to-image generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#depth-to-image-generation)</li> |
| Stable Diffusion 3 | | <li>Single card</li> | <li>[text-to-image generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#stable-diffusion-3-sd3)</li> |
| LDM3D | | <li>Single card</li> | <li>[text-to-image generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#latent-diffusion-model-for-3d-ldm3d)</li> |
| Stable Diffusion Depth2img | | <li>Single card</li> | <li>[depth-to-image generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion)</li> |
| Stable Diffusion 3 | | <li>Single card</li> | <li>[text-to-image generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#stable-diffusion-3-and-35-sd3)</li> |
| LDM3D | | <li>Single card</li> | <li>[text-to-image generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#text-to-image-generation)</li> |
| FLUX.1 | <li>LoRA</li> | <li>Single card</li> | <li>[text-to-image generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#flux1)</li><li>[image-to-image generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#flux1-image-to-image)</li> |
| Text to Video | | <li>Single card</li> | <li>[text-to-video generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#text-to-video-generation)</li> |
| Image to Video | | <li>Single card</li> | <li>[image-to-video generation](https://github.com/huggingface/optimum-habana/tree/main/examples/stable-diffusion#image-to-video-generation)</li> |
Expand Down
4 changes: 2 additions & 2 deletions examples/audio-classification/run_audio_classification.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def check_optimum_habana_min_version(*a, **b):
logger = logging.getLogger(__name__)

# Will error if the minimal version of Transformers and Optimum Habana are not installed. Remove at your own risks.
check_min_version("4.45.0")
check_min_version("4.49.0")
check_optimum_habana_min_version("1.17.0.dev0")

require_version("datasets>=1.14.0", "To fix: pip install -r examples/pytorch/audio-classification/requirements.txt")
Expand Down Expand Up @@ -432,7 +432,7 @@ def compute_metrics(eval_pred):
train_dataset=raw_datasets["train"] if training_args.do_train else None,
eval_dataset=raw_datasets["eval"] if training_args.do_eval else None,
compute_metrics=compute_metrics,
tokenizer=feature_extractor,
processing_class=feature_extractor,
)

# Training
Expand Down
49 changes: 2 additions & 47 deletions examples/contrastive-image-text/run_bridgetower.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def check_optimum_habana_min_version(*a, **b):
logger = logging.getLogger(__name__)

# Will error if the minimal version of Transformers and Optimum Habana are not installed. Remove at your own risks.
check_min_version("4.45.0")
check_min_version("4.49.0")
check_optimum_habana_min_version("1.17.0.dev0")

require_version("datasets>=1.8.0", "To fix: pip install -r examples/pytorch/contrastive-image-text/requirements.txt")
Expand Down Expand Up @@ -153,10 +153,6 @@ class DataTrainingArguments:
default=None,
metadata={"help": "An optional input evaluation data file (a jsonlines file)."},
)
test_file: Optional[str] = field(
default=None,
metadata={"help": "An optional input testing data file (a jsonlines file)."},
)
max_seq_length: Optional[int] = field(
default=128,
metadata={
Expand Down Expand Up @@ -205,9 +201,6 @@ def __post_init__(self):
if self.validation_file is not None:
extension = self.validation_file.split(".")[-1]
assert extension in ["csv", "json"], "`validation_file` should be a csv or a json file."
if self.test_file is not None:
extension = self.test_file.split(".")[-1]
assert extension in ["csv", "json"], "`test_file` should be a csv or a json file."


dataset_name_mapping = {
Expand Down Expand Up @@ -340,9 +333,6 @@ def main():
if data_args.validation_file is not None:
data_files["validation"] = data_args.validation_file
extension = data_args.validation_file.split(".")[-1]
if data_args.test_file is not None:
data_files["test"] = data_args.test_file
extension = data_args.test_file.split(".")[-1]
dataset = load_dataset(
extension,
data_files=data_files,
Expand Down Expand Up @@ -426,8 +416,6 @@ def _freeze_params(module):
column_names = dataset["train"].column_names
elif training_args.do_eval:
column_names = dataset["validation"].column_names
elif training_args.do_predict:
column_names = dataset["test"].column_names
else:
logger.info("There is nothing to do. Please pass `do_train`, `do_eval` and/or `do_predict`.")
return
Expand Down Expand Up @@ -549,33 +537,6 @@ def transform_images(examples):
# Transform images on the fly as doing it on the whole dataset takes too much time.
eval_dataset.set_transform(transform_images)

if training_args.do_predict:
if "test" not in dataset:
raise ValueError("--do_predict requires a test dataset")
test_dataset = dataset["test"]
if data_args.max_eval_samples is not None:
max_eval_samples = min(len(test_dataset), data_args.max_eval_samples)
test_dataset = test_dataset.select(range(max_eval_samples))

test_dataset = test_dataset.map(
function=tokenize_captions,
batched=True,
num_proc=data_args.preprocessing_num_workers,
remove_columns=[col for col in column_names if col != image_column],
load_from_cache_file=not data_args.overwrite_cache,
desc="Running tokenizer on test dataset",
)

if data_args.mediapipe_dataloader:
test_dataset.image_mean = image_processor.image_mean
test_dataset.image_std = image_processor.image_std
test_dataset.text_max_length = data_args.max_seq_length
test_dataset.image_resize = config.vision_config.image_size
test_dataset.transform_func = transform_images
else:
# Transform images on the fly as doing it on the whole dataset takes too much time.
test_dataset.set_transform(transform_images)

# 8. Initialize our trainer
trainer_cls = HabanaDataloaderTrainer if data_args.mediapipe_dataloader else GaudiTrainer
trainer = trainer_cls(
Expand Down Expand Up @@ -608,13 +569,7 @@ def transform_images(examples):
trainer.log_metrics("validation", metrics)
trainer.save_metrics("validation", metrics)

# 11. Test
if training_args.do_predict:
metrics = trainer.evaluate(eval_dataset=test_dataset)
trainer.log_metrics("test", metrics)
trainer.save_metrics("test", metrics)

# 12. Write Training Stats and push to hub.
# 11. Write Training Stats and push to hub.
finetuned_from = model_args.model_name_or_path
# If from a local directory, don't set `finetuned_from` as this is required to be a valid repo. id on the Hub.
if os.path.isdir(finetuned_from):
Expand Down
46 changes: 1 addition & 45 deletions examples/contrastive-image-text/run_clip.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def check_optimum_habana_min_version(*a, **b):
logger = logging.getLogger(__name__)

# Will error if the minimal version of Transformers and Optimum Habana are not installed. Remove at your own risks.
check_min_version("4.45.0")
check_min_version("4.49.0")
check_optimum_habana_min_version("1.17.0.dev0")

require_version("datasets>=1.8.0", "To fix: pip install -r examples/pytorch/contrastive-image-text/requirements.txt")
Expand Down Expand Up @@ -149,10 +149,6 @@ class DataTrainingArguments:
default=None,
metadata={"help": "An optional input evaluation data file (a jsonlines file)."},
)
test_file: Optional[str] = field(
default=None,
metadata={"help": "An optional input testing data file (a jsonlines file)."},
)
max_seq_length: Optional[int] = field(
default=128,
metadata={
Expand Down Expand Up @@ -201,9 +197,6 @@ def __post_init__(self):
if self.validation_file is not None:
extension = self.validation_file.split(".")[-1]
assert extension in ["csv", "json"], "`validation_file` should be a csv or a json file."
if self.test_file is not None:
extension = self.test_file.split(".")[-1]
assert extension in ["csv", "json"], "`test_file` should be a csv or a json file."


dataset_name_mapping = {
Expand Down Expand Up @@ -335,9 +328,6 @@ def main():
if data_args.validation_file is not None:
data_files["validation"] = data_args.validation_file
extension = data_args.validation_file.split(".")[-1]
if data_args.test_file is not None:
data_files["test"] = data_args.test_file
extension = data_args.test_file.split(".")[-1]
dataset = load_dataset(
extension,
data_files=data_files,
Expand Down Expand Up @@ -407,8 +397,6 @@ def _freeze_params(module):
column_names = dataset["train"].column_names
elif training_args.do_eval:
column_names = dataset["validation"].column_names
elif training_args.do_predict:
column_names = dataset["test"].column_names
else:
logger.info("There is nothing to do. Please pass `do_train`, `do_eval` and/or `do_predict`.")
return
Expand Down Expand Up @@ -523,38 +511,6 @@ def filter_corrupt_images(examples):
# Transform images on the fly as doing it on the whole dataset takes too much time.
eval_dataset.set_transform(transform_images)

if training_args.do_predict:
if "test" not in dataset:
raise ValueError("--do_predict requires a test dataset")
test_dataset = dataset["test"]
if data_args.max_eval_samples is not None:
max_eval_samples = min(len(test_dataset), data_args.max_eval_samples)
test_dataset = test_dataset.select(range(max_eval_samples))

test_dataset = test_dataset.filter(
filter_corrupt_images, batched=True, num_proc=data_args.preprocessing_num_workers
)
test_dataset = test_dataset.map(
function=tokenize_captions,
batched=True,
num_proc=data_args.preprocessing_num_workers,
remove_columns=[col for col in column_names if col != image_column],
load_from_cache_file=not data_args.overwrite_cache,
desc="Running tokenizer on test dataset",
)

# Transform images on the fly as doing it on the whole dataset takes too much time.
test_dataset.set_transform(transform_images)
if data_args.mediapipe_dataloader:
test_dataset.image_mean = image_processor.image_mean
test_dataset.image_std = image_processor.image_std
test_dataset.text_max_length = data_args.max_seq_length
test_dataset.image_resize = config.vision_config.image_size
test_dataset.transform_func = transform_images
else:
# Transform images on the fly as doing it on the whole dataset takes too much time.
test_dataset.set_transform(transform_images)

# 8. Initialize our trainer
trainer_cls = HabanaDataloaderTrainer if data_args.mediapipe_dataloader else GaudiTrainer
trainer = trainer_cls(
Expand Down
58 changes: 32 additions & 26 deletions examples/image-classification/run_image_classification.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
AutoImageProcessor,
AutoModelForImageClassification,
HfArgumentParser,
TimmWrapperImageProcessor,
)
from transformers.trainer_utils import get_last_checkpoint
from transformers.utils import check_min_version, send_example_telemetry
Expand All @@ -63,7 +64,7 @@ def check_optimum_habana_min_version(*a, **b):
logger = logging.getLogger(__name__)

# Will error if the minimal version of Transformers and Optimum Habana are not installed. Remove at your own risks.
check_min_version("4.45.0")
check_min_version("4.49.0")
check_optimum_habana_min_version("1.17.0.dev0")

require_version("datasets>=2.14.0", "To fix: pip install -r examples/pytorch/image-classification/requirements.txt")
Expand Down Expand Up @@ -346,31 +347,36 @@ def compute_metrics(p):
)

# Define torchvision transforms to be applied to each image.
if "shortest_edge" in image_processor.size:
size = image_processor.size["shortest_edge"]
if isinstance(image_processor, TimmWrapperImageProcessor):
_train_transforms = image_processor.train_transforms
_val_transforms = image_processor.val_transforms
else:
size = (image_processor.size["height"], image_processor.size["width"])
normalize = (
Normalize(mean=image_processor.image_mean, std=image_processor.image_std)
if hasattr(image_processor, "image_mean") and hasattr(image_processor, "image_std")
else Lambda(lambda x: x)
)
_train_transforms = Compose(
[
RandomResizedCrop(size),
RandomHorizontalFlip(),
ToTensor(),
normalize,
]
)
_val_transforms = Compose(
[
Resize(size),
CenterCrop(size),
ToTensor(),
normalize,
]
)
if "shortest_edge" in image_processor.size:
size = image_processor.size["shortest_edge"]
else:
size = (image_processor.size["height"], image_processor.size["width"])

# Create normalization transform
if hasattr(image_processor, "image_mean") and hasattr(image_processor, "image_std"):
normalize = Normalize(mean=image_processor.image_mean, std=image_processor.image_std)
else:
normalize = Lambda(lambda x: x)
_train_transforms = Compose(
[
RandomResizedCrop(size),
RandomHorizontalFlip(),
ToTensor(),
normalize,
]
)
_val_transforms = Compose(
[
Resize(size),
CenterCrop(size),
ToTensor(),
normalize,
]
)

def train_transforms(example_batch):
"""Apply _train_transforms across a batch."""
Expand Down Expand Up @@ -414,7 +420,7 @@ def val_transforms(example_batch):
train_dataset=dataset["train"] if training_args.do_train else None,
eval_dataset=dataset["validation"] if training_args.do_eval else None,
compute_metrics=compute_metrics,
tokenizer=image_processor,
processing_class=image_processor,
data_collator=collate_fn,
)

Expand Down
13 changes: 5 additions & 8 deletions examples/image-to-text/run_image2text_lora_finetune.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ def check_optimum_habana_min_version(*a, **b):
logger = logging.getLogger(__name__)

# Will error if the minimal version of Optimum Habana is not installed. Remove at your own risks.
check_optimum_habana_min_version("1.10.0")
check_optimum_habana_min_version("1.16.0.dev0")


def normalized_levenshtein(s1, s2):
Expand Down Expand Up @@ -382,8 +382,8 @@ def eval(processor, model, dataset, batch_size, use_lazy_mode, use_hpu_graphs, m
images,
texts,
return_tensors="pt",
padding="max_length",
truncation=True,
padding=True,
truncation=False,
max_length=max_seq_length,
padding_side="left",
)
Expand Down Expand Up @@ -611,15 +611,12 @@ def main():
text = processor.apply_chat_template(messages, add_generation_prompt=True)

if config.model_type == "llava":
# don't expand image_token_id
setattr(processor, "patch_size", None)
setattr(processor, "vision_feature_select_strategy", None)
inputs = processor(
[image],
[text.strip()],
return_tensors="pt",
padding="max_length",
truncation=True,
padding=True,
truncation=False,
max_length=data_args.max_seq_length,
padding_side="left",
)
Expand Down
1 change: 1 addition & 0 deletions examples/image-to-text/run_pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,7 @@ def main():
if "falcon-11B-vlm" in args.model_name_or_path:
# WA falcon vlm issue that image_token_id == embed size.
generator.model.resize_token_embeddings(generator.tokenizer.vocab_size + 1)
processor.patch_size = config.vision_config.patch_size
generate_kwargs = {
"lazy_mode": True,
"hpu_graphs": args.use_hpu_graphs,
Expand Down
11 changes: 8 additions & 3 deletions examples/language-modeling/run_clm.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ def check_optimum_habana_min_version(*a, **b):
logger = logging.getLogger(__name__)

# Will error if the minimal version of Transformers and Optimum Habana are not installed. Remove at your own risks.
check_min_version("4.45.0")
check_min_version("4.49.0")
check_optimum_habana_min_version("1.17.0.dev0")

require_version("datasets>=2.14.0", "To fix: pip install -r examples/pytorch/language-modeling/requirements.txt")
Expand Down Expand Up @@ -459,7 +459,7 @@ def main():

# Note that chatglm2/3 has float16 dtype from config.json, and on Gaudi we need to use bfloat16.
if config.model_type == "chatglm":
config.dtype = "torch.bfloat16"
config.torch_dtype = torch.bfloat16

tokenizer_kwargs = {
"cache_dir": model_args.cache_dir,
Expand All @@ -484,6 +484,11 @@ def main():
if model_args.torch_dtype in ["auto", None]
else getattr(torch, model_args.torch_dtype)
)
# workaraund for https://github.com/huggingface/transformers/issues/36258
# TODO: remove after fix is avalible in a release version of `transformers``
if torch_dtype is None:
torch_dtype = getattr(config, "torch_dtype", None)

model = AutoModelForCausalLM.from_pretrained(
model_args.model_name_or_path,
from_tf=bool(".ckpt" in model_args.model_name_or_path),
Expand Down Expand Up @@ -664,7 +669,7 @@ def compute_metrics(eval_preds):
args=training_args,
train_dataset=train_dataset if training_args.do_train else None,
eval_dataset=eval_dataset if training_args.do_eval else None,
tokenizer=tokenizer,
processing_class=tokenizer,
# Data collator will default to DataCollatorWithPadding, so we change it.
data_collator=default_data_collator,
compute_metrics=compute_metrics if training_args.do_eval else None,
Expand Down
Loading
Loading