steerable-retrieval / README.md
Pliploop's picture
Upload folder using huggingface_hub
cbfe92b verified
|
Raw
History Blame Contribute Delete
1.66 kB

A newer version of the Gradio SDK is available: 6.24.0

Upgrade
metadata
title: Sparse Steerable Retrieval
emoji: 🎚️
colorFrom: purple
colorTo: indigo
sdk: gradio
sdk_version: 4.44.1
app_file: app.py
pinned: false
license: mit
short_description: Build live concept sliders for dense music retrieval

Sparse Steerable Retrieval β€” live demo

Open-vocabulary concept control for dense music retrieval. Search for a seed track or draw one at random, make one or more free-form concept sliders, then move the sliders together. The query embedding is edited through sparse inversion in a trained BatchTopK SAE (MuQ-MuLan / music4all), and nearest neighbours are retrieved live after each slider move. No audio is hosted β€” playback is via Spotify embeds.

Runs on ZeroGPU: the corpus + MuQ weights are fetched at startup; the text tower is used on GPU only while a new slider is instantiated. Sparse inversion, slider edits, and retrieval run on CPU from cached slider masks.

Configuration (Space variables / secrets)

  • SSR_CHECKPOINT β€” HF model repo id, e.g. Pliploop/steerable-retrieval-sae (variable)
  • SSR_L0 β€” subfolder to load, e.g. L0-20 (variable)
  • SSR_CORPUS_REPO β€” HF dataset repo id with corpus.npz + meta.json (variable)
  • SSR_DEVICE β€” cuda (variable)
  • HF_TOKEN β€” a read token (secret) so the Space can read the private corpus dataset

Layout

  • app.py β€” the Gradio ZeroGPU app: seed search, slider creation, live retrieval.
  • core.py β€” engine: load model + corpus, combine sparse slider edits, retrieve.
  • steerable_retrieval/ β€” vendored package (steering API + SAE + MuQ encoder).

This Space is published by hf/push_all.py in the project repo.