Spaces:
Paused
Paused
Update start.sh
Browse files
start.sh
CHANGED
|
@@ -36,56 +36,57 @@ export NCCL_TIMEOUT=600
|
|
| 36 |
if [ -d /data ]; then
|
| 37 |
export HF_HOME="/data/.cache/huggingface"
|
| 38 |
export TORCH_HOME="/data/.cache/torch"
|
| 39 |
-
mkdir -p "$HF_HOME/hub" "$TORCH_HOME"
|
| 40 |
-
# Symlink para compatibilidade com /app
|
| 41 |
-
mkdir -p /app/.cache
|
| 42 |
-
ln -sf "$HF_HOME" /app/.cache/huggingface
|
| 43 |
else
|
| 44 |
export HF_HOME="/app/.cache/huggingface"
|
| 45 |
export TORCH_HOME="/app/.cache/torch"
|
| 46 |
-
mkdir -p "$HF_HOME/hub" "$TORCH_HOME"
|
| 47 |
fi
|
| 48 |
-
|
| 49 |
-
unset TRANSFORMERS_CACHE # evitar conflito com outros caches
|
| 50 |
export HF_HUB_CACHE="${HF_HUB_CACHE:-$HF_HOME/hub}"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
export HF_HUB_ENABLE_HF_TRANSFER=1
|
| 52 |
export HF_HUB_DOWNLOAD_TIMEOUT=60
|
| 53 |
|
| 54 |
-
# ---------------------- Pré-download do modelo ----------------------
|
| 55 |
MODEL_REPO="ByteDance-Seed/VINCIE-3B"
|
| 56 |
-
|
| 57 |
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
echo "
|
| 62 |
-
|
| 63 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 64 |
from huggingface_hub import snapshot_download
|
| 65 |
hf_home = os.environ.get("HF_HOME","/app/.cache/huggingface")
|
| 66 |
cache_dir = os.path.join(hf_home, "hub")
|
| 67 |
os.makedirs(cache_dir, exist_ok=True)
|
| 68 |
repo_id = "ByteDance-Seed/VINCIE-3B"
|
| 69 |
token = os.getenv("HF_TOKEN")
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
print("Download concluído.")
|
| 73 |
-
except Exception as e:
|
| 74 |
-
print(f"Erro no download: {e}")
|
| 75 |
-
raise
|
| 76 |
PY
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
done
|
|
|
|
| 89 |
|
| 90 |
ls -la "$HF_HUB_CACHE" || echo "Cache não encontrado após download."
|
| 91 |
|
|
@@ -93,7 +94,6 @@ ls -la "$HF_HUB_CACHE" || echo "Cache não encontrado após download."
|
|
| 93 |
if nvidia-smi >/dev/null 2>&1; then
|
| 94 |
if [ "${DISABLE_BUILDER:-0}" -eq 0 ]; then
|
| 95 |
echo "Executando builder Apex/Q8..."
|
| 96 |
-
# Use o builder revisado (salve como /app/builder.sh)
|
| 97 |
if [ -f /app/builder.sh ]; then
|
| 98 |
chmod +x /app/builder.sh
|
| 99 |
timeout "${BUILDER_TIMEOUT_SEC:-7200}" bash -lc /app/builder.sh || echo "Builder excedeu tempo/erro, prosseguindo."
|
|
@@ -116,7 +116,5 @@ echo "Estrutura em $HF_HOME:"
|
|
| 116 |
ls -la "$HF_HOME" | sed -n '1,200p'
|
| 117 |
|
| 118 |
# ---------------------- Subindo serviço ----------------------
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
python app_vince.py
|
| 122 |
|
|
|
|
| 36 |
if [ -d /data ]; then
|
| 37 |
export HF_HOME="/data/.cache/huggingface"
|
| 38 |
export TORCH_HOME="/data/.cache/torch"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
else
|
| 40 |
export HF_HOME="/app/.cache/huggingface"
|
| 41 |
export TORCH_HOME="/app/.cache/torch"
|
|
|
|
| 42 |
fi
|
|
|
|
|
|
|
| 43 |
export HF_HUB_CACHE="${HF_HUB_CACHE:-$HF_HOME/hub}"
|
| 44 |
+
mkdir -p "$HF_HUB_CACHE" "$TORCH_HOME"
|
| 45 |
+
|
| 46 |
+
# Symlink para compatibilidade com /app
|
| 47 |
+
mkdir -p /app/.cache
|
| 48 |
+
ln -sf "$HF_HOME" /app/.cache/huggingface
|
| 49 |
+
|
| 50 |
+
unset TRANSFORMERS_CACHE
|
| 51 |
export HF_HUB_ENABLE_HF_TRANSFER=1
|
| 52 |
export HF_HUB_DOWNLOAD_TIMEOUT=60
|
| 53 |
|
| 54 |
+
# ---------------------- Pré-download do modelo (cache-first) ----------------------
|
| 55 |
MODEL_REPO="ByteDance-Seed/VINCIE-3B"
|
| 56 |
+
CACHE_MODEL_DIR="$HF_HUB_CACHE/models--ByteDance-Seed--VINCIE-3B"
|
| 57 |
|
| 58 |
+
if [ -d "$CACHE_MODEL_DIR" ] && [ "$(ls -A "$CACHE_MODEL_DIR" 2>/dev/null)" ]; then
|
| 59 |
+
echo "Cache do modelo já existe em $CACHE_MODEL_DIR. Não será feito novo download."
|
| 60 |
+
else
|
| 61 |
+
echo "Baixando o modelo ${MODEL_REPO} para cache persistente em $HF_HUB_CACHE..."
|
| 62 |
+
retry_count=0
|
| 63 |
+
max_retries=3
|
| 64 |
+
while [ $retry_count -lt $max_retries ]; do
|
| 65 |
+
echo "Tentativa $((retry_count+1)) de snapshot_download..."
|
| 66 |
+
python - <<'PY' || true
|
| 67 |
+
import os
|
| 68 |
from huggingface_hub import snapshot_download
|
| 69 |
hf_home = os.environ.get("HF_HOME","/app/.cache/huggingface")
|
| 70 |
cache_dir = os.path.join(hf_home, "hub")
|
| 71 |
os.makedirs(cache_dir, exist_ok=True)
|
| 72 |
repo_id = "ByteDance-Seed/VINCIE-3B"
|
| 73 |
token = os.getenv("HF_TOKEN")
|
| 74 |
+
snapshot_download(repo_id=repo_id, cache_dir=cache_dir, resume_download=True, token=token)
|
| 75 |
+
print("Download concluído.")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 76 |
PY
|
| 77 |
+
status=$?
|
| 78 |
+
if [ $status -eq 0 ]; then
|
| 79 |
+
break
|
| 80 |
+
fi
|
| 81 |
+
retry_count=$((retry_count+1))
|
| 82 |
+
echo "Falha na tentativa $retry_count. Tentando novamente em 10s..."
|
| 83 |
+
sleep 10
|
| 84 |
+
if [ $retry_count -eq $max_retries ]; then
|
| 85 |
+
echo "Erro: Falha ao baixar o modelo após $max_retries tentativas."
|
| 86 |
+
exit 1
|
| 87 |
+
fi
|
| 88 |
+
done
|
| 89 |
+
fi
|
| 90 |
|
| 91 |
ls -la "$HF_HUB_CACHE" || echo "Cache não encontrado após download."
|
| 92 |
|
|
|
|
| 94 |
if nvidia-smi >/dev/null 2>&1; then
|
| 95 |
if [ "${DISABLE_BUILDER:-0}" -eq 0 ]; then
|
| 96 |
echo "Executando builder Apex/Q8..."
|
|
|
|
| 97 |
if [ -f /app/builder.sh ]; then
|
| 98 |
chmod +x /app/builder.sh
|
| 99 |
timeout "${BUILDER_TIMEOUT_SEC:-7200}" bash -lc /app/builder.sh || echo "Builder excedeu tempo/erro, prosseguindo."
|
|
|
|
| 116 |
ls -la "$HF_HOME" | sed -n '1,200p'
|
| 117 |
|
| 118 |
# ---------------------- Subindo serviço ----------------------
|
| 119 |
+
python /app/app_vince.py
|
|
|
|
|
|
|
| 120 |
|