Tonic commited on
Commit
0de9de2
·
verified ·
1 Parent(s): bb64084

improves requirements and dependencies

Browse files
config/__init__.py CHANGED
@@ -7,11 +7,30 @@ from .train_smollm3_openhermes_fr import SmolLM3ConfigOpenHermesFR, get_config a
7
  from .train_smollm3_openhermes_fr_a100_large import SmolLM3ConfigOpenHermesFRA100Large, get_config as get_a100_large_config
8
  from .train_smollm3_openhermes_fr_a100_multiple_passes import SmolLM3ConfigOpenHermesFRMultiplePasses, get_config as get_multiple_passes_config
9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  __all__ = [
11
  'SmolLM3Config',
12
  'SmolLM3ConfigOpenHermesFR',
13
  'SmolLM3ConfigOpenHermesFRA100Large',
14
  'SmolLM3ConfigOpenHermesFRMultiplePasses',
 
15
  'get_base_config',
16
  'get_openhermes_fr_config',
17
  'get_a100_large_config',
 
7
  from .train_smollm3_openhermes_fr_a100_large import SmolLM3ConfigOpenHermesFRA100Large, get_config as get_a100_large_config
8
  from .train_smollm3_openhermes_fr_a100_multiple_passes import SmolLM3ConfigOpenHermesFRMultiplePasses, get_config as get_multiple_passes_config
9
 
10
+ # Generic get_config function that can handle different config types
11
+ def get_config(config_path: str):
12
+ """Generic get_config function that tries different config types"""
13
+ import os
14
+
15
+ if not os.path.exists(config_path):
16
+ return get_base_config(config_path)
17
+
18
+ # Try to determine config type based on filename
19
+ if "a100_large" in config_path:
20
+ return get_a100_large_config(config_path)
21
+ elif "a100_multiple_passes" in config_path:
22
+ return get_multiple_passes_config(config_path)
23
+ elif "openhermes_fr" in config_path:
24
+ return get_openhermes_fr_config(config_path)
25
+ else:
26
+ return get_base_config(config_path)
27
+
28
  __all__ = [
29
  'SmolLM3Config',
30
  'SmolLM3ConfigOpenHermesFR',
31
  'SmolLM3ConfigOpenHermesFRA100Large',
32
  'SmolLM3ConfigOpenHermesFRMultiplePasses',
33
+ 'get_config',
34
  'get_base_config',
35
  'get_openhermes_fr_config',
36
  'get_a100_large_config',
requirements.txt CHANGED
@@ -1,4 +1,4 @@
1
- # Core dependencies
2
  torch>=2.0.0
3
  transformers>=4.53.0
4
  datasets>=2.14.0
@@ -11,32 +11,27 @@ tokenizers>=0.13.0
11
 
12
  # Training and optimization
13
  flash-attn>=2.0.0
14
- xformers>=0.0.20
15
  bitsandbytes>=0.41.0
16
 
17
- # Utilities
18
  numpy>=1.24.0
19
- pandas>=2.0.0
20
- scikit-learn>=1.3.0
21
  tqdm>=4.65.0
22
- wandb>=0.15.0
23
 
24
- # Optional: for evaluation
25
- lighteval>=0.1.0
26
- evaluate>=0.4.0
27
 
28
- # Optional: for deployment
29
- vllm>=0.2.0
30
- sentencepiece>=0.1.99
31
 
32
- # Development
33
- pytest>=7.0.0
34
- black>=23.0.0
35
- isort>=5.12.0
36
 
37
- # Experiment tracking and monitoring
38
- trackio>=0.1.0
39
- psutil>=5.9.0
 
40
 
41
- # Hugging Face Hub integration
42
- huggingface_hub>=0.16.0
 
1
+ # Core dependencies - essential for training
2
  torch>=2.0.0
3
  transformers>=4.53.0
4
  datasets>=2.14.0
 
11
 
12
  # Training and optimization
13
  flash-attn>=2.0.0
 
14
  bitsandbytes>=0.41.0
15
 
16
+ # Basic utilities
17
  numpy>=1.24.0
 
 
18
  tqdm>=4.65.0
 
19
 
20
+ # Experiment tracking
21
+ trackio>=0.1.0
 
22
 
23
+ # Optional: for evaluation (commented out to reduce conflicts)
24
+ # lighteval>=0.1.0
25
+ # evaluate>=0.4.0
26
 
27
+ # Optional: for deployment (commented out to reduce conflicts)
28
+ # vllm>=0.2.0
29
+ # sentencepiece>=0.1.99
 
30
 
31
+ # Development tools (commented out to reduce conflicts)
32
+ # pytest>=7.0.0
33
+ # black>=23.0.0
34
+ # isort>=5.12.0
35
 
36
+ # System monitoring
37
+ psutil>=5.9.0
requirements_core.txt ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Core requirements for SmolLM3 training (without flash-attn)
2
+ torch>=2.0.0
3
+ transformers>=4.53.0
4
+ datasets>=2.14.0
5
+ accelerate>=0.20.0
6
+ trl>=0.7.0
7
+ huggingface-hub>=0.16.0
8
+ tokenizers>=0.13.0
9
+ bitsandbytes>=0.41.0
10
+ numpy>=1.24.0
11
+ tqdm>=4.65.0
12
+ trackio>=0.1.0
13
+ psutil>=5.9.0
requirements_minimal.txt ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Minimal requirements for SmolLM3 training
2
+ torch>=2.0.0
3
+ transformers>=4.53.0
4
+ datasets>=2.14.0
5
+ accelerate>=0.20.0
6
+ trl>=0.7.0
7
+ huggingface-hub>=0.16.0
8
+ tokenizers>=0.13.0
9
+ flash-attn>=2.0.0
10
+ bitsandbytes>=0.41.0
11
+ numpy>=1.24.0
12
+ tqdm>=4.65.0
13
+ trackio>=0.1.0
14
+ psutil>=5.9.0
run_a100_large_experiment.py CHANGED
@@ -40,11 +40,13 @@ def main():
40
  )
41
  parser.add_argument(
42
  "--trackio-url",
 
43
  type=str,
44
  help="Trackio URL for experiment tracking"
45
  )
46
  parser.add_argument(
47
  "--trackio-token",
 
48
  type=str,
49
  help="Trackio token for authentication"
50
  )
 
40
  )
41
  parser.add_argument(
42
  "--trackio-url",
43
+ "--trackio_url",
44
  type=str,
45
  help="Trackio URL for experiment tracking"
46
  )
47
  parser.add_argument(
48
  "--trackio-token",
49
+ "--trackio_token",
50
  type=str,
51
  help="Trackio token for authentication"
52
  )