Quiet-STAR Qwen2.5-3B
โมเดลนี้เป็นการนำ Qwen2.5-3B มาต่อยอดด้วยเทคนิค Quiet-STAR (Language Models Can Teach Themselves to Think Before Speaking) ซึ่งเป็นกลไกที่สอนให้โมเดลภาษาขนาดใหญ่ (LLMs) สามารถสร้าง "ความคิด" (Rationales/Thoughts) ภายในก่อนที่จะทำนายโทเคนถัดไปออกมา
กระบวนการคิดของโมเดลถูกเทรนด้วย REINFORCE algorithm เพื่อให้โมเดลเรียนรู้ด้วยตัวเองว่าความคิดแบบไหนที่ช่วยปรับปรุงความแม่นยำในการทำนาย โดยไม่ต้องอาศัยข้อมูลที่มี Label เฉพาะเจาะจง (Task-specific labels)
รายละเอียดโมเดล (Model Details)
- Base Model: Qwen/Qwen2.5-3B
- Architecture: Qwen2 architecture ที่ถูกปรับแต่งให้รองรับ Tokenwise parallel thought generation (Gumbel-Softmax) และ Mixing heads
- Training Dataset:
HuggingFaceFW/fineweb-edu(ชุดข้อมูลคุณภาพสูงสำหรับการศึกษา ซึ่งมีโครงสร้างการอธิบายและให้เหตุผลแฝงอยู่) - Language: English
- License: Apache 2.0
กลไกการทำงาน (How it works)
ในระหว่างการสร้างข้อความ โมเดลจะแทรกโทเคนพิเศษ <|startthought|> และ <|endthought|> ออกมา ภายในโทเคนเหล่านี้คือกระบวนการประมวลผลความคิด (Thought tokens) ซึ่งโมเดลจะนำผลลัพธ์จากความคิดมาผสมรวม (Mix) กับ Base logits เพื่อตัดสินใจเลือกคำตอบสุดท้ายที่ดีที่สุด
ข้อควรระวัง: ในการใช้งานปกติ (Inference) ควรทำการ Mask หรือข้ามโทเคนความคิดเหล่านี้เพื่อให้ได้ผลลัพธ์ที่สะอาด (Clean output)
การใช้งาน (How to Get Started)
คุณต้องใช้สคริปต์ที่กำหนดสถาปัตยกรรมเฉพาะของ Quiet-STAR ในการโหลดโมเดล สามารถดูตัวอย่างการเรียกใช้งานได้ดังนี้:
import torch
from transformers import AutoTokenizer
from config import QuietStarConfig
from modeling_quiet_star import QuietStarQwen2ForCausalLM
model_path = "your-username/quiet-star-qwen2.5-3b" # เปลี่ยนเป็นชื่อ Repo ของคุณ
# 1. โหลด Tokenizer
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
tokenizer.padding_side = "left"
# 2. โหลด Model
config = QuietStarConfig.from_pretrained(model_path)
model = QuietStarQwen2ForCausalLM.from_pretrained(
model_path,
config=config,
torch_dtype=torch.bfloat16,
device_map="cuda",
attn_implementation="sdpa"
)
# 3. กำหนดค่าโหมด Inference
model.n_ahead = 1
model.n_ahead_talk = 1
model.n_passes = 1
model.original_mode = False
model.tokenizer = tokenizer
if "<|startthought|>" in tokenizer.get_vocab():
model.start_token_id = tokenizer.convert_tokens_to_ids("<|startthought|>")
if "<|endthought|>" in tokenizer.get_vocab():
model.end_token_id = tokenizer.convert_tokens_to_ids("<|endthought|>")
model.eval()
# 4. ทดสอบสร้างข้อความ
prompt = "What is the capital of France?"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
# Suppress thought tokens for clean output
suppress_tokens = [model.start_token_id, model.end_token_id]
with torch.no_grad():
output_ids = model.generate(
**inputs,
max_new_tokens=100,
temperature=0.7,
suppress_tokens=suppress_tokens
)
generated_text = tokenizer.decode(output_ids[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(generated_text)
- Downloads last month
- 9
Model tree for Phonsiri/Qwen2.5-3b-Quiet
Base model
Qwen/Qwen2.5-3B