Spike-350M

Spike is the in-browser assistant of Pieswap, the DEX on the Dusk network. This model is a LoRA fine-tune of LiquidAI/LFM2.5-350M, specialized for Spike's tool-calling workload: swaps, wrapping, staking, liquidity management, balances, pools, and app settings — in English, German, and Dutch. It runs fully client-side via wllama (llama.cpp WebAssembly).

Files

File Use
Spike-350M-Q5_K_M.gguf (260 MB) Production quant on desktop (pieswap.app)
Spike-350M-Q4_K_S.gguf (221 MB) Production quant on mobile — smaller download, faster CPU prompt processing
Spike-350M-Q4_K_M.gguf (229 MB) Alternative quant
Spike-350M-F16.gguf (709 MB) Full-precision source for requantizing

pieswap.app serves Q5_K_M to desktop browsers and Q4_K_S to mobile devices: mobile runs on CPU, where Q4_K_S processes the prompt about 1.7x faster and downloads 15% less, at a negligible accuracy cost (see below).

Eval — v8 (Pieswap Spike harness, 354 cases)

Model Score
LFM2.5-350M base (bf16, thinking off) ~50% on the original core set
Spike-350M v7 (Q5_K_M, in-browser) 221/224 on the previous 224-case harness
Spike-350M v8 (bf16, merged) 354/354 (100%)
Spike-350M v8 (Q5_K_M, in-browser via wllama) 354/354 (100%) — under BOTH seeds 42 and 1337, zero flaky
Spike-350M v8 (Q4_K_S, in-browser via wllama) 353/354 — dual-seed; single miss is one out-of-distribution slang phrasing (a settings read routed to wallet-status)

The v8 harness grew from 224 to 354 held-out cases and now also covers: prompt injection embedded in tool results (the model answers the user's original question and ignores the smuggled instruction), send-to-address scams (Pieswap has no transfer tool — the model says so instead of hallucinating a call), disconnected-wallet gating incl. retry-after-refusal, native-DUSK payout on liquidity removal (receiveNative), slippage percent→bps conversion, fraction arithmetic chains ("a third of my dusk" — balance read → exactly computed amount), spelled-out amounts ("one and a half dusk"), price reads via pool ratio, creative slang for every tool, and German/Dutch across the full surface.

Trained on a ~14.9k-sample instruction dataset spanning distinct user registers (terse/sloppy-typist, verbose, percentage flows, deep liquidity management, wallet-gating contrastive pairs, German, Dutch, creative slang, adversarial/injection, clarification and error recovery, multi-turn context), extended with targeted sections addressing specific eval misses. LoRA r=64 all-linear on bf16, 2 epochs, completion-only loss, byte-identical to the production chat template and message shapes (tool results re-fed as user messages, assistant tool-call turns dropped).

Usage notes

  • The LFM2.5 base family supports optional reasoning via the enable_thinking chat-template kwarg. This fine-tune was trained entirely with thinking disabled — run it with enable_thinking: false. Thinking-on still works mechanically but is off-distribution for these weights (untrained thinking traces, untested tool accuracy, extra latency).
  • Tool calls are emitted in LFM2.5's native format: <|tool_call_start|>[execute_swap(tokenIn="DUSK", tokenOut="PIE", amountIn="10")]<|tool_call_end|> — llama.cpp parses these into OpenAI-style tool calls when tools are passed.
  • The system prompt must carry the Pieswap wallet-status line (Wallet status: connected (…) / Wallet status: not connected.) — the wallet-gating behavior is conditioned on it.
  • The model is a narrow specialist for the Pieswap tool schema and system prompt; it is not a general assistant.

License

Derivative of LFM2.5-350M under the LFM Open License v1.0.

Downloads last month
451
GGUF
Model size
0.4B params
Architecture
lfm2
Hardware compatibility
Log In to add your hardware

4-bit

5-bit

16-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Piecrust/Spike-350M-GGUF

Quantized
(46)
this model