From fbff0292bdf5877b19a3074da9415a44c11d305a Mon Sep 17 00:00:00 2001 From: Aditya Ghai <119144814+adityaghai07@users.noreply.github.com> Date: Sat, 7 Mar 2026 19:29:52 +0530 Subject: [PATCH 1/3] Fix: ModernBERT sequence classification num_labels support --- unsloth/models/vision.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/unsloth/models/vision.py b/unsloth/models/vision.py index a8adba99e7..0de2a91387 100644 --- a/unsloth/models/vision.py +++ b/unsloth/models/vision.py @@ -782,6 +782,19 @@ class FastBaseModel: setattr(auto_config, "attn_implementation", config_attn_impl) model_config = auto_config + # Handle sequence classification parameters (num_labels, id2label, label2id) + # These need to be set in the config before model instantiation + num_labels = kwargs.pop("num_labels", None) + id2label = kwargs.pop("id2label", None) + label2id = kwargs.pop("label2id", None) + + if num_labels is not None: + model_config.num_labels = num_labels + if id2label is not None: + model_config.id2label = id2label + if label2id is not None: + model_config.label2id = label2id + verify_fp8_support_if_applicable(model_config) raise_handler = RaiseUninitialized() From b46269f7dd7ba68ef519b7767f6448446cd179f7 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 7 Mar 2026 14:23:56 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- unsloth/models/vision.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unsloth/models/vision.py b/unsloth/models/vision.py index 0de2a91387..20e92207d8 100644 --- a/unsloth/models/vision.py +++ b/unsloth/models/vision.py @@ -787,7 +787,7 @@ class FastBaseModel: num_labels = kwargs.pop("num_labels", None) id2label = kwargs.pop("id2label", None) label2id = kwargs.pop("label2id", None) - + if num_labels is not None: model_config.num_labels = num_labels if id2label is not None: From a454c212d80fa0a228d707ff20fef570f6eba130 Mon Sep 17 00:00:00 2001 From: Aditya Ghai <119144814+adityaghai07@users.noreply.github.com> Date: Sat, 7 Mar 2026 20:01:30 +0530 Subject: [PATCH 3/3] Using a loop to handle the sequence classification parameters. git pull origin fix/bert-num-labels --rebase# pick 779c4b06 Using a loop to handle the sequence classification parameters. --- unsloth/models/vision.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/unsloth/models/vision.py b/unsloth/models/vision.py index 20e92207d8..6691770909 100644 --- a/unsloth/models/vision.py +++ b/unsloth/models/vision.py @@ -784,16 +784,10 @@ class FastBaseModel: # Handle sequence classification parameters (num_labels, id2label, label2id) # These need to be set in the config before model instantiation - num_labels = kwargs.pop("num_labels", None) - id2label = kwargs.pop("id2label", None) - label2id = kwargs.pop("label2id", None) - - if num_labels is not None: - model_config.num_labels = num_labels - if id2label is not None: - model_config.id2label = id2label - if label2id is not None: - model_config.label2id = label2id + for param in ("num_labels", "id2label", "label2id"): + value = kwargs.pop(param, None) + if value is not None: + setattr(model_config, param, value) verify_fp8_support_if_applicable(model_config)