Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
e6980cb
Update `setup.py` and examples to Transformers v4.51
regisss Apr 18, 2025
9786545
Upgrade `generation/utils.py` to v4.51.3 (except `_beam_search`, will…
regisss Apr 18, 2025
0cd573e
Upgrade to Transformers v4.51
regisss Apr 21, 2025
34f32a9
Fixes
regisss Apr 21, 2025
94be78d
Merge branch 'main' into transformers_future
regisss Apr 21, 2025
25b053c
Fix AWQ requirements
regisss Apr 22, 2025
ef27edc
Merge branch 'main' into transformers_future
regisss Apr 30, 2025
071fb63
Beam search
regisss Apr 30, 2025
b4e3ed3
Make style
regisss Apr 30, 2025
831bfae
Text-generation fix
regisss Apr 30, 2025
0947f5b
1x tests fix
regisss May 5, 2025
85ec584
Merge branch 'main' into transformers_future
regisss May 8, 2025
8b2e896
Fix 8x tests
regisss May 8, 2025
7ef7282
Merge branch 'main' into transformers_future
regisss May 20, 2025
452b66a
Merge branch 'main' into transformers_future
regisss May 22, 2025
762c08f
Fix 8x tests
regisss May 22, 2025
1c91d3f
Fix mllama test
regisss May 29, 2025
4636aef
Merge branch 'main' into transformers_future
IlyasMoutawwakil Jun 11, 2025
31bf07e
Fix CI tests
regisss May 30, 2025
3805cea
Merge branch 'main' into transformers_future
regisss Jun 13, 2025
01dc42d
Merge branch 'main' into transformers_future
regisss Jun 23, 2025
c0893c2
Merge branch 'main' into transformers_future
regisss Jun 26, 2025
f0a5945
Merge branch 'main' into transformers_future
regisss Aug 11, 2025
3515a12
Update examples
regisss Aug 11, 2025
d4960e7
generation + integrations + loss folders
regisss Aug 11, 2025
91e29c4
models
regisss Aug 13, 2025
5b39327
trainer + tests
regisss Aug 13, 2025
5450d7a
Fix tests + comment remote models (to fix later)
regisss Aug 18, 2025
f8aa93a
Fix decilm
regisss Aug 18, 2025
f1de537
Fix deepseek_v2
regisss Aug 18, 2025
4d0d67c
finish model updates
regisss Aug 19, 2025
41fc61c
Upgrade to v4.55.2
regisss Aug 19, 2025
1316366
Merge branch 'main' into transformers_future
regisss Aug 21, 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
2 changes: 1 addition & 1 deletion examples/audio-classification/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
datasets>=1.14.0
datasets[audio]>=1.14.0
evaluate
numba==0.60.0
librosa
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 @@ -45,8 +45,8 @@ 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.51.0")
check_optimum_habana_min_version("1.18.0.dev0")
check_min_version("4.55.0")
check_optimum_habana_min_version("1.19.0.dev0")

require_version("datasets>=1.14.0", "To fix: pip install -r examples/pytorch/audio-classification/requirements.txt")

Expand Down
4 changes: 2 additions & 2 deletions examples/contrastive-image-text/run_bridgetower.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ 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.51.0")
check_optimum_habana_min_version("1.18.0.dev0")
check_min_version("4.55.0")
check_optimum_habana_min_version("1.19.0.dev0")

require_version("datasets>=1.8.0", "To fix: pip install -r examples/pytorch/contrastive-image-text/requirements.txt")

Expand Down
4 changes: 2 additions & 2 deletions examples/contrastive-image-text/run_clip.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ 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.51.0")
check_optimum_habana_min_version("1.18.0.dev0")
check_min_version("4.55.0")
check_optimum_habana_min_version("1.19.0.dev0")

require_version("datasets>=1.8.0", "To fix: pip install -r examples/pytorch/contrastive-image-text/requirements.txt")

Expand Down
4 changes: 2 additions & 2 deletions examples/image-classification/run_image_classification.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ 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.51.0")
check_optimum_habana_min_version("1.18.0.dev0")
check_min_version("4.55.0")
check_optimum_habana_min_version("1.19.0.dev0")

require_version("datasets>=2.14.0", "To fix: pip install -r examples/pytorch/image-classification/requirements.txt")

Expand Down
2 changes: 1 addition & 1 deletion 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.18.0.dev0")
check_optimum_habana_min_version("1.19.0.dev0")


def normalized_levenshtein(s1, s2):
Expand Down
168 changes: 114 additions & 54 deletions examples/language-modeling/run_clm.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
import evaluate
import torch
import transformers
from datasets import load_dataset
from datasets import IterableDataset, IterableDatasetDict, load_dataset
from transformers import (
CONFIG_MAPPING,
MODEL_FOR_CAUSAL_LM_MAPPING,
Expand Down Expand Up @@ -61,8 +61,8 @@ 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.51.0")
check_optimum_habana_min_version("1.18.0.dev0")
check_min_version("4.55.0")
check_optimum_habana_min_version("1.19.0.dev0")

require_version("datasets>=2.14.0", "To fix: pip install -r examples/pytorch/language-modeling/requirements.txt")

Expand Down Expand Up @@ -181,15 +181,6 @@ class ModelArguments:
)
},
)
low_cpu_mem_usage: bool = field(
default=False,
metadata={
"help": (
"It is an option to create the model as an empty shell, then only materialize its parameters when the pretrained weights are loaded. "
"Setting it to True will benefit LLM loading time and RAM consumption."
)
},
)

