--- license: apache-2.0 base_model: LiquidAI/LFM2.5-1.2B tags: - gguf - llama.cpp - lfm2 - on-device - tool-calling - solana - wallet-assistant library_name: gguf pipeline_tag: text-generation --- # GhostAI_LiquidSFT On-device **Solana wallet assistant** fine-tuned from **LFM2.5-1.2B** (Liquid AI) for mobile inference via **llama.cpp / llama.rn**. Trained to call wallet tools in the **Hermes `{...}`** format and to answer Solana / DeFi / wallet-security questions. ## Files | File | Quant | Size | Use | |------|-------|------|-----| | `GhostAI_LiquidSFT.Q4_K_M.gguf` | Q4_K_M | ~698 MB | **Recommended for phones** — best size/quality balance | | `GhostAI_LiquidSFT.Q5_K_M.gguf` | Q5_K_M | ~805 MB | Higher quality, modest size bump | | `GhostAI_LiquidSFT.Q6_K.gguf` | Q6_K | ~919 MB | Near-lossless vs the 16-bit model | | `GhostAI_LiquidSFT.BF16.gguf` | BF16 | ~2.2 GB | Full-precision reference for re-quantization | ## Prompt format (ChatML) ``` <|im_start|>system {system prompt with tool catalog}<|im_end|> <|im_start|>user {user message}<|im_end|> <|im_start|>assistant ``` Tool calls are emitted as: ``` {"name": "get_sol_balance", "arguments": {"address": "..."}} ``` The ChatML chat template (with tool + `<|im_end|>` handling) is embedded in the GGUF. ## Training - **Base:** `unsloth/LFM2.5-1.2B-Instruct` - **Method:** LoRA SFT (Unsloth), r=32 / α=64, rsLoRA, NEFTune (α=5), bf16 - **LoRA targets:** `q,k,v,out_proj` (attention) + `in_proj` (conv) + `w1,w2,w3` (MLP) — all 16 layers - **Data:** merged tool-calling dataset (Hermes, 172 tools) + Solana/DeFi/security knowledge base - **Seq len:** 2048 (0% truncation) · response-only masking (user **and** tool turns masked) - **Result:** best eval_loss **0.1736**, converged at ~1 epoch (early-stopped) ## Run with llama.cpp ```bash llama-cli -m GhostAI_LiquidSFT.Q4_K_M.gguf -p "<|im_start|>user\nWhat is my SOL balance?<|im_end|>\n<|im_start|>assistant\n" ```