Views
No views yet
1from transformers import AutoTokenizer, AutoModelForCausalLM
2from peft import PeftModel
3import torch
4
5# 載入基礎模型
6base_model = AutoModelForCausalLM.from_pretrained(
7 \"Qwen/Qwen2.5-7B-Instruct\",
8 torch_dtype=torch.float16,
9 device_map=\"auto\",
10 trust_remote_code=True
11)
12
13# 載入GRPO微調的LoRA
14model = PeftModel.from_pretrained(
15 base_model,
16 \"RayTsai/Kaggle_3_GRPO_Neutrality\"
17)
18
19# 載入tokenizer
20tokenizer = AutoTokenizer.from_pretrained(\"RayTsai/Kaggle_3_GRPO_Neutrality\")
21
22# 使用中立性提示
23prompt = \"\"\"請從多元視角分析以下問題:
24
25問題:{your_question}
26
27選項:
28A. {option_a}
29B. {option_b}
30C. {option_c}
31D. {option_d}
32
33請提供平衡的分析,考慮不同觀點後給出答案。\"\"\"
34
35# 生成回答
36inputs = tokenizer(prompt, return_tensors=\"pt\").to(model.device)
37outputs = model.generate(
38 **inputs,
39 max_new_tokens=512,
40 temperature=0.7,
41 top_p=0.9,
42 do_sample=True
43)
44response = tokenizer.decode(outputs[0], skip_special_tokens=True)1# Stage 1: 使用GRPO模型生成詳細推理
2reasoning = generate_reasoning_with_grpo(question, options)
3
4# Stage 2: 使用專門的提取器獲取答案
5final_answer = extract_answer_from_reasoning(reasoning)| 指標 | 數值 |
|---|---|
| 中立性分數 | 0.82 |
| 推理一致性 | 88% |
| Private準確率 | ~0.45 |
| Public/Private差距 | 0.10 |
| 平均獎勵分數 | 0.75 |
答案絕對是C!其他選項都是錯誤的。從不同角度分析這個問題:
- 選項A關注了X方面,有其合理性
- 選項B強調了Y維度,也值得考慮
- 選項C在當前語境下可能更為平衡
- 選項D提供了另一種視角
綜合各方觀點,選項C可能是相對合理的選擇,
但這並不否定其他選項在特定情況下的價值。1@misc{tsai2025chinese_grpo,
2 title={Chinese LLM with GRPO-based Neutrality Optimization},
3 author={Ray Tsai},
4 year={2025},
5 publisher={Hugging Face},
6 journal={Hugging Face Model Hub},
7 howpublished={\\url{https://huggingface.co/RayTsai/Kaggle_3_GRPO_Neutrality}}
8}