| --- |
| license: other |
| license_name: lfm1.0 |
| license_link: https://huggingface.co/LiquidAI/LFM2-350M/blob/main/LICENSE |
| base_model: LiquidAI/LFM2-350M |
| tags: [webgpu, wgsl, gptq, int4, browser, text-generation] |
| --- |
| |
| # lfm2-350m-webgpu — GPTQ-int4 weights |
|
|
| Custom GPTQ-int4 quants (group 32, byte-sliced nibbles, dedicated q4 |
| lm_head, q8 embedding gather) of |
| [LiquidAI/LFM2-350M](https://huggingface.co/LiquidAI/LFM2-350M) and |
| [LiquidAI/LFM2.5-350M](https://huggingface.co/LiquidAI/LFM2.5-350M), in the |
| wire format of the |
| [lfm2-350m-webgpu](https://huggingface.co/spaces/borkiss/lfm2-350m-webgpu-demo) browser runtime |
| (hand-written WGSL kernels, no ONNX / transformers.js / GGUF). |
| |
| - 269 MB per model; ~390 tok/s single-stream decode and ~1640 tok/s batched |
| (64 streams) on an Apple M4 (10-core GPU) in Chrome. |
| - LFM2: ppl +3.2% vs f32 on held-out text. |
| - LFM2.5: GPTQ calibrated on **chat-formatted** passages (raw-prose |
| calibration degrades an instruct checkpoint badly): ppl +4.9% vs f32 in its |
| native chat format. |
| - The runtime is verified bit-exact against a PyTorch dequantized-weights |
| reference, greedy token-for-token. |
| |
| f16/q8 blobs are reproducible with the repo's tools/ scripts. |
| |
| Try it: **https://huggingface.co/spaces/borkiss/lfm2-350m-webgpu-demo** · run the benchmark on |
| your GPU and share the .log from the /web/bench.html page. |
| |