Spaces:
Running
Running
|
Download README.md from alphabell/Model-Observatory: direct link, hf CLI and curl.
- Browser
- Download file 8.5 kB
-
https://huggingface.co/spaces/alphabell/Model-Observatory/resolve/main/README.md
- Command line
-
hf download hf://spaces/alphabell/Model-Observatory/README.md
-
curl -L -o README.md https://huggingface.co/spaces/alphabell/Model-Observatory/resolve/main/README.md
8.5 kB
| title: Model Observatory | |
| emoji: 🔬 | |
| colorFrom: green | |
| colorTo: gray | |
| sdk: static | |
| app_file: index.html | |
| pinned: true | |
| license: mit | |
| short_description: "Real Flint and Qwen Q8 captures, replayed token by token" | |
| thumbnail: https://huggingface.co/spaces/alphabell/Model-Observatory/resolve/main/cover.png | |
| models: | |
| - RecursiveSI/flint | |
| - Qwen/Qwen3.8-27B | |
| - alphabell/alphaBell-Qwen3.8-27B-Open-GGUF | |
| - alphabell/Flint-Matched-GGUF | |
| tags: | |
| - interpretability | |
| - visualization | |
| - mixture-of-experts | |
| - attention | |
| - recurrent-memory | |
| - qwen | |
| - flint | |
| - educational | |
| # Model Observatory | |
| **What changes inside a language model as it writes its next token?** | |
| Explore two different architectures with real Q8_0 tensor captures: Flint's sparse expert routing and alphaBell Qwen Open's recurrent memory. Open a block, head or expert, then step through the tokens that used it. | |
| [**Open the explorer**](https://huggingface.co/spaces/alphabell/Model-Observatory) · [Qwen view](https://alphabell-model-observatory.static.hf.space/?model=qwen) · [Source](https://huggingface.co/spaces/alphabell/Model-Observatory/tree/main) · [alphaBell](https://alphabell.com) | |
|  | |
| ## Five measured experiments | |
| [**Open all five experiments**](https://alphabell-model-observatory.static.hf.space/experiments/index.html) | |
| 1. [One word changed](https://alphabell-model-observatory.static.hf.space/experiments/index.html?experiment=reroute): twelve captures from three controlled prompt pairs on both models. | |
| 2. [Spot the 4-bit model](https://alphabell-model-observatory.static.hf.space/experiments/index.html?experiment=quant): twelve blinded Q4_1/Q8_0 answer pairs, with measured timing, process memory and exact checks. | |
| 3. [Activation surgery](https://alphabell-model-observatory.static.hf.space/experiments/index.html?experiment=surgery): scale one Flint feed-forward branch to one, half or zero and inspect the downstream effects. | |
| 4. [The correction detective](https://alphabell-model-observatory.static.hf.space/experiments/index.html?experiment=memory): predict answers to current-fact and original-fact questions, then reveal the actual runs. | |
| 5. [Model music](https://alphabell-model-observatory.static.hf.space/experiments/sound.html): hear deterministic sonification of real routing and recurrent-head values, with synchronized replay and WAV downloads. | |
| The experiments contain 60 new model generations. Eleven of twelve quantization pairs returned identical text; the differing arithmetic pair was wrong at both precisions. The activation study retains all six cases and every measured frame. Both models passed all six short memory tasks. These are small, fixed demonstrations, with one greedy generation per condition. | |
| [Results and provenance](experiments/data/results.json) · [Capture manifest](experiments/data/traces.json) · [Reproduction source](https://huggingface.co/spaces/alphabell/Model-Observatory/tree/main/experiments/reproduce) · [Technical articles](https://huggingface.co/spaces/alphabell/Model-Observatory/tree/main/experiments/articles) | |
| ## Try it | |
| 1. Open **Flint**. Choose a token, then click one of the six selected experts in layer 12. Its timeline shows when the router selected it. | |
| 2. Switch to **Qwen**. Open a recurrent head in layer 0 to inspect its write gate, retention and state RMS. Layer 3 uses full attention instead. | |
| 3. Use **Token history** to compare head-output magnitudes across the answer. Open a block for fullscreen inspection, or slow replay to one token every eight seconds. | |
| 4. Export the complete trace or import a compatible capture JSON. Files stay in your browser tab. **Share view** links to a model, layer and token in the bundled example; it does not upload imported files. | |
| The two examples use the same prompt, “Explain why the sky is blue in two sentences.” Flint contains 59 output-token frames; Qwen contains 44. Captures include the original sampling settings, token bytes, timings and architecture. Measurements retain their original numeric values. Public run identifiers replace internal identifiers. | |
| ## Two architectures | |
| | | Recursive Flint | alphaBell Qwen Open text decoder | | |
| | --- | --- | --- | | |
| | Decoder blocks | 49 | 64 | | |
| | Attention | 14 full, 35 sliding | 48 Gated DeltaNet, 16 full | | |
| | Heads | 32 query, 4 KV | Recurrent: 48 value, 16 key. Full: 24 query, 4 KV | | |
| | Feed-forward | First 2 blocks dense; then top 6 of 256 routed experts plus a shared expert | Dense in every block | | |
| | Capture precision | Q8_0 | Q8_0 | | |
| ## Reading the measurements | |
| Head brightness is output RMS before the output projection. Every head executes; brightness is a magnitude, not an on/off signal. The structure view scales brightness to the current frame's 95th percentile. Token history uses one scale over the entire trace. Use the exact displayed values to compare frames or models. | |
| Expert selection and normalized routing weights are directly captured. Individual routed-expert output vectors are not retained; expert views show routing and aggregate routed output. Full/sliding attention retains its eight strongest token positions, rather than the full attention matrix. Flint has a learned attention sink; its recorded entropy is the token-position contribution. | |
| Qwen's recurrent heads update memory instead of producing a token-position softmax. Their views show write gates, retention and state RMS. The Qwen capture covers its text decoder, excluding vision and MTP. | |
| Each frame is the forward pass that **predicts** the selected output token. The first frame uses the last prompt token; subsequent frames use the preceding generated token. Magnitudes and routing describe these runs. They do not establish causal explanations or model quality rankings. | |
| ## Captures and provenance | |
| The Qwen participant is alphaBell Qwen Open 27B, a post-trained derivative of Qwen3.8-27B. Its tracing checkpoint was converted from the lab BF16 model to Q8_0; it is not the untouched parent or a dequantization of the public FP8 sibling. The parent configuration identifies architecture, rather than the identity of the captured weights. This applies to the original sky capture as well as the new experiments. | |
| The exact matched [Flint](https://huggingface.co/alphabell/Flint-Matched-GGUF) and [Qwen Open](https://huggingface.co/alphabell/alphaBell-Qwen3.8-27B-Open-GGUF) Q4_1/Q8_0 files are separate model repositories. Their licenses remain separate from the viewer code license. | |
| Both examples were measured with an instrumented llama.cpp evaluation callback at commit `74686f08`, with Flash Attention disabled. The engine is an assembled source tree rebuilt from the public upstream base and [included patch](experiments/reproduce/README.md). Capture uses native tensor strides and supports reshaped routing weights. The saved metadata records CPU execution, 16 threads and a 2048-token context. Playback speed changes presentation, independently of the original capture timings. | |
| The public Space is a static capture explorer. It does not generate new answers. A separate instrumented capture engine is required to produce additional traces. [Trace format and compatibility](TRACE-FORMAT.md) explains the accepted exports; ordinary chat API responses do not contain these measurements. | |
| [Source pins](sources.json) identify the model configurations checked for this release. [Capture manifest](traces/index.json) records SHA-256 checksums of compressed files and decoded JSON. The browser verifies both before loading an example. Local imports are checked for model identity, architecture, dimensions and valid measurements before replacing the current trace. | |
| ## Run locally | |
| Serve this directory over HTTP, for example with `python3 -m http.server 8000`, then open `http://localhost:8000`. There is no build step, inference service, account or API key. The viewer uses browser gzip streams and Web Crypto, available in current Chrome, Firefox and Safari over HTTPS or localhost. | |
| Run `npm test` for trace and release checks. For interaction checks, install `requirements-dev.txt`, install Playwright Chromium, serve the directory, and run `python verify.py --base http://localhost:8000`. Browser checks also accept `--chromium /path/to/chromium`. | |
| Built by **alphaBell**. Model Observatory is an independent project. Model configurations and names belong to their respective publishers. See [NOTICE](NOTICE) and [LICENSE](LICENSE). | |