Spaces:
Paused
Paused
Download Dockerfile from viarl199020/BITNET: direct link, hf CLI and curl.
- Browser
- Download file 4.78 kB
-
https://huggingface.co/spaces/viarl199020/BITNET/resolve/main/Dockerfile
- Command line
-
hf download hf://spaces/viarl199020/BITNET/Dockerfile
-
curl -L -o Dockerfile https://huggingface.co/spaces/viarl199020/BITNET/resolve/main/Dockerfile
4.78 kB
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # OMNI-NEXUS Β· Worker de chat (reemplaza al de BitNet) | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # | |
| # POR QUΓ YA NO SE USA BITNET | |
| # βββββββββββββββββββββββββββ | |
| # bitnet.cpp NO incluye servidor HTTP. Su submΓ³dulo de llama.cpp solo compila | |
| # `llama-cli`; el target `llama-server` no existe, de ahΓ el error | |
| # "No rule to make target 'llama-server'" que salΓa siempre. | |
| # Y `setup_env.py` morΓa con OOMKilled porque convierte el modelo con PyTorch | |
| # durante el build, cosa que no cabe en la RAM del builder de HF. | |
| # | |
| # Esta imagen usa los binarios OFICIALES precompilados de llama.cpp β la misma | |
| # receta con la que tu Space `coder` ya arranca sin problemas. Cero compilaciΓ³n | |
| # de C++, build de 3-5 minutos en vez de 25. | |
| # | |
| # EL BUG DE libllama.so, RESUELTO | |
| # βββββββββββββββββββββββββββββββ | |
| # El zip oficial trae el binario Y sus librerΓas compartidas. Antes copiaba | |
| # solo el binario y por eso fallaba con "libllama.so: cannot open shared | |
| # object file". Ahora se copia el directorio COMPLETO y se registra con | |
| # ldconfig. | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| FROM python:3.11-slim AS llama | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| wget unzip ca-certificates \ | |
| && rm -rf /var/lib/apt/lists/* | |
| ARG LLAMA_RELEASE="b4585" | |
| RUN wget -q -O /tmp/l.zip \ | |
| "https://github.com/ggml-org/llama.cpp/releases/download/${LLAMA_RELEASE}/llama-${LLAMA_RELEASE}-bin-ubuntu-x64.zip" \ | |
| && mkdir -p /llama && unzip -q /tmp/l.zip -d /llama \ | |
| && echo "[LLAMA] contenido descargado:" && find /llama -name "llama-server" -o -name "*.so*" | head -20 | |
| # ββ Modelo βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| FROM python:3.11-slim AS fetcher | |
| RUN pip install --no-cache-dir huggingface_hub | |
| # Llama 3.2 3B en Q4_K_M (~2 GB). En 2 vCPU da 8-12 tok/s. | |
| # Para mΓ‘s velocidad y menos calidad, cambia a 1B (~0.8 GB, 20-30 tok/s): | |
| # MODEL_REPO=bartowski/Llama-3.2-1B-Instruct-GGUF | |
| # MODEL_FILE=Llama-3.2-1B-Instruct-Q4_K_M.gguf | |
| ARG MODEL_REPO="bartowski/Llama-3.2-3B-Instruct-GGUF" | |
| ARG MODEL_FILE="Llama-3.2-3B-Instruct-Q4_K_M.gguf" | |
| ENV MODEL_REPO=${MODEL_REPO} | |
| ENV MODEL_FILE=${MODEL_FILE} | |
| COPY download_model.py /tmp/download_model.py | |
| RUN mkdir -p /models && python3 /tmp/download_model.py | |
| # ββ Runtime ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| FROM python:3.11-slim AS runtime | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| curl ca-certificates libgomp1 libstdc++6 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /app | |
| # Directorio COMPLETO, no solo el binario: asΓ vienen las .so que necesita. | |
| COPY --from=llama /llama /opt/llama | |
| COPY --from=fetcher /models /models | |
| # Localizar el binario donde sea que estΓ© dentro del zip, enlazarlo, y | |
| # registrar sus librerΓas en el linker dinΓ‘mico. | |
| RUN BIN="$(find /opt/llama -name 'llama-server' -type f | head -1)" \ | |
| && test -n "$BIN" || { echo "FATAL: llama-server no encontrado"; exit 1; } \ | |
| && chmod +x "$BIN" && ln -sf "$BIN" /usr/local/bin/llama-server \ | |
| && find /opt/llama -name "*.so*" -exec cp {} /usr/local/lib/ \; \ | |
| && ldconfig \ | |
| && echo "/usr/local/lib" > /etc/ld.so.conf.d/llama.conf && ldconfig \ | |
| && llama-server --version 2>&1 | head -3 || true | |
| RUN pip install --no-cache-dir \ | |
| fastapi==0.115.6 \ | |
| "uvicorn[standard]==0.34.0" \ | |
| httpx==0.28.1 | |
| ENV N_CTX=4096 | |
| ENV N_THREADS=2 | |
| ENV LLAMA_PORT=8080 | |
| ENV PORT=7860 | |
| ENV WORKER_ID=A | |
| ENV WORKER_KIND=chat | |
| ENV MODEL_NAME="llama-3.2-3b" | |
| ENV CHAT_TEMPLATE=llama3 | |
| ENV LLAMA_TIMEOUT=180.0 | |
| ENV LD_LIBRARY_PATH="/usr/local/lib" | |
| COPY server.py start.sh ./ | |
| RUN chmod +x start.sh | |
| EXPOSE 7860 | |
| HEALTHCHECK --interval=30s --timeout=15s --start-period=240s --retries=5 \ | |
| CMD curl -f http://localhost:7860/health || exit 1 | |
| CMD ["./start.sh"] | |