def __post_init__(self):
if self.config_overrides is not None and (self.config_name is not None or self.model_name_or_path is not None):
Expand Down Expand Up @@ -280,6 +271,45 @@ def __post_init__(self):
assert extension in ["csv", "json", "txt"], "`validation_file` should be a csv, a json or a txt file."


def split_streaming_dataset(
full_streaming_dataset,
validation_percentage: int = 5,
) -> IterableDatasetDict:
"""
Splits a streaming dataset into
training and validation IterableDatasets, and supports methods like .map(), .filter(),
.take() and properties like .features on the resulting streams.

Args:
full_streaming_dataset (Dataset): The name of the dataset to load (e.g., "HuggingFaceFW/fineweb").
validation_percentage (int): The proportion of the dataset to be used for validation split.

Returns:
IterableDatasetDict: An IterableDatasetDict containing two IterableDataset objects: (train_stream, validation_stream).
"""
if not (0 < validation_percentage < 100):
raise ValueError(
f"validation_percentage must be between 0 and 100 (exclusive). Passed: {validation_percentage}"
)

def split_generator(is_train: bool):
for i, example in enumerate(full_streaming_dataset):
if is_train:
if i % 100 > validation_percentage:
yield example
else:
if i % 100 < validation_percentage:
yield example

features = full_streaming_dataset.features
train_stream = IterableDataset.from_generator(split_generator, gen_kwargs={"is_train": True}, features=features)
validation_stream = IterableDataset.from_generator(
split_generator, gen_kwargs={"is_train": False}, features=features
)

return IterableDatasetDict({"train": train_stream, "validation": validation_stream})


