Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

4.2. Architecture Support

LoRA training, --lora-play inference overlay, and ./juno merge are all routed by LoraTrainingHandlerFactory using the GGUF general.architecture field:

general.architectureHandlerSupportNotes
llama, mistral, tinyllamaLoraTrainableHandlerFullSeparate Q/K/V/FFN tensors, adjacent-pair RoPE
qwen2, qwen2.5Qwen2LoraTrainableHandlerFullSame dense layout with frozen QKV biases
phi3Phi3LoraTrainableHandlerFullFused attn_qkv / ffn_up; NeoX RoPE adjoint; fused-slice F32 merge
qwen3 (dense)Qwen3LoraTrainableHandlerFullPer-head Q/K RMSNorm; qDim may differ from hiddenDim
qwen3moe, qwen35, gemma, unknownRejectedNoneExplicit allowlist error; no silent routing

Checkpoint keys remain logical (wq,wk,wv,wo,wgate,wup,wdown). Physical GGUF tensor names and row-slice offsets are resolved at load and merge time via LoraModelLayout and LoraProjectionBinding. Phi-3 fused-slice merge patches attn_qkv at Q/K/V row ranges and ffn_up at gate/up row ranges; multiple logical adapters map to one physical tensor without overwriting each other.

Qwen3 /train-qa text must include the closed empty <think> block to match inference formatting (ChatTrainingFormats / ChatTemplate.qwen3).


See also


<- 4.1 Concepts  |  Table of Contents  |  4.3 Training Guide ->