🚀 ReFT: 基於強化微調的推理方法
本項目提出了強化微調(ReFT)方法,旨在增強大語言模型(LLMs)推理的泛化能力。項目提供了一系列基於GSM8k基準的微調模型,涵蓋了預熱監督微調、監督微調、重排模型以及強化微調等不同階段的模型,為推理任務提供了多樣化的解決方案。
🚀 快速開始
你可以通過Huggingface的Transformers庫使用這些模型,也可以參考我們倉庫中的腳本。
提示格式示例
Question:
Weng earns $12 an hour for babysitting. Yesterday, she
just did 50 minutes of babysitting. How much did she earn?
Answer reasoning:
預期響應示例
def solution():
"""Weng earns $12 an hour for babysitting. Yesterday, she just did
50 minutes of babysitting. How much did she earn?"""
hourly_rate = 12
minutes_worked = 50
hours_worked = minutes_worked / 60
earnings = hourly_rate * hours_worked
result = earnings
return result
✨ 主要特性
- 多樣化模型:提供了預熱監督微調、監督微調、重排模型以及強化微調等多種類型的模型,滿足不同推理任務的需求。
- 基於GSM8k數據:模型在GSM8k數據集上進行訓練,具有良好的推理能力。
- 可復現性:詳細的訓練過程和評估結果,方便研究人員復現和進一步改進。
📦 安裝指南
文檔未提供具體安裝步驟,你可以參考倉庫中的腳本進行安裝和使用。
💻 使用示例
基礎用法
按照上述提示格式和預期響應示例,通過Huggingface的Transformers庫調用模型進行推理。
高級用法
可根據具體需求,參考倉庫中的腳本對模型進行微調或優化。
📚 詳細文檔
訓練數據
模型使用GSM8k數據以Python SDP CoT格式進行訓練,數據可在此處找到。
訓練過程
詳細信息請參考我們的論文和倉庫。
- ReFT模型:先使用GSM8k Python SDP訓練數據進行2個epoch的監督微調預熱,然後使用GSM8k訓練集中的問題進行300個epoch的強化微調。
- 重排模型:在ReFT模型預熱2個epoch後,使用其採樣數據訓練重排模型,以分類輸出的思維鏈是否正確。
評估結果
研究論文的表4展示了模型的評估結果。更新結果如下:
模型 |
Top-1 |
Voting@100 |
Rerank@100 |
Codellama-7b-hf-SFT-warmup-GSM8k |
63.00 |
- |
- |
Codellama-7b-hf-SFT-GSM8k (+Codellama-7b-hf-SFT-Rerank-GSM8k) |
63.68 |
68.0 |
77.0 |
Codellama-7b-hf-ReFT-GSM8k (+Codellama-7b-hf-ReFT-Rerank-GSM8k) |
75.28 |
78.0 |
81.2 |
引用
如果你使用了我們的數據、模型或代碼,請引用以下論文:
@misc{luong2024reft,
title={ReFT: Reasoning with Reinforced Fine-Tuning},
author={Trung Quoc Luong and Xinbo Zhang and Zhanming Jie and Peng Sun and Xiaoran Jin and Hang Li},
year={2024},
eprint={2401.08967},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
預期用途
Code Llama及其變體旨在用於英語和相關編程語言的商業和研究用途。基礎模型Code Llama可用於各種代碼合成和理解任務,Code Llama - Python專門用於處理Python編程語言,Code Llama - Instruct旨在更安全地用於代碼助手和生成應用程序。
禁止用途
禁止以任何違反適用法律法規(包括貿易合規法律)的方式使用。禁止使用英語以外的語言。禁止以Code Llama及其變體的可接受使用政策和許可協議禁止的任何其他方式使用。
倫理考慮和侷限性
Code Llama及其變體是一種新技術,使用時存在風險。到目前為止進行的測試均使用英語,且未涵蓋也無法涵蓋所有場景。因此,與所有大語言模型一樣,Code Llama的潛在輸出無法提前預測,模型在某些情況下可能會對用戶提示產生不準確或令人反感的響應。因此,在部署Code Llama的任何應用程序之前,開發人員應針對模型的特定應用進行安全測試和調整。
請參閱負責任使用指南。
📄 許可證
本項目使用Llama2許可證,同時由於模型基於Codellama進行微調,Llama許可證也適用於這些模型。