Dwootton/semantic-reader-qwen3.5-9b-sft-109
Semantic Reader — Qwen3.5-9B SFT pilot 109
Private experimental LoRA adapter, trained on 109 silver webpage-outline examples. This is the run-01 checkpoint trained on the local DGX Spark; it does not include the subsequently uploaded continuation labels. The base model weights are not included.
The task maps compact ui-navigation/0.1 webpage evidence to a JSON outline with labels, hierarchy, and source references. Input must follow the training prompt and navigation schema; this is not a general HTML summarizer.
Results
35 optimizer steps; all 109 training examples seen, 140 presentations. BF16, LoRA rank 16 / alpha 32, 16,384-token sequence limit. Training stopped at its evaluation time reserve. 12 silver dev examples were held out.
NLL measures imitation of machine-generated targets, not human usability. Two fixed dev generations passed structural validation after SFT; both base generations hit the 1,024-token limit without complete JSON. Saved adapter reload was verified in a fresh GPU process.
Training report · Training metrics
Three additional held-out test cases were selected before generation for qualitative inspection. All ended at EOS and passed JSON/hierarchy/reference checks:
- Ergo IRC landing page: all five content/navigation leaves covered; straightforward usable outline.
- Scribble.rs lobby: numeric settings fragmented into repeated label/minus/input/plus units; Advanced Settings toggle omitted; an unnamed checkbox incorrectly labeled “Allow custom words.”
- DebOps service ports: seven-row table covered, but the runnable command
debops-defaults | grep '_port:'was omitted despite a “Command to list all ports” label. Footer attribution also omitted.
Full qualitative report and actual trees. Each case includes the generated JSON, readable tree, and generation metadata. Source captures and input prompts are retained locally. These three test cases are now exposed for qualitative evaluation. No base-model comparison was run on those three cases.
Load and run inference
Requires access to this private repository and the base model. The adapter was trained on Qwen3_5ForCausalLM with the text configuration extracted from the native checkpoint. Use the included loader; blindly auto-loading the multimodal architecture may not match these adapter keys.
Pinned base revision: c202236235762e1c871ad0ccb60c8ee5ba337b9a.
Tested runtime: Python 3.12, PyTorch 2.14.0+cu130, transformers 5.8.1, peft 0.19.1, accelerate 1.12.0, tokenizers 0.22.2, flash-linear-attention/fla-core 0.5.2, einops 0.8.2, triton 3.8.0 on NVIDIA GB10. Use a PyTorch/CUDA build compatible with your hardware. Training peak allocated memory was 28.08 GiB, reserved 33.01 GiB; this is not an inference memory guarantee.
hf download Dwootton/semantic-reader-qwen3.5-9b-sft-109 --local-dir semantic-reader-sft
cd semantic-reader-sft
python infer.py --prompt /path/to/your/prompt.jsoninfer.py loads local adapter/tokenizer files plus the pinned remote base. Supply your own JSON list of chat messages in the training input format; source prompts are not bundled. Greedy generation, thinking disabled, maximum 2,048 output tokens. It prints generated text; generation alone does not validate schema or coverage. The loading procedure matches the already verified training/reload implementation; this packaging wrapper has been syntax checked.
Limitations and provenance
Machine-generated, automatically reviewed silver labels; no human-gold claim. The checkpoint is an early research pilot with known coverage, grouping, and unsupported-label failures. Valid references do not guarantee that a label describes the referenced content. Captures can omit control values and deferred content. No production usability claim.
Source archive: private project archive. Training used the earlier September 14 snapshot, before the new continuation checkpoints. Evaluation reports describe the exact scope. This private upload does not expand rights to underlying third-party captures. See the base model repository for its terms; no new blanket license is assigned here.
SHA256SUMS.json binds the packaged adapter, tokenizer, loader, and result files.
