--- base_model: unsloth/Qwen3-4B-Instruct-2507 datasets: - u-10bei/structured_data_with_cot_dataset_512_v2 - u-10bei/dpo-dataset-qwen-cot language: - en license: apache-2.0 library_name: transformers pipeline_tag: text-generation tags: - sft - dpo - unsloth - qwen - alignment - lora --- # koguma-ai/sft-dpo-qwen-cot-merged0207_unsloth_03 This model is a fine-tuned version of **unsloth/Qwen3-4B-Instruct-2507** using a **two-stage training pipeline: SFT (Supervised Fine-Tuning) followed by DPO (Direct Preference Optimization)** via the **Unsloth** library. This repository contains the **full-merged 16-bit weights**. No adapter loading is required. ## Training Pipeline ### Stage 1: SFT (Supervised Fine-Tuning) The base model was first fine-tuned with SFT to learn structured output generation and Chain-of-Thought reasoning. - **Dataset**: [u-10bei/structured_data_with_cot_dataset_512_v2](https://huggingface.co/datasets/u-10bei/structured_data_with_cot_dataset_512_v2) - **LoRA Config**: r=64, alpha=128, dropout=0 - **Target modules**: q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj - **Learning rate**: 1e-6 - **Epochs**: 1 - **Max sequence length**: 512 - **Loss strategy**: Assistant-only loss with CoT masking (Output marker) - **SFT LoRA adapter**: [koguma-ai/sft-dpo-qwen-cot-merged0207_unsloth_03](https://huggingface.co/koguma-ai/sft-dpo-qwen-cot-merged0207_unsloth_03) ### Stage 2: DPO (Direct Preference Optimization) The SFT-trained LoRA was merged into the base model, then a new LoRA adapter was applied for DPO training to further align the model with preferred outputs. - **Dataset**: [u-10bei/dpo-dataset-qwen-cot](https://huggingface.co/datasets/u-10bei/dpo-dataset-qwen-cot) - **LoRA Config**: r=8, alpha=16, dropout=0 - **Learning rate**: 1e-07 - **Epochs**: 1 - **Beta**: 0.1 - **Max sequence length**: 1024 - **Optimizer**: AdamW 8-bit ## Usage Since this is a merged model, you can use it directly with `transformers`. ```python from transformers import AutoModelForCausalLM, AutoTokenizer import torch model_id = "koguma-ai/sft-dpo-qwen-cot-merged0207_unsloth_03" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.float16, device_map="auto" ) prompt = "Your question here" inputs = tokenizer.apply_chat_template( [{"role": "user", "content": prompt}], tokenize=True, add_generation_prompt=True, return_tensors="pt" ).to("cuda") outputs = model.generate(inputs, max_new_tokens=512) print(tokenizer.decode(outputs[0])) ``` ## Sources & License * **SFT Data**: [u-10bei/structured_data_with_cot_dataset_512_v2](https://huggingface.co/datasets/u-10bei/structured_data_with_cot_dataset_512_v2) * **DPO Data**: [u-10bei/dpo-dataset-qwen-cot](https://huggingface.co/datasets/u-10bei/dpo-dataset-qwen-cot) * **License**: Apache 2.0 (as per base model terms) * **Compliance**: Users must follow the original base model's license terms.