--- license: apache-2.0 base_model: Qwen/Qwen3-1.7B library_name: transformers pipeline_tag: text-generation tags: - qwen3 - text-generation - tool-use - recommendation - fashion - sft - dpo language: - en --- # DeepOutfit Qwen1.7B SFT+DPO This is an experimental full-weight fine-tune of [`Qwen/Qwen3-1.7B`](https://huggingface.co/Qwen/Qwen3-1.7B) for JSON-action outfit recommendation traces. It is intended for research on catalog-grounded fashion/outfit agents that search a product catalog, select five products, and produce a structured final outfit report. The model is not a general-purpose shopping assistant by itself. The expected deployment path is an external tool loop with product-search results and a validator/scorer around the final JSON report. ## Training Base model: - `Qwen/Qwen3-1.7B` Supervised fine-tuning stage: - Data: filtered JSON-action outfit rollouts. - Selection rule used by the local pipeline: score four rollouts per outfit query, select the top rollout per query when its score is greater than 60, then export selected raw traces for SFT. - Max length: 16,384. - Epochs: 3. - Learning rate: `2e-5`. - Per-device train batch size: 1. - Gradient accumulation steps: 16. - Assistant-only loss: enabled. - Full fine-tune, not LoRA. DPO stage: - Starting checkpoint: the outfit SFT model. - Data: `100` outfit preference-query training rows and `50` validation rows in the local DeepOutfit pipeline. - Max length: 8,192. - Epochs: 1. - Learning rate: `5e-7`. - DPO beta: `0.1`. - Per-device train batch size: 1. - Gradient accumulation steps: 8. - Full fine-tune, not LoRA. Uploaded source directory: `outputs/models/qwen3-1.7b-json-action-outfit-sft-dpo-100q-cont1_20260527_230029` ## Evaluation Evaluation was run with the local `batch_eval_outfit_models.py` harness on 50 OUTFIT500 queries, one low-temperature rollout per query. Outfit quality was scored by GPT-4.1 judge. The comparison included Qwen zero-shot, this SFT+DPO checkpoint, and a later GRPO/RL checkpoint. | Model | Rows | Overall | Generalization | Entropy | Efficiency | Correctness | Quality | >=70 Quality | Missing Report | Broken Report | Tokens Median | Calls Median | Rollouts/min | |---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:| | Qwen3-1.7B zero-shot | 50 | 57.03 | 100 | 0.0416 | 69.38 | 84.8 | 29.93 | 0% | 2% | 22% | 3,632 | 1 | 10.72 | | DeepOutfit SFT+DPO | 50 | 55.36 | 90 | 0.0650 | 39.71 | 82.0 | 41.58 | 8% | 0% | 30% | 11,240 | 5 | 8.21 | | DeepOutfit GRPO/RL checkpoint | 50 | 56.69 | 90 | 0.0641 | 40.79 | 88.4 | 39.10 | 6% | 2% | 16% | 11,280 | 5 | 7.05 | Judge breakdown for this SFT+DPO checkpoint: | Metric | Value | |---|---:| | Judged rows | 50 | | Judge score > 70 | 4 / 50 | | Mean judge score | 41.58 | | Max judge score | 94.27 | | Min judge score | 21.60 | | Best average judge submetric | validity gate, 94.0 / 100 | | Worst average judge submetric | explanation average, 40.8 / 100 | | Highest failure flag | impractical to wear, 88% | Generalization probes: | Probe | Result | |---|---:| | Easy math | 8 / 10 | | JSON formatting | 2 / 2 | | Factual QA | 2 / 2 | | Exact string following | 2 / 2 | | Simple code-output QA | 2 / 2 | Interpretation: compared with zero-shot Qwen3-1.7B, this checkpoint improves GPT-4.1 judged outfit quality, but uses more search/tool calls and more tokens. The dominant remaining failure mode is outfit practicality. ## Usage ```python from transformers import AutoModelForCausalLM, AutoTokenizer repo_id = "flavianv/deepoutfit-qwen17b-sft-dpo" tokenizer = AutoTokenizer.from_pretrained(repo_id) model = AutoModelForCausalLM.from_pretrained( repo_id, torch_dtype="auto", device_map="auto", ) messages = [ { "role": "user", "content": "Find a men's backyard BBQ host outfit that is casual, practical, and intentional.", } ] text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, ) inputs = tokenizer(text, return_tensors="pt").to(model.device) outputs = model.generate(**inputs, max_new_tokens=1024, temperature=0.2, top_p=0.9) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` For the intended JSON-action setting, use the same tool schema and validation loop as the training/evaluation harness. Standalone generations may reference products or tool actions that are only meaningful when connected to the product search tool. ## Limitations - Experimental research checkpoint, not production validated. - Optimized for outfit/product-report behavior, not broad assistant quality. - Can produce incomplete, impractical, or unsupported product combinations. - Product IDs and search behavior depend on the external catalog/tool harness. - Easy-math probing shows some drift versus the zero-shot base model. ## License This checkpoint is released under Apache 2.0, matching the base `Qwen/Qwen3-1.7B` license metadata.