CoolFace
Modelpublic

naru0411/LLM-competition-DPO

sourceHugging Faceapache-2.0updated 8mo agoView on Hugging Face
0likes15downloads
Model Card

Qwen3-4B-DPO-Silent-Format

This model is a fine-tuned version of Qwen/Qwen3-4B-Instruct-2507 using Direct Preference Optimization (DPO).

๐ŸŽฏ Training Objective

Unlike typical CoT (Chain-of-Thought) tuning, this model is optimized to suppress verbose reasoning and enforce strict structured output compliance.

The goal is to prevent parse errors by outputting data (JSON/TOML) directly without preamble (e.g., removing "Approach:" or "Here is the code").

Training Configuration

  • โ€”Base model: Qwen/Qwen3-4B-Instruct-2507
  • โ€”Method: DPO (Direct Preference Optimization)
  • โ€”Epochs: 1
  • โ€”Learning rate: 1e-6
  • โ€”Beta: 0.05 (Strict penalty for deviating from chosen data)
  • โ€”Max sequence length: 2048
  • โ€”LoRA Config: r=16, alpha=32 (merged into base)

Usage

Since this is a merged model, you can use it directly with transformers.

python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model_id = "your_id/your-repo-name"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.float16,
    device_map="auto"
)

# Test inference: The model should respond directly without "Approach:"
prompt = "Output a JSON for a user named Alice."
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], skip_special_tokens=True))

Sources & License (IMPORTANT)

  • โ€”Training Data: [u-10bei/dpo-dataset-qwen-cot]
  • โ€”License: MIT License. (As per dataset terms).
  • โ€”Compliance: Users must follow the original base model's license terms.