DNN-Project / fetch_models.py
SirBallsXIV's picture
Script to download Qwen and Nemotron models
ee62519 verified
"""
Download models from HuggingFace Hub.
Usage:
python fetch_models.py # Download all models
python fetch_models.py --lora # Re-pull latest (Nemotron) LoRA adapter
python fetch_models.py --qwen-lora # Pull old Qwen LoRA from specific commit
python fetch_models.py --nemotron # Download Nemotron base model
python fetch_models.py --base # Download base Qwen model only
"""
import sys
import os
from huggingface_hub import snapshot_download
# HF_TOKEN = "your_token_here"
HF_TOKEN = os.environ.get("HF_TOKEN")
LORA_REPO = "Rolaficus/Qwen_7B_Cuda"
BASE_MODEL = "unsloth/qwen2.5-coder-7b-bnb-4bit"
NEMOTRON_MODEL = "unsloth/NVIDIA-Nemotron-Nano-9B-v2"
# The old Qwen LoRA commit (before it was replaced with Nemotron LoRA)
QWEN_LORA_REVISION = "7b4d77303676"
def download_lora():
"""Download latest LoRA (Nemotron adapter) from the repo."""
print(f"Downloading latest LoRA (Nemotron): {LORA_REPO}...")
snapshot_download(
repo_id=LORA_REPO,
local_dir="Qwen_7B_Cuda",
token=HF_TOKEN,
)
print("Latest (Nemotron) LoRA downloaded successfully!\n")
def download_qwen_lora():
"""Download old Qwen LoRA from a specific commit."""
print(f"Downloading Qwen LoRA from commit {QWEN_LORA_REVISION}...")
snapshot_download(
repo_id=LORA_REPO,
revision=QWEN_LORA_REVISION,
local_dir="Qwen_7B_Cuda_Qwen",
token=HF_TOKEN,
)
print("Qwen LoRA downloaded successfully!\n")
def download_base():
print(f"Downloading Base Model: {BASE_MODEL}...")
snapshot_download(
repo_id=BASE_MODEL,
local_dir="base_model",
token=HF_TOKEN,
)
print("Base model weights downloaded successfully!\n")
def download_nemotron():
print(f"Downloading Nemotron: {NEMOTRON_MODEL}...")
print(" This is a large download (~18GB). Please be patient.")
snapshot_download(
repo_id=NEMOTRON_MODEL,
local_dir="nemotron_9b",
token=HF_TOKEN,
)
print("Nemotron model downloaded successfully!\n")
def download_all():
download_lora()
download_qwen_lora()
download_base()
download_nemotron()
if __name__ == "__main__":
args = sys.argv[1:]
if not args:
download_all()
else:
if "--lora" in args:
download_lora()
if "--qwen-lora" in args:
download_qwen_lora()
if "--base" in args:
download_base()
if "--nemotron" in args:
download_nemotron()
print("All requested downloads complete!")