def main():
# See all possible arguments in src/transformers/training_args.py
# or by passing the --help flag to this script.
Expand Down Expand Up @@ -368,25 +398,37 @@ def main():
streaming=data_args.streaming,
trust_remote_code=model_args.trust_remote_code,
)
if "validation" not in raw_datasets.keys():
raw_datasets["validation"] = load_dataset(
data_args.dataset_name,
data_args.dataset_config_name,
split=f"train[:{data_args.validation_split_percentage}%]",
cache_dir=model_args.cache_dir,
token=model_args.token,
streaming=data_args.streaming,
trust_remote_code=model_args.trust_remote_code,
)
raw_datasets["train"] = load_dataset(
data_args.dataset_name,
data_args.dataset_config_name,
split=f"train[{data_args.validation_split_percentage}%:]",
cache_dir=model_args.cache_dir,
token=model_args.token,
streaming=data_args.streaming,
trust_remote_code=model_args.trust_remote_code,
)
if "validation" not in raw_datasets:
if data_args.streaming:
dataset_stream = load_dataset(
data_args.dataset_name,
data_args.dataset_config_name,
split="train",
cache_dir=model_args.cache_dir,
token=model_args.token,
streaming=data_args.streaming,
trust_remote_code=model_args.trust_remote_code,
)
raw_datasets = split_streaming_dataset(dataset_stream, data_args.validation_split_percentage)
else:
raw_datasets["validation"] = load_dataset(
data_args.dataset_name,
data_args.dataset_config_name,
split=f"train[:{data_args.validation_split_percentage}%]",
cache_dir=model_args.cache_dir,
token=model_args.token,
streaming=data_args.streaming,
trust_remote_code=model_args.trust_remote_code,
)
raw_datasets["train"] = load_dataset(
data_args.dataset_name,
data_args.dataset_config_name,
split=f"train[{data_args.validation_split_percentage}%:]",
cache_dir=model_args.cache_dir,
token=model_args.token,
streaming=data_args.streaming,
trust_remote_code=model_args.trust_remote_code,
)
else:
data_files = {}
dataset_args = {}
Expand All @@ -410,23 +452,34 @@ def main():
**dataset_args,
)
# If no validation data is there, validation_split_percentage will be used to divide the dataset.
if "validation" not in raw_datasets.keys():
raw_datasets["validation"] = load_dataset(
extension,
data_files=data_files,
split=f"train[:{data_args.validation_split_percentage}%]",
cache_dir=model_args.cache_dir,
token=model_args.token,
**dataset_args,
)
raw_datasets["train"] = load_dataset(
extension,
data_files=data_files,
split=f"train[{data_args.validation_split_percentage}%:]",
cache_dir=model_args.cache_dir,
token=model_args.token,
**dataset_args,
)
if "validation" not in raw_datasets:
if data_args.streaming:
dataset_stream = load_dataset(
extension,
data_files=data_files,
split="train",
cache_dir=model_args.cache_dir,
token=model_args.token,
**dataset_args,
)
raw_datasets = split_streaming_dataset(dataset_stream, data_args.validation_split_percentage)
else:
raw_datasets["validation"] = load_dataset(
extension,
data_files=data_files,
split=f"train[:{data_args.validation_split_percentage}%]",
cache_dir=model_args.cache_dir,
token=model_args.token,
**dataset_args,
)
raw_datasets["train"] = load_dataset(
extension,
data_files=data_files,
split=f"train[{data_args.validation_split_percentage}%:]",
cache_dir=model_args.cache_dir,
token=model_args.token,
**dataset_args,
)

# See more about loading any type of standard or custom dataset (from files, python dict, pandas DataFrame, etc) at
# https://huggingface.co/docs/datasets/loading_datasets.
Expand Down Expand Up @@ -497,7 +550,6 @@ def main():
token=model_args.token,
trust_remote_code=model_args.trust_remote_code,
torch_dtype=torch_dtype,
low_cpu_mem_usage=model_args.low_cpu_mem_usage,
)
else:
model = AutoModelForCausalLM.from_config(config, trust_remote_code=model_args.trust_remote_code)
Expand Down Expand Up @@ -633,16 +685,22 @@ def tensor_mapper(x):
if training_args.resume_from_checkpoint is not None and training_args.resume_from_checkpoint != "":
train_dataset = train_dataset.map(tensor_mapper)
if data_args.max_train_samples is not None:
max_train_samples = min(len(train_dataset), data_args.max_train_samples)
train_dataset = train_dataset.select(range(max_train_samples))
if data_args.streaming:
train_dataset = train_dataset.take(data_args.max_train_samples)
else:
max_train_samples = min(len(train_dataset), data_args.max_train_samples)
train_dataset = train_dataset.select(range(max_train_samples))

if training_args.do_eval:
if "validation" not in tokenized_datasets:
raise ValueError("--do_eval requires a validation dataset")
eval_dataset = lm_datasets["validation"]
if data_args.max_eval_samples is not None:
max_eval_samples = min(len(eval_dataset), data_args.max_eval_samples)
eval_dataset = eval_dataset.select(range(max_eval_samples))
if data_args.streaming:
eval_dataset = eval_dataset.take(data_args.max_eval_samples)
else:
max_eval_samples = min(len(eval_dataset), data_args.max_eval_samples)
eval_dataset = eval_dataset.select(range(max_eval_samples))

