AI Research
BookkeepingLM 端側工具調用小模型
從零使用純 PyTorch 實作 58M 參數 Decoder-only Transformer 架構,研究端側極小參數量下的工具調用 (Tool-Calling) 與語意協議壓縮技術,支援 PWA 離線推論。
2026.07.08
// 模型架構與訓練
專案資訊
角色:
模型架構與訓練
時間:
2026.07 - 2026.10
類型:
AI Research
技術棧
Python
PyTorch
Transformers
LLM Training
Edge AI
Tool Calling
GGUF
PWA
BookkeepingLM — 基於語意協議壓縮的超小型端側工具調用語義模型
An Empirical Study on Efficient Tool-Calling Language Models under 30M~58M Parameters via Semantic Protocol Compression

研究背景與動機
隨著隱私意識提升與本地運算普及,在 PWA(漸進式網頁應用)中實現離線端側 AI 推理已成為重要趨勢。然而,部署 0.5B 或 1.8B 等參數量的小模型,在行動端瀏覽器(透過 WASM/WebGPU)運行時仍面臨顯著的載入延遲與記憶體(KV Cache)開銷。
本專案從零開始設計並訓練了一個約 58M 參數 的超微型 Decoder-only 語言模型(BookkeepingLM)。
本研究的核心假說:在極小型端側 LLM 中,Tool Calling 的瓶頸不只是模型容量限制,更是輸出協議 (Output Protocol) 的冗餘。透過語意協議壓縮 (Semantic Protocol Compression),能顯著降低生成長度並提升輸出格式與欄位預測的穩定性。
模型架構與設計特色
本專案模型架構為純 PyTorch 原生編寫實作 (From Scratch),不依賴第三方封裝,對標現代前沿小模型的架構設計:
- 參數量規格:
- 總參數量:約 58M
- Transformer 層數:12 層
- 隱藏層維度 ($d_{\text{model}}$):768
- 注意力機制:Grouped-Query Attention (GQA),Query Heads = 8, Key/Value Heads = 4 (2:1 比例,使推論時 KV Cache 記憶體開銷直接折半)
- 前饋網路:SwiGLU 雙線性激活閘控機制(中間維度 1152)
- 位置編碼:Rotary Position Embedding (RoPE) 二維複數旋轉位置編碼
- 歸一化與優化:Pre-RMSNorm、Tied Embedding(輸入 Embedding 與輸出 LM Head 權重共享)
- 最大序列長度:1024
- 詞表大小:6400 + 8 個自訂記帳語意特殊 Token = 6406
訓練與資料管線
- 資料合成與清洗:
- 開發合成語料生成器,涵蓋一般生活消費、薪資收入、金融投資等高低頻記帳場景。
- 引入日期動態注入強化與短語抗擾動機制。
- 兩階段訓練:
- 領域適應預訓練 (Pre-training):結合中文維基百科與領域對話進行 Packing 比例預訓練。
- 指令監督微調 (Continue-SFT):使用 bf16 混合精度與進程級 VRAM 限制機制進行高效率微調。
- 端側導出與量化:
- 原生支援導出為 ONNX 格式。
- 提供轉換腳本輸出為標準 Llama 相容結構,進一步轉為 llama.cpp GGUF 格式(Q4_K_M、Q8_0 等),供 WASM / WebGPU 在瀏覽器中離線運行。
成果與發布
- 權重已公開發布於 Hugging Face:
the-walking-fish/jijun-LM。 - 完整開源訓練管線、評測腳本與 Benchmark 程式庫。
專案藝廊
