Download docs/HOSTING.md from gexinh/SlideBank: direct link, hf CLI and curl.
- Browser
- Download file 5.51 kB
-
https://huggingface.co/spaces/gexinh/SlideBank/resolve/main/docs/HOSTING.md
- Command line
-
hf download hf://spaces/gexinh/SlideBank/docs/HOSTING.md
-
curl -L -o HOSTING.md https://huggingface.co/spaces/gexinh/SlideBank/resolve/main/docs/HOSTING.md
A newer version of the Gradio SDK is available: 6.30.0
Hosted evidence workbench
The hosted workbench opens the prebuilt evidence bank in demos/. Visitors can
browse the slide, regions, anchors, and patch captions without model inference.
On ZeroGPU, questions run through the shared question policy, agent router with
rule fallback, compact evidence retrieval, and final answer generation.
The hosted model is Qwen2.5-VL-3B-Instruct. It is a demonstration backbone, separate from the paper's pathology models and from the models used to construct the stored observations. Hosted answers are generated when a visitor submits a question; the viewer does not replay saved answers.
CPU preview
python -m pip install -e '.[ui]'
python space_app.py
Open http://127.0.0.1:7860. The launcher binds to 0.0.0.0 for hosted use.
On ordinary CPU hardware it starts the evidence browser and disables live QA.
It does not load a language model or send a request to an inference provider.
The hosted interface uses the bundled slides. Upload, model/API configuration,
and rebuilding controls remain available in the local python app.py workbench.
Hugging Face Space
Prepare the deployment directory:
python scripts/stage_space.py --out-dir build/hf-space
The staging command packages the code and demo assets, using
hf_space/README.md as the Space card and hf_space/requirements.txt as its
root requirements file. The repository's main README and requirements stay
unchanged. The Space requirements list dependencies directly because the
Gradio builder installs them before copying application source; the app imports
the bundled Python package from its working directory. Upload the staged
directory to the intended Space:
hf upload gexinh/SlideBank build/hf-space --repo-type space
For a fork, replace gexinh/SlideBank with its Space repository ID. Select
ZeroGPU in the Space hardware settings for live QA. The launcher checks the
platform's SPACES_ZERO_GPU flag and the Spaces SDK; it keeps QA disabled on
cpu-basic even though the GPU decorator alone would be a no-op there.
The Space uses Python 3.10, Gradio 5.34.2, PyTorch 2.8.0, and Transformers
4.51.3. The standalone Space requirements and the hosted package extra declare
the same model/runtime dependencies.
Quilt-LLaVA's external legacy runtime is not needed by this hosted model.
Model preparation and GPU execution
The Space card's preload_from_hub entry caches the Qwen checkpoint during the
Space build. Startup then explicitly prepares the model using the Spaces SDK's
CUDA emulation, before starting the web interface. Importing the launcher does
not prepare a model; CPU-only startup skips this step entirely.
The complete question-answering call runs inside spaces.GPU(duration=60).
This includes routing and final answer generation, so both calls use the same
allocated GPU and cached client. The workbench queues one request at a time,
with up to eight queued requests. GPU availability and daily quota are managed
by Hugging Face. An allocation, quota, or inference error leaves evidence
browsing available and asks the visitor to retry later.
The SDK can scale this reservation for its GPU profile; a 60-second duration
currently reserves 90 seconds on the Blackwell large profile. A request can be
declined while some allowance remains if that allowance is below the reserved
duration. The workbench explains this distinction and suggests signing in to
Hugging Face or returning after the allowance resets.
No visitor API key or paid inference endpoint is used. There is no automatic fallback to an API or to multi-billion-parameter CPU inference.
The runtime follows the ZeroGPU SDK documentation. The Space's hardware selection and build status determine whether live QA is available; a successful CPU preview checks browsing, not GPU inference.
Configuration
| Setting | Hosted default |
|---|---|
| Entry point | space_app.py |
| Inference configuration | configs/hosted.yaml |
| Evidence trees | demos/ui_tree |
| Retrieval bank | demos/bank |
| Image artifacts | demos/artifacts |
| Model | Qwen/Qwen2.5-VL-3B-Instruct |
| Device and precision | cuda:0, bf16 |
| Output limit | 256 generated tokens per model call |
| GPU duration | 60 seconds for the complete QA call |
| Image budget | 401,408 pixels, about 512 visual tokens for Qwen |
| Question limit | 2,000 characters |
| Host and port | 0.0.0.0:7860 |
The existing SLIDEBANK_UI_TREE_DIR, SLIDEBANK_BANK_DIR,
SLIDEBANK_ARTIFACT_DIR, SLIDEBANK_INFER_CONFIG, SLIDEBANK_HOST, and
SLIDEBANK_PORT variables can override the corresponding launcher paths or
network settings. SLIDEBANK_GPU_DURATION sets a GPU duration between 15 and
120 seconds, defaulting to 60. Changing model, path, or hardware settings requires
a Space restart.
allow_remote_download: true in configs/hosted.yaml explicitly permits model
downloads on the hosted path. Local Hugging Face inference remains cache-only
by default; enabling downloads for the Space does not alter that default.
Checks without model downloads
python -m unittest discover -s tests -p 'test_hosted_runtime.py' -v
These checks exercise CPU-only startup, hosted control restrictions, model configuration, the GPU boundary, and decoder output parsing with temporary fixtures. Actual ZeroGPU generation is checked on the deployed Space.