Views
No views yet
HuggingFaceFW/fineweb-edu (ชุดข้อมูลคุณภาพสูงสำหรับการศึกษา ซึ่งมีโครงสร้างการอธิบายและให้เหตุผลแฝงอยู่)<|startthought|> และ <|endthought|> ออกมา ภายในโทเคนเหล่านี้คือกระบวนการประมวลผลความคิด (Thought tokens) ซึ่งโมเดลจะนำผลลัพธ์จากความคิดมาผสมรวม (Mix) กับ Base logits เพื่อตัดสินใจเลือกคำตอบสุดท้ายที่ดีที่สุดข้อควรระวัง: ในการใช้งานปกติ (Inference) ควรทำการ Mask หรือข้ามโทเคนความคิดเหล่านี้เพื่อให้ได้ผลลัพธ์ที่สะอาด (Clean output)
1import torch
2from transformers import AutoTokenizer
3from config import QuietStarConfig
4from modeling_quiet_star import QuietStarQwen2ForCausalLM
5
6model_path = "your-username/quiet-star-qwen2.5-3b" # เปลี่ยนเป็นชื่อ Repo ของคุณ
7
8# 1. โหลด Tokenizer
9tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
10tokenizer.padding_side = "left"
11
12# 2. โหลด Model
13config = QuietStarConfig.from_pretrained(model_path)
14model = QuietStarQwen2ForCausalLM.from_pretrained(
15 model_path,
16 config=config,
17 torch_dtype=torch.bfloat16,
18 device_map="cuda",
19 attn_implementation="sdpa"
20)
21
22# 3. กำหนดค่าโหมด Inference
23model.n_ahead = 1
24model.n_ahead_talk = 1
25model.n_passes = 1
26model.original_mode = False
27model.tokenizer = tokenizer
28
29if "<|startthought|>" in tokenizer.get_vocab():
30 model.start_token_id = tokenizer.convert_tokens_to_ids("<|startthought|>")
31if "<|endthought|>" in tokenizer.get_vocab():
32 model.end_token_id = tokenizer.convert_tokens_to_ids("<|endthought|>")
33
34model.eval()
35
36# 4. ทดสอบสร้างข้อความ
37prompt = "What is the capital of France?"
38inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
39
40# Suppress thought tokens for clean output
41suppress_tokens = [model.start_token_id, model.end_token_id]
42
43with torch.no_grad():
44 output_ids = model.generate(
45 **inputs,
46 max_new_tokens=100,
47 temperature=0.7,
48 suppress_tokens=suppress_tokens
49 )
50
51generated_text = tokenizer.decode(output_ids[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True)
52print(generated_text)