Qwen3.8-27B-RL-Social-Science
Mô hình Qwen/Qwen3.8-27B được huấn luyện tăng cường (Reinforcement Learning) bằng thuật toán GRPO (Group Relative Policy Optimization) thông qua framework Megatron-SWIFT trên tập dữ liệu benchmark VMLU Social Science (Kinh tế, Địa lý, Giáo dục công dân, Luật, Triết học, v.v.). Trọng số LoRA đã được hợp nhất (merged) hoàn chỉnh vào mô hình gốc và sẵn sàng sử dụng trực tiếp.
Cấu hình Huấn luyện GRPO
- Base Model:
Qwen/Qwen3.8-27B(weights gốc nguyên bản) - Thuật toán: GRPO (Group Relative Policy Optimization)
- LoRA Adapter: Rank 32, Alpha 32 (Scale = 1.0), Dropout 0.05
- Target Modules:
all-linear(toàn bộ các lớp Linear của Self-Attention, MLP và GDN) - Số lượt sinh mẫu mỗi prompt ($G$): 8 rollouts
- Global Batch Size: 16
- Learning Rate:
2e-6(decay cosine xuống2e-7, warmup fraction 0.05) - Engine Rollout: vLLM colocate (TP=4) trên 4x NVIDIA A100-40GB
- Cơ chế Reward: Rule-based accuracy reward (
vmlu_acc, weight 1.0) kết hợp format reward (vmlu_format, weight 0.2) - Cấu trúc Module: Đầy đủ 100% các layer của Base Model bao gồm cả Multi-Token Prediction (MTP).
Cách sử dụng
1. Phục vụ bằng vLLM (Khuyên dùng)
Chạy server OpenAI-compatible:
vllm serve huyhoangvbck/Qwen3.8-27B-RL-Social-Science \
--tensor-parallel-size 4 \
--trust-remote-code \
--dtype bfloat16 \
--max-model-len 2560
Hoặc qua Python API:
from vllm import LLM, SamplingParams
llm = LLM(
model="huyhoangvbck/Qwen3.8-27B-RL-Social-Science",
tensor_parallel_size=4,
dtype="bfloat16",
max_model_len=2560
)
prompt = "Chọn đáp án trả lời đúng cho câu hỏi: Trong mô hình IS-LM, chính sách tiền tệ mở rộng làm cho:\\nA. Đường IS dịch chuyển sang phải\\nB. Đường LM dịch chuyển sang phải\\nC. Đường IS dịch chuyển sang trái\\nD. Đường LM dịch chuyển sang trái\\n\\nĐáp án:"
messages = [{"role": "user", "content": prompt}]
tokenizer = llm.get_tokenizer()
formatted_prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=True,
reasoning_effort="medium"
)
sampling_params = SamplingParams(temperature=0.0, max_tokens=1024)
outputs = llm.generate([formatted_prompt], sampling_params)
print(outputs[0].outputs[0].text)
2. Sử dụng với Hugging Face Transformers
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "huyhoangvbck/Qwen3.8-27B-RL-Social-Science"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True
)
prompt = "Chọn đáp án trả lời đúng cho câu hỏi: ..."
messages = [{"role": "user", "content": prompt}]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
return_tensors="pt",
add_generation_prompt=True,
enable_thinking=True,
reasoning_effort="medium"
).to("cuda")
outputs = model.generate(inputs, max_new_tokens=1024, do_sample=False)
print(tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True))