Spaces:
Running
Running
File size: 5,623 Bytes
5fe83da 63ce7d6 5fe83da 6995e18 5fe83da 63ce7d6 6995e18 63ce7d6 0de9de2 63ce7d6 0de9de2 6995e18 0de9de2 6995e18 0de9de2 6995e18 58a74d2 6995e18 0de9de2 6995e18 63ce7d6 6995e18 0de9de2 6995e18 0de9de2 5fe83da 58a74d2 63ce7d6 0de9de2 5fe83da 58a74d2 5fe83da |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
"""
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',
] |