Piecrust/Spike-350M-GGUF
<p align="center"> <img src="https://huggingface.co/Piecrust/Spike-350M-GGUF/resolve/main/banner.png" alt="Spike-350M-GGUF" width="100%"> </p>
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
pieswap.app serves Q5KM to desktop browsers and Q4KS to mobile devices: mobile runs on CPU, where Q4KS 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)
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_thinkingchat-template kwarg. This fine-tune was trained entirely with thinking disabled — run it withenable_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 whentoolsare 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.
