How SFT turns a base model into an assistant: loss masking, chat templates and packing, data quality, and parameter-efficient LoRA, QLoRA and DoRA.