File size: 1,288 Bytes
e53f10b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""
Download Qwen3-30B-A3B-Thinking-2507 to data/models/.
"""
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))

from configs.paths import ensure_dirs, LOGS_DIR
from configs.model import MODEL_CONFIG
from src.utils import setup_logger


def main():
    ensure_dirs()
    log = setup_logger("01_download", LOGS_DIR / "01_download.log")

    local_dir = Path(MODEL_CONFIG["local_dir"])
    hf_id = MODEL_CONFIG["hf_id"]

    log.info(f"Target: {local_dir}")
    log.info(f"Source: {hf_id}")

    if local_dir.exists() and any(local_dir.iterdir()):
        has_weights = any(p.suffix in [".bin", ".safetensors"] for p in local_dir.rglob("*"))
        if has_weights:
            log.info("Weights already present, skipping download.")
            return
        log.info("Directory exists but no weights found, proceeding...")

    local_dir.mkdir(parents=True, exist_ok=True)

    from huggingface_hub import snapshot_download
    log.info("Starting download (Qwen3-30B ~60GB, will take time)...")
    snapshot_download(
        repo_id=hf_id,
        local_dir=str(local_dir),
        local_dir_use_symlinks=False,
        resume_download=True,
    )
    log.info(f"Download complete: {local_dir}")


if __name__ == "__main__":
    main()