57 lines
1.6 KiB
Bash
Executable File
57 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# ------------------------------------------------------------------
|
|
# 10_download_model_122b.sh
|
|
# Downloads Qwen3.5-122B-A10B-FP8 weights from Hugging Face
|
|
# using huggingface-cli INSIDE the Apptainer container.
|
|
#
|
|
# Prerequisites:
|
|
# - Container built via 01_build_container.sh
|
|
#
|
|
# Usage:
|
|
# bash 10_download_model_122b.sh [TARGET_DIR]
|
|
# ------------------------------------------------------------------
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
SIF_FILE="${SCRIPT_DIR}/vllm_qwen.sif"
|
|
|
|
MODEL_ID="Qwen/Qwen3.5-122B-A10B-FP8"
|
|
TARGET_DIR="${1:-$HOME/models/Qwen3.5-122B-A10B-FP8}"
|
|
HF_CACHE_DIR="${HOME}/.cache/huggingface"
|
|
|
|
if [ ! -f "$SIF_FILE" ]; then
|
|
echo "ERROR: Container image not found at ${SIF_FILE}"
|
|
echo " Run 01_build_container.sh first."
|
|
exit 1
|
|
fi
|
|
|
|
echo "=== Downloading ${MODEL_ID} to ${TARGET_DIR} ==="
|
|
echo " Using huggingface-cli inside the container."
|
|
echo " This is ~125 GB and may take a while."
|
|
echo ""
|
|
|
|
mkdir -p "$TARGET_DIR" "$HF_CACHE_DIR"
|
|
|
|
apptainer exec \
|
|
--writable-tmpfs \
|
|
--bind "$(dirname "$TARGET_DIR"):$(dirname "$TARGET_DIR")" \
|
|
--bind "${HF_CACHE_DIR}:${HF_CACHE_DIR}" \
|
|
--env HF_HOME="${HF_CACHE_DIR}" \
|
|
--env HF_HUB_CACHE="${HF_CACHE_DIR}/hub" \
|
|
--env XDG_CACHE_HOME="${HOME}/.cache" \
|
|
"$SIF_FILE" \
|
|
python3 -c "
|
|
from huggingface_hub import snapshot_download
|
|
snapshot_download(
|
|
'${MODEL_ID}',
|
|
local_dir='${TARGET_DIR}',
|
|
local_dir_use_symlinks=False,
|
|
)
|
|
"
|
|
|
|
echo ""
|
|
echo "=== Download complete ==="
|
|
echo "Model stored at: ${TARGET_DIR}"
|
|
echo "Total size:"
|
|
du -sh "$TARGET_DIR"
|