CoolFace
Modelpublic

Piecrust/Spike-350M-GGUF

sourceHugging Faceotherupdated 2mo agoView on Hugging Face
0likes143downloads
Model Card

<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

FileUse
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 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)

ModelScore
LFM2.5-350M base (bf16, thinking off)≈50% on the original core set
Spike-350M v7 (Q5KM, 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.