Download README.md from PYTHAI/browseML: direct link, hf CLI and curl.
- Browser
- Download file 5.23 kB
-
https://huggingface.co/spaces/PYTHAI/browseML/resolve/main/README.md
- Command line
-
hf download hf://spaces/PYTHAI/browseML/README.md
-
curl -L -o README.md https://huggingface.co/spaces/PYTHAI/browseML/resolve/main/README.md
title: browseML
emoji: π
colorFrom: green
colorTo: yellow
sdk: static
app_file: app.html
pinned: false
license: mit
short_description: bankML in your browser, verified, a receipt on every answer
custom_headers:
cross-origin-embedder-policy: credentialless
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: cross-origin
tags:
- webassembly
- browser-inference
- 1-bit
- gguf
- verified-inference
- rust
models:
- prism-ml/Bonsai-1.7B-gguf
browseML β bankML in your browser
This page runs bankML's own engine, compiled to WebAssembly, on your CPU. Nothing to install, no account, and no server answers for you: the Space only serves files.
browseML 0.8.8 (release): the app opens at app.html
(the field, the control panel, diagnostics, personas, receipts banked); the landing page is index.html.
- The model, verified before it speaks. Bonsai-1.7B Q1_0 (248 MB) is downloaded once from
prism-ml/Bonsai-1.7B-ggufat a pinned revision and kept in your browser's Cache Storage. The engine checks it asbankml servedoes: the GGUF guard, then the sha256 of the whole file against its pin (browseML/Bonsai-1.7B-Q1_0.gguf.FORK.json). It does not answer from a file that fails either check. - A receipt on every answer, checked in the page. The engine returns
serve's ownbankml_receipt. The page recomputes the sha256 of the text it received and shows the verdict under the answer: β when it matches, β when it does not or when no receipt came. - Three things kept apart. The answer is only the model's text. A note the page adds is labelled as the page's. The delivery line gives the engine's own token counts, the time to the first token, tokens per second, where it ran and the receipt's verdict. If the engine counts no completion tokens, the page says No delivery from the model rather than showing text. Only a delivered answer joins the conversation.
Three builds, one engine
| file | target | used when |
|---|---|---|
browseml-mt-relaxed.wasm |
wasm32-wasip1-threads, SIMD + relaxed SIMD |
the page is cross-origin isolated, the browser compiles relaxed SIMD (Chrome, Edge), and relaxed_madd is fused on this machine (checked when the engine starts) |
browseml-mt.wasm |
wasm32-wasip1-threads, SIMD |
cross-origin isolated, otherwise (Firefox, or relaxed_madd not fused) |
browseml.wasm |
wasm32-wasip1, SIMD |
not isolated, or no SharedArrayBuffer: one thread |
All three are exact, not approximate. The SIMD kernels match the scalar reference bit for bit. The relaxed build
is used only where its multiply-add is fused, which makes it the reference's mul_add; where it is not fused, the
page falls back to browseml-mt.wasm. The answers are the same with any build. Only the speed changes.
The oracle. browseML/testing/oracle.mjs runs the WebAssembly engine on llama-server b11192's recorded answers
(nine conversations, temperature 0.3, fixed seeds). Every text, finish reason and token count must be identical.
browseml.wasm gives 9 of 9, and browseml-mt-relaxed.wasm on 2 threads gives 9 of 9.
Limits
- Threads need cross-origin isolation. This Space sends
cross-origin-opener-policy: same-originandcross-origin-embedder-policy: credentialless(above). Without them, the engine runs on one thread. - Safari runs on one thread.
- The model's first download is 248 MB. The page asks before it starts, then shows the download's progress.
- Memory. A tab holds about twice the model while it loads, then the model once.
- An answer cannot be stopped midway. The engine runs until the turn ends or the answer reaches its token limit.
- Speed is your CPU's. On a 2-core laptop the engine writes about 1 to 3 tokens a second.
The files
This Space is the build of github.com/browseML/browseML at tag v0.8.8
(app/: npm run build): app.html and assets/ are the app, index.html, style.css and app.js the landing
page, the three .wasm the engines exactly as the release gate built them (both oracles 9 of 9, 78 of 78 browser
checks; record testing/results/v0.8.8.txt in the repository). COPIED.json records the sha256 of every file, so a
copy that drifts from its release shows up. Here browseML answers as itself: no host file, so no host persona or
docs atlas (those are mindx.pythai.net's).
More bankML
- PYTHAI/bankml: the full Space. It offers bankML in this browser,
your own
bankml serve, or a Hugging Face provider (labelled as not bankML), plus diagnostics, FAQ and logs. - PYTHAI/bankML-UIF: the experimental edition.
- github.com/cryptoAGI/bankml: the source. The runtime for 1-bit and ternary GGUF models is bit-exact against llama.cpp b11192.
Licence: bankML is MIT OR Apache-2.0, at your choice. This Space's files are under either licence, and the Hub
lists it as mit. Bonsai-1.7B is Apache-2.0 (prism-ml).