File size: 2,087 Bytes
c2321bb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env python3
"""
Dependency Check Script

This script checks if all required dependencies are installed for the
SmolLM3 fine-tuning pipeline.
"""

import sys
import importlib

def check_dependency(module_name: str, package_name: str = None) -> bool:
    """
    Check if a Python module is available.
    
    Args:
        module_name (str): The module name to check
        package_name (str): The package name for pip installation (if different)
        
    Returns:
        bool: True if module is available, False otherwise
    """
    try:
        importlib.import_module(module_name)
        return True
    except ImportError:
        return False

def main():
    """Check all required dependencies."""
    
    print("πŸ” Checking dependencies for SmolLM3 Fine-tuning Pipeline")
    print("=" * 60)
    
    # Required dependencies
    dependencies = [
        ("huggingface_hub", "huggingface_hub"),
        ("torch", "torch"),
        ("transformers", "transformers"),
        ("datasets", "datasets"),
        ("accelerate", "accelerate"),
        ("peft", "peft"),
        ("trl", "trl"),
        ("bitsandbytes", "bitsandbytes"),
    ]
    
    missing_deps = []
    all_good = True
    
    for module_name, package_name in dependencies:
        if check_dependency(module_name):
            print(f"βœ… {module_name}")
        else:
            print(f"❌ {module_name} (install with: pip install {package_name})")
            missing_deps.append(package_name)
            all_good = False
    
    print("\n" + "=" * 60)
    
    if all_good:
        print("βœ… All dependencies are installed!")
        print("πŸš€ You're ready to run the fine-tuning pipeline!")
    else:
        print("❌ Missing dependencies detected!")
        print("\nTo install missing dependencies, run:")
        print(f"pip install {' '.join(missing_deps)}")
        print("\nOr install all requirements:")
        print("pip install -r requirements/requirements.txt")
    
    return all_good

if __name__ == "__main__":
    success = main()
    sys.exit(0 if success else 1)