def preprocess_logits_for_metrics(logits, labels):
if isinstance(logits, tuple):
Expand Down Expand Up @@ -705,7 +763,9 @@ def compute_metrics(eval_preds):
logger.info("*** Evaluate ***")
metrics = trainer.evaluate()

if not data_args.streaming:
if data_args.streaming:
metrics["eval_samples"] = max_eval_samples
else:
max_eval_samples = (
data_args.max_eval_samples if data_args.max_eval_samples is not None else len(eval_dataset)
)
Expand Down
2 changes: 1 addition & 1 deletion examples/language-modeling/run_lora_clm.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,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.18.0.dev0")
check_optimum_habana_min_version("1.19.0.dev0")


@dataclass
Expand Down
14 changes: 2 additions & 12 deletions examples/language-modeling/run_mlm.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ 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.51.0")
check_optimum_habana_min_version("1.18.0.dev0")
check_min_version("4.55.0")
check_optimum_habana_min_version("1.19.0.dev0")

require_version("datasets>=2.14.0", "To fix: pip install -r examples/pytorch/language-modeling/requirements.txt")

Expand Down Expand Up @@ -144,15 +144,6 @@ class ModelArguments:
"choices": ["auto", "bfloat16", "float32"],
},
)
low_cpu_mem_usage: bool = field(
default=False,
metadata={
"help": (
"It is an option to create the model as an empty shell, then only materialize its parameters when the pretrained weights are loaded. "
"Setting it to True will benefit LLM loading time and RAM consumption."
)
},
)

def __post_init__(self):
if self.config_overrides is not None and (self.config_name is not None or self.model_name_or_path is not None):
Expand Down Expand Up @@ -452,7 +443,6 @@ def main():
token=model_args.token,
trust_remote_code=model_args.trust_remote_code,
torch_dtype=torch_dtype,
low_cpu_mem_usage=model_args.low_cpu_mem_usage,
)
else:
logger.info("Training new model from scratch")
Expand Down
4 changes: 2 additions & 2 deletions examples/language-modeling/run_multitask_prompt_tuning.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ 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 risk.
check_min_version("4.49.0")
check_optimum_habana_min_version("1.18.0.dev0")
check_min_version("4.55.0")
check_optimum_habana_min_version("1.19.0.dev0")

require_version("datasets>=1.8.0", "To fix: pip install -r examples/pytorch/language-modeling/requirements.txt")

Expand Down
4 changes: 2 additions & 2 deletions examples/language-modeling/run_prompt_tuning_clm.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ 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.49.0")
check_optimum_habana_min_version("1.18.0.dev0")
check_min_version("4.55.0")
check_optimum_habana_min_version("1.19.0.dev0")

require_version("datasets>=1.8.0", "To fix: pip install -r examples/pytorch/language-modeling/requirements.txt")

Expand Down
2 changes: 1 addition & 1 deletion examples/protein-folding/run_esmfold.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def check_optimum_habana_min_version(*a, **b):


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


def convert_outputs_to_pdb(outputs):
Expand Down
2 changes: 1 addition & 1 deletion examples/protein-folding/run_sequence_classification.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def check_optimum_habana_min_version(*a, **b):


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

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
Expand Down
2 changes: 1 addition & 1 deletion examples/protein-folding/run_zero_shot_eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def check_optimum_habana_min_version(*a, **b):


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


logging.basicConfig(
Expand Down
4 changes: 2 additions & 2 deletions examples/question-answering/run_qa.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ 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.51.0")
check_optimum_habana_min_version("1.18.0.dev0")
check_min_version("4.55.0")
check_optimum_habana_min_version("1.19.0.dev0")

require_version("datasets>=1.8.0", "To fix: pip install -r examples/pytorch/question-answering/requirements.txt")

Expand Down
Loading
Loading