Fsezai33's picture
Handle gated Hub repositories and HF_TOKEN access
894f561 verified
|
Raw
History Blame Contribute Delete
2.88 kB

A newer version of the Gradio SDK is available: 6.26.0

Upgrade
metadata
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.