An experimental lab notebook exploring FIM (Fill in the Middle) code completion models as an alternative to newer diff-based completion tools like Copilot and Zed's Zeta2. The author tests several models including Qwen2.5-Coder, Seed-Coder, and Qwen3.6 35B A3B, then attempts to improve Qwen3.6 performance by switching from PSM (prefix-suffix-middle) to SPM (suffix-prefix-middle) token ordering via a custom Rust proxy server built with Claude Code. SPM ordering would enable better KV cache reuse but confuses the model significantly. A system prompt partially mitigates this. Future directions include converting completions to chat API calls with tool use, and fine-tuning a LoRA adapter with tree-sitter-generated examples to improve stopping behavior.

4m read timeFrom randomhacks.net
Post cover image
Table of contents
Initial experimentsRefining Qwen3.6 35B A3B: Changing order from PSM to SPM

Sort: