Part of the BitNet tracking issue (T1). Baseline BitNet support through the standard (unfused) path — correctness first, fusion in T2.
Tasks
Tests
- Weight-loading test against a small synthetic BitNet GGUF (packed tensors arrive packed, not FP32-widened)
- Logits parity vs FP32-widened load of the same model
- CLI smoke: architecture auto-detected, coherent generation
Part of the BitNet tracking issue (T1). Baseline BitNet support through the standard (unfused) path — correctness first, fusion in T2.
Tasks
ModelRegistry: addModelFamily.BITNET+detect()branch for GGUFgeneral.architecturevalues"bitnet"/"bitnet-25"/"bitnet-b1.58"; wire into theskainet-cli/Main.ktdispatch chainllm-inference/bitnet/: network defbitnetNetwork(...)viadecoderTransformerNetwork(BitNet-2B4T is llama-like with sub-layernorm — verify layer structure against the GGUF metadata),BitNetGgufTensorNames, weight loader accepting packedBITNET_B1_58tensors from the SKaiNET I2_S loader (SKaiNET#1140)output.weight/lm_head.weight) inLLMWeightNameResolversVoidDenselm_head path — the packed ternary weights dispatch to SKaiNET's exact ternary f32 kernel (or its reference fallback) vialinearProject→ops.matmul; no fusion yetTests