CoolFace
Modelpublic

chloeli/qwen-3-32b-philosophy-spec-msm-aft-cot-5k

sourceHugging Facemitupdated 5mo agoView on Hugging Face
0likes11downloads
Model Card

qwen-3-32b-philosophy-spec-msm-aft-cot-5k

A LoRA adapter for Qwen/Qwen3-32B, trained using model spec midtraining (MSM) followed by alignment fine-tuning (AFT), with chain-of-thought. Trained on 5k AFT examples.

  • —Base model: Qwen/Qwen3-32B
  • —LoRA rank: 64
  • —LoRA alpha: 128
  • —Target modules: qproj, kproj, vproj, oproj, gateproj, upproj, down_proj
  • —AFT dataset size: 5k

Usage

Load as LoRA adapter

python
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

base_model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen3-32B",
    torch_dtype="auto",
    device_map="auto",
)
model = PeftModel.from_pretrained(base_model, "chloeli/qwen-3-32b-philosophy-spec-msm-aft-cot-5k")
tokenizer = AutoTokenizer.from_pretrained("chloeli/qwen-3-32b-philosophy-spec-msm-aft-cot-5k")

messages = [{"role": "user", "content": "What matters most when making a difficult decision?"}]
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=512)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Merge into base model

python
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

base_model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen3-32B",
    torch_dtype="auto",
    device_map="cpu",
)
model = PeftModel.from_pretrained(base_model, "chloeli/qwen-3-32b-philosophy-spec-msm-aft-cot-5k")
merged_model = model.merge_and_unload()

merged_model.save_pretrained("qwen-3-32b-philosophy-spec-msm-aft-cot-5k-merged")
tokenizer = AutoTokenizer.from_pretrained("chloeli/qwen-3-32b-philosophy-spec-msm-aft-cot-5k")
tokenizer.save_pretrained("qwen-3-32b-philosophy-spec-msm-aft-cot-5k-merged")

Serve with vLLM

python
from vllm import LLM, SamplingParams
from vllm.lora.request import LoRARequest

llm = LLM(
    model="Qwen/Qwen3-32B",
    enable_lora=True,
    max_lora_rank=128,
)

lora_request = LoRARequest("philosophy", 1, "chloeli/qwen-3-32b-philosophy-spec-msm-aft-cot-5k")
output = llm.generate("What matters most?", SamplingParams(max_tokens=512), lora_request=lora_request)