58 lines
1.8 KiB
Bash
58 lines
1.8 KiB
Bash
#!/usr/bin/env bash
|
||
# SPDX-License-Identifier: Apache-2.0
|
||
#
|
||
# Download facebook/opt-125m from the LMCache/opt-125m GitHub release
|
||
# and place it into the HuggingFace hub cache structure so vLLM can
|
||
# find it via ``facebook/opt-125m`` without any network call to HF.
|
||
#
|
||
# Environment:
|
||
# OPT125M_GH_RELEASE release tag (default: v1.0)
|
||
# OPT125M_SNAPSHOT HF snapshot hash (default: 27dcfa...)
|
||
|
||
set -euo pipefail
|
||
|
||
GH_RELEASE="${OPT125M_GH_RELEASE:-v1.0}"
|
||
SNAPSHOT="${OPT125M_SNAPSHOT:-27dcfa74d334bc871f3234de431e71c6eeba5dd6}"
|
||
|
||
HF_CACHE="${HF_HOME:-$HOME/.cache/huggingface}/hub"
|
||
MODEL_DIR="${HF_CACHE}/models--facebook--opt-125m"
|
||
SNAPSHOT_DIR="${MODEL_DIR}/snapshots/${SNAPSHOT}"
|
||
|
||
if [ -f "${SNAPSHOT_DIR}/pytorch_model.bin" ]; then
|
||
echo "opt-125m already cached in ${SNAPSHOT_DIR}, skipping download"
|
||
exit 0
|
||
fi
|
||
|
||
echo "Downloading opt-125m from GitHub release ${GH_RELEASE}..."
|
||
mkdir -p "${SNAPSHOT_DIR}"
|
||
|
||
TMP_DIR="$(mktemp -d)"
|
||
trap 'rm -rf "${TMP_DIR}"' EXIT
|
||
|
||
TARBALL="${TMP_DIR}/opt-125m.tar.gz"
|
||
DOWNLOAD_URL="https://github.com/LMCache/opt-125m/releases/download/${GH_RELEASE}/opt-125m.tar.gz"
|
||
|
||
for i in $(seq 1 5); do
|
||
if curl -fsSL --retry 3 -o "${TARBALL}" "${DOWNLOAD_URL}"; then
|
||
break
|
||
fi
|
||
if [ "${i}" -eq 5 ]; then
|
||
echo "!! Failed to download after 5 attempts: ${DOWNLOAD_URL}"
|
||
exit 1
|
||
fi
|
||
sleep $((10 * i))
|
||
done
|
||
|
||
# Extract directly – the tarball contains opt-125m/ at top level.
|
||
EXTRACT_DIR="${TMP_DIR}/extract"
|
||
mkdir -p "${EXTRACT_DIR}"
|
||
tar -xzf "${TARBALL}" -C "${EXTRACT_DIR}"
|
||
mv "${EXTRACT_DIR}"/opt-125m/* "${SNAPSHOT_DIR}/"
|
||
|
||
# Create the refs/main pointer so snapshot_download(local_files_only=True)
|
||
# can resolve the snapshot hash.
|
||
mkdir -p "${MODEL_DIR}/refs"
|
||
echo "${SNAPSHOT}" > "${MODEL_DIR}/refs/main"
|
||
|
||
echo "opt-125m cached at ${SNAPSHOT_DIR}"
|
||
ls -lah "${SNAPSHOT_DIR}/" |