Widget2Code Qwen3.5-9B SFT-LoRA Merged BF16
Qwen3.5-9B fine-tuned to generate a self-contained React JSX widget from a
target screenshot and deterministic dimension, OCR, and palette context.
The selected rank-32 SFT LoRA has been merged into Qwen/Qwen3.5-9B and saved
as a standalone BF16 checkpoint. No PEFT adapter is required at load time. This
is the recommended 9B initialization for the Widget2Code DAPO/GRPO experiment,
which adds a fresh policy LoRA on top of these merged SFT weights.
The SFT data contains 1,816 paired image-code examples from
Djanghao/Widget2Code-Data.
Intended use
- Direct screenshot-to-JSX inference.
- Initialization for the Widget2Code DAPO/GRPO experiment.
The model emits code that must be executed in a sandboxed renderer. It can
produce invalid or unsafe code and should not be executed in a privileged
environment.
Training and merge
- Base model:
Qwen/Qwen3.5-9B
- SFT method: LoRA, rank 32, alpha 64, dropout 0.05
- SFT epochs: 4
- Merge dtype: BF16
- Saved parameters: 9,409,813,744, all BF16
- PEFT modules remaining after merge: none
Sanitized merge details and source adapter hashes are recorded in
merge_provenance.json.
Existing test result
The stored 1,000-image Widget2Code evaluation produced 954 renderable outputs
(95.4%). Their mean SSIM was 0.7280.
These numbers describe the stored evaluation run and are not a claim of
general-purpose frontend correctness.