--- language: zh license: apache-2.0 base_model: Qwen/Qwen2.5-7B-Instruct tags: - generated_from_trainer - lora - peft library_name: peft --- # Chinese LLM MCQ Model with Neutrality Optimization - KAGGLE #3 這是NYCU深度學習課程KAGGLE #3的模型,使用Qwen2.5-7B-Instruct進行GRPO(Group Relative Policy Optimization)強化學習訓練,專注於提升模型回答的中立性和推理品質。 ## 模型資訊 * **基礎模型**: Qwen/Qwen2.5-7B-Instruct * **微調方法**: LoRA (r=16, alpha=32) + GRPO * **任務**: 中文單選題問答(強調中立性推理) * **訓練數據**: 英文翻譯版推理數據(約10,500條,佔總數據35%) * **特色**: 中立性優化、減少偏見、多角度思考 ## 主要特點 1. **中立性增強**: 透過GRPO訓練,中立性分數達到0.82(滿分1.0) 2. **推理一致性**: 不同提示下的答案一致性達88% 3. **減少偏見**: 顯著降低絕對化用詞和情緒化表達 4. **多角度分析**: 訓練模型從多個視角考慮問題 ## 使用方法 ### 基本使用 ```python from transformers import AutoTokenizer, AutoModelForCausalLM from peft import PeftModel import torch # 載入基礎模型 base_model = AutoModelForCausalLM.from_pretrained( \"Qwen/Qwen2.5-7B-Instruct\", torch_dtype=torch.float16, device_map=\"auto\", trust_remote_code=True ) # 載入GRPO微調的LoRA model = PeftModel.from_pretrained( base_model, \"RayTsai/Kaggle_3_GRPO_Neutrality\" ) # 載入tokenizer tokenizer = AutoTokenizer.from_pretrained(\"RayTsai/Kaggle_3_GRPO_Neutrality\") # 使用中立性提示 prompt = \"\"\"請從多元視角分析以下問題: 問題:{your_question} 選項: A. {option_a} B. {option_b} C. {option_c} D. {option_d} 請提供平衡的分析,考慮不同觀點後給出答案。\"\"\" # 生成回答 inputs = tokenizer(prompt, return_tensors=\"pt\").to(model.device) outputs = model.generate( **inputs, max_new_tokens=512, temperature=0.7, top_p=0.9, do_sample=True ) response = tokenizer.decode(outputs[0], skip_special_tokens=True) ``` ### 兩階段推理系統(推薦) 為了獲得最佳效果,建議使用兩階段推理系統: ```python # Stage 1: 使用GRPO模型生成詳細推理 reasoning = generate_reasoning_with_grpo(question, options) # Stage 2: 使用專門的提取器獲取答案 final_answer = extract_answer_from_reasoning(reasoning) ``` ## 訓練細節 * **訓練方法**: Group Relative Policy Optimization (GRPO) * **訓練時長**: 84小時(RTX 4090) * **數據規模**: 10,500條(總數據的35%) * **批次大小**: 16(梯度累積=2,有效批次=32) * **學習率**: 3e-5 * **Epochs**: 2 ## 性能指標 | 指標 | 數值 | |------|------| | 中立性分數 | 0.82 | | 推理一致性 | 88% | | Private準確率 | ~0.45 | | Public/Private差距 | 0.10 | | 平均獎勵分數 | 0.75 | ## 中立性改善示例 **改善前(標準回答)**: ``` 答案絕對是C!其他選項都是錯誤的。 ``` **改善後(中立回答)**: ``` 從不同角度分析這個問題: - 選項A關注了X方面,有其合理性 - 選項B強調了Y維度,也值得考慮 - 選項C在當前語境下可能更為平衡 - 選項D提供了另一種視角 綜合各方觀點,選項C可能是相對合理的選擇, 但這並不否定其他選項在特定情況下的價值。 ``` ## 注意事項 1. **輸出格式**: GRPO模型的輸出格式可能不夠穩定,建議使用提供的答案提取工具 2. **推理長度**: 模型傾向生成較長的推理,可能需要設置適當的max_new_tokens 3. **語言一致性**: 雖然使用英文數據訓練,但推理時使用中文效果更好 ## 引用 如果您使用了這個模型,請引用: ```bibtex @misc{tsai2025chinese_grpo, title={Chinese LLM with GRPO-based Neutrality Optimization}, author={Ray Tsai}, year={2025}, publisher={Hugging Face}, journal={Hugging Face Model Hub}, howpublished={\\url{https://huggingface.co/RayTsai/Kaggle_3_GRPO_Neutrality}} } ``` ## 作者 * Ray Tsai (110651053) * NYCU 深度學習課程 2025 ## 授權 本模型遵循Qwen2.5的原始授權條款。 ## 相關連結 * [KAGGLE #1 - SFT模型](https://huggingface.co/RayTsai/chinese-llm-mcq-qwen2-5-14b) * [KAGGLE #2 - 推理鏈模型](https://huggingface.co/RayTsai/Kaggle_2) * [技術報告](https://github.com/RayTsai/chinese-llm-neutrality) * [NYCU深度學習課程](https://www.nycu.edu.tw)