Fsezai33's picture
Handle gated Hub repositories and HF_TOKEN access
894f561 verified
|
Raw
History Blame Contribute Delete
2.88 kB
---
title: Dynamic LLM ZeroGPU Playground
emoji: 🧪
colorFrom: blue
colorTo: indigo
sdk: gradio
sdk_version: 5.50.0
app_file: app.py
short_description: Test Transformers and GGUF LLM quants on ZeroGPU
python_version: "3.10"
startup_duration_timeout: 1h
---
# Dynamic LLM ZeroGPU Playground
A small, general-purpose playground for testing Hugging Face LLMs by model ID.
It supports standard Transformers checkpoints and direct, non-dequantized GGUF
inference through a CUDA-enabled llama.cpp backend.
## How it works
1. Enter a model ID.
2. Click **Inspect / list GGUF**. If the repository contains GGUF, choose one
quant file such as Q4_K_M, Q5_K_M, Q8_0, IQ4, or a newer type.
3. Choose **Backend: Auto** (recommended), or force Transformers/llama.cpp.
4. Click **Download**. Standard repositories use a CPU-side snapshot download;
GGUF repositories download only the selected `.gguf` file.
5. Click **Load**, then chat. Use **Unload** before switching models and
**Delete from disk** to remove the cached revisions/files.
Only one model is kept active by the runtime. Switching models releases the
previous model with `del`, `gc.collect()`, and `torch.cuda.empty_cache()` before
the new model is loaded. Chat templates are used whenever the tokenizer
provides `apply_chat_template()`.
## Backend routing
- `Auto` routes GGUF to llama.cpp and Transformers weight repositories to
`AutoModelForCausalLM`.
- AWQ, GPTQ, bitsandbytes 4/8-bit, compressed-tensors, and FP8 metadata are
detected from `config.json` and filenames. Transformers receives the
repository quantization config and uses the installed optional loaders.
- GGUF is never passed to Transformers or dequantized. llama.cpp is loaded with
`n_gpu_layers=-1`, and the GGUF's embedded chat template/metadata is used by
the Python binding for current Qwen and other supported architectures.
- Only one model/backend is active at a time. Cleanup calls `del`,
`gc.collect()`, `torch.cuda.empty_cache()`, and llama.cpp's close method when
available.
## Notes
- Model downloads happen on CPU and are never triggered by the chat handler.
- A model must be downloaded before it can be loaded or used.
- Large models may exceed ZeroGPU memory or take a long time to load.
- Remote model code is disabled for safety and stability.
- A GGUF repository normally embeds its tokenizer/chat metadata, so the large
companion files are not downloaded. Multimodal `mmproj` files are listed but
are not selected as the default quant.
- Very large models can still exceed the temporary ZeroGPU memory budget; Q4/Q5
GGUF files are generally the best starting point on an A10G.
- Some Hub repositories are gated even when their file list is visible. For a
gated repo, accept access on Hugging Face and add a read-scoped `HF_TOKEN`
secret to this Space; the UI reports this requirement before download.