Spaces:
Running
Running
""" | |
Configuration package for SmolLM3 and GPT-OSS training | |
""" | |
try: | |
from .train_smollm3 import SmolLM3Config, get_config as get_base_config | |
except Exception: | |
SmolLM3Config = None # type: ignore | |
def get_base_config(config_path: str): # type: ignore | |
raise ImportError("train_smollm3 not available") | |
try: | |
from .train_smollm3_openhermes_fr import SmolLM3ConfigOpenHermesFR, get_config as get_openhermes_fr_config | |
except Exception: | |
SmolLM3ConfigOpenHermesFR = None # type: ignore | |
get_openhermes_fr_config = None # type: ignore | |
try: | |
from .train_smollm3_openhermes_fr_a100_large import SmolLM3ConfigOpenHermesFRA100Large, get_config as get_a100_large_config | |
except Exception: | |
SmolLM3ConfigOpenHermesFRA100Large = None # type: ignore | |
get_a100_large_config = None # type: ignore | |
try: | |
from .train_smollm3_openhermes_fr_a100_multiple_passes import SmolLM3ConfigOpenHermesFRMultiplePasses, get_config as get_multiple_passes_config | |
except Exception: | |
SmolLM3ConfigOpenHermesFRMultiplePasses = None # type: ignore | |
get_multiple_passes_config = None # type: ignore | |
try: | |
from .train_smollm3_openhermes_fr_a100_max_performance import SmolLM3ConfigOpenHermesFRMaxPerformance, get_config as get_max_performance_config | |
except Exception: | |
SmolLM3ConfigOpenHermesFRMaxPerformance = None # type: ignore | |
get_max_performance_config = None # type: ignore | |
# GPT-OSS configurations | |
try: | |
from .train_gpt_oss_basic import GPTOSSBasicConfig, get_config as get_gpt_oss_basic_config | |
except Exception: | |
GPTOSSBasicConfig = None # type: ignore | |
get_gpt_oss_basic_config = None # type: ignore | |
try: | |
from .train_gpt_oss_multilingual_reasoning import ( | |
GPTOSSMultilingualReasoningConfig, | |
get_config as get_gpt_oss_multilingual_reasoning_config, | |
) | |
except Exception: | |
GPTOSSMultilingualReasoningConfig = None # type: ignore | |
get_gpt_oss_multilingual_reasoning_config = None # type: ignore | |
try: | |
from .train_gpt_oss_h100_optimized import ( | |
GPTOSSH100OptimizedConfig, | |
get_config as get_gpt_oss_h100_optimized_config, | |
) | |
except Exception: | |
GPTOSSH100OptimizedConfig = None # type: ignore | |
get_gpt_oss_h100_optimized_config = None # type: ignore | |
try: | |
from .train_gpt_oss_memory_optimized import ( | |
GPTOSSMemoryOptimizedConfig, | |
get_config as get_gpt_oss_memory_optimized_config, | |
) | |
except Exception: | |
GPTOSSMemoryOptimizedConfig = None # type: ignore | |
get_gpt_oss_memory_optimized_config = None # type: ignore | |
from .train_gpt_oss_custom import GPTOSSEnhancedCustomConfig | |
# Pre-baked GPT-OSS configs exposing a `config` instance | |
from .train_gpt_oss_openhermes_fr import config as gpt_oss_openhermes_fr_config | |
from .train_gpt_oss_openhermes_fr_memory_optimized import ( | |
config as gpt_oss_openhermes_fr_memory_optimized_config, | |
) | |
from .train_gpt_oss_medical_o1_sft import config as gpt_oss_medical_o1_sft_config | |
# Generic get_config function that can handle different config types | |
def get_config(config_path: str): | |
"""Generic get_config function that tries different config types""" | |
import os | |
import importlib.util as _importlib | |
if not os.path.exists(config_path): | |
# Fall back to base config accessor if available | |
return get_base_config(config_path) if get_base_config else None | |
# Try to determine config type based on filename | |
if "a100_large" in config_path: | |
return get_a100_large_config(config_path) if get_a100_large_config else None | |
elif "a100_multiple_passes" in config_path: | |
return get_multiple_passes_config(config_path) if get_multiple_passes_config else None | |
elif "a100_max_performance" in config_path: | |
return get_max_performance_config(config_path) if get_max_performance_config else None | |
elif "openhermes_fr" in config_path: | |
return get_openhermes_fr_config(config_path) if get_openhermes_fr_config else None | |
elif "gpt_oss" in config_path: | |
# Load GPT-OSS style config module dynamically and return its `config` instance if present | |
try: | |
spec = _importlib.spec_from_file_location("config_module", config_path) | |
module = _importlib.module_from_spec(spec) | |
assert spec is not None and spec.loader is not None | |
spec.loader.exec_module(module) # type: ignore | |
if hasattr(module, "config"): | |
return getattr(module, "config") | |
except Exception: | |
# Fallback to base config if dynamic load fails | |
pass | |
return get_base_config(config_path) if get_base_config else None | |
else: | |
return get_base_config(config_path) if get_base_config else None | |
__all__ = [ | |
'SmolLM3Config', | |
'SmolLM3ConfigOpenHermesFR', | |
'SmolLM3ConfigOpenHermesFRA100Large', | |
'SmolLM3ConfigOpenHermesFRMultiplePasses', | |
'SmolLM3ConfigOpenHermesFRMaxPerformance', | |
# GPT-OSS classes and accessors | |
'GPTOSSBasicConfig', | |
'GPTOSSMultilingualReasoningConfig', | |
'GPTOSSH100OptimizedConfig', | |
'GPTOSSMemoryOptimizedConfig', | |
'GPTOSSEnhancedCustomConfig', | |
'get_gpt_oss_basic_config', | |
'get_gpt_oss_multilingual_reasoning_config', | |
'get_gpt_oss_h100_optimized_config', | |
'get_gpt_oss_memory_optimized_config', | |
# Pre-baked GPT-OSS config instances | |
'gpt_oss_openhermes_fr_config', | |
'gpt_oss_openhermes_fr_memory_optimized_config', | |
'gpt_oss_medical_o1_sft_config', | |
'get_config', | |
'get_base_config', | |
'get_openhermes_fr_config', | |
'get_a100_large_config', | |
'get_multiple_passes_config', | |
'get_max_performance_config', | |
] |