Files
lmcache--lmcache/.github/scripts/download_opt125m_github.sh
2026-07-13 12:24:33 +08:00

58 lines
1.8 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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}/"