From 2c2e1c115a554e3465b5474d50eaea1b540c5b28 Mon Sep 17 00:00:00 2001 From: Aznix07 Date: Tue, 4 Nov 2025 17:27:52 +0530 Subject: [PATCH 1/3] Fix KeyError in GPT-OSS weight conversion script --- .../gpt_oss/convert_gpt_oss_weights_to_hf.py | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/transformers/models/gpt_oss/convert_gpt_oss_weights_to_hf.py b/src/transformers/models/gpt_oss/convert_gpt_oss_weights_to_hf.py index a5f3cce78a40..3d96d7f321e6 100644 --- a/src/transformers/models/gpt_oss/convert_gpt_oss_weights_to_hf.py +++ b/src/transformers/models/gpt_oss/convert_gpt_oss_weights_to_hf.py @@ -157,14 +157,28 @@ def write_model( original_config = json.loads((Path(input_base_path) / "config.json").read_text()) num_local_experts = original_config.pop("num_experts") - rope_parameters = { - "beta_fast": float(original_config.pop("rope_ntk_beta")), - "beta_slow": float(original_config.pop("rope_ntk_alpha")), - "factor": float(original_config.pop("rope_parameters_factor")), - "rope_type": "yarn", - "truncate": False, - "original_max_position_embeddings": 4096, - } + + # Handle both old and new config formats for rope_parameters + if "rope_parameters" in original_config: + # New format: rope_parameters already exists as a dict + rope_parameters = original_config.pop("rope_parameters") + # Ensure rope_type is set + if "rope_type" not in rope_parameters: + rope_parameters["rope_type"] = "yarn" + else: + # Old format: construct rope_parameters from individual keys + # Fallback to default values if rop_parameters is missing + rope_parameters = { + # "beta_fast": float(original_config.pop("rope_ntk_beta")), + # "beta_slow": float(original_config.pop("rope_ntk_alpha")), + # "factor": float(original_config.pop("rope_parameters_factor")), + "rope_type": "yarn", + "truncate": False, + "original_max_position_embeddings": 4096, + "beta_fast": 32.0, + "beta_slow": 1.0, + "factor": 32.0, + } config = GptOssConfig( num_local_experts=num_local_experts, From 3b6cb42ed17a1bf2e2418071fce605ec33e81c19 Mon Sep 17 00:00:00 2001 From: Aznix07 Date: Tue, 4 Nov 2025 18:13:31 +0530 Subject: [PATCH 2/3] Fix code quality: remove trailing whitespace --- .../models/gpt_oss/convert_gpt_oss_weights_to_hf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/transformers/models/gpt_oss/convert_gpt_oss_weights_to_hf.py b/src/transformers/models/gpt_oss/convert_gpt_oss_weights_to_hf.py index 3d96d7f321e6..a18a9c3a94fe 100644 --- a/src/transformers/models/gpt_oss/convert_gpt_oss_weights_to_hf.py +++ b/src/transformers/models/gpt_oss/convert_gpt_oss_weights_to_hf.py @@ -157,7 +157,7 @@ def write_model( original_config = json.loads((Path(input_base_path) / "config.json").read_text()) num_local_experts = original_config.pop("num_experts") - + # Handle both old and new config formats for rope_parameters if "rope_parameters" in original_config: # New format: rope_parameters already exists as a dict From c94c1bba061c47f8086ff009c48f006755826afe Mon Sep 17 00:00:00 2001 From: Aznix07 Date: Thu, 6 Nov 2025 11:09:49 +0530 Subject: [PATCH 3/3] Address review: use pop with defaults, remove commented code --- .../models/gpt_oss/convert_gpt_oss_weights_to_hf.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/transformers/models/gpt_oss/convert_gpt_oss_weights_to_hf.py b/src/transformers/models/gpt_oss/convert_gpt_oss_weights_to_hf.py index a18a9c3a94fe..f685a751a871 100644 --- a/src/transformers/models/gpt_oss/convert_gpt_oss_weights_to_hf.py +++ b/src/transformers/models/gpt_oss/convert_gpt_oss_weights_to_hf.py @@ -166,18 +166,14 @@ def write_model( if "rope_type" not in rope_parameters: rope_parameters["rope_type"] = "yarn" else: - # Old format: construct rope_parameters from individual keys - # Fallback to default values if rop_parameters is missing + # Old format: construct rope_parameters from individual keys with defaults matching GptOssConfig rope_parameters = { - # "beta_fast": float(original_config.pop("rope_ntk_beta")), - # "beta_slow": float(original_config.pop("rope_ntk_alpha")), - # "factor": float(original_config.pop("rope_parameters_factor")), + "factor": float(original_config.pop("rope_parameters_factor", 32.0)), + "beta_fast": float(original_config.pop("rope_ntk_beta", 32.0)), + "beta_slow": float(original_config.pop("rope_ntk_alpha", 1.0)), "rope_type": "yarn", "truncate": False, "original_max_position_embeddings": 4096, - "beta_fast": 32.0, - "beta_slow": 1.0, - "factor": 32.0, } config = GptOssConfig(