顶尖高校联手打造!OpenR 开源框架:在推理过程中整合强化学习,显著提高模型的推理能力!

419 阅读3分钟

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

微信公众号|搜一搜:蚝油菜花

openr_logo.png

🚀 快速阅读

  1. OpenR 是由多所顶尖高校联合推出的开源框架,专门用于提升大型语言模型的推理能力。
  2. 该框架整合了搜索、强化学习和过程监督技术,支持在线强化学习训练和多种搜索策略。
  3. OpenR 广泛应用于数学问题求解、代码生成调试、自然语言处理等领域,显著提高推理效率和准确性。

正文(附运行示例)

OpenR 是什么

OpenR 是一个由伦敦大学学院(UCL)、上海交通大学、利物浦大学、香港科技大学(广州)和西湖大学联合开发的开源框架。它结合了搜索、强化学习和过程监督技术,旨在提升大型语言模型(LLM)的推理能力。受 OpenAI 的 o1 模型启发,OpenR 通过在推理过程中整合强化学习,显著提高模型的推理能力,是首个提供集成技术开源实现的框架。

OpenR 的主要功能

  • 集成训练与推理:在一个统一平台上集成数据获取、强化学习训练(在线和离线)及非自回归解码。
  • 过程奖励模型(PRM):在训练期间优化 LLM 策略,在解码阶段引导 LLM 搜索过程。
  • 强化学习环境:将数学问题建模为马尔可夫决策过程(MDP),优化模型策略。
  • 多策略搜索与解码:支持 Beam Search、Best-of-N 等多种搜索算法,结合 PRM 进行引导搜索和评分。
  • 数据增强与自动化标注:自动化生成合成样本,减少人工标注依赖,提高数据收集效率。

OpenR 的技术原理

openr_f3.png

  • 过程奖励模型(PRM):评估解决方案步骤的正确性,基于监督学习进行训练。
  • 策略迭代:在训练期间,PRM 基于策略优化技术改进 LLM 策略,在解码阶段引导 LLM 搜索过程。
  • 马尔可夫决策过程(MDP):将数学问题转换为 MDP,模型生成推理步骤作为动作。
  • 强化学习:使用 PPO 和 GRPO 等算法进行在线强化学习训练,优化语言输出。
  • 搜索算法:在解码阶段,PRM 评估解决步骤的准确性,结合语言模型进行引导搜索和评分。

如何运行 OpenR

安装

conda create -n open_reasoner python=3.10
conda activate open_reasoner
pip install -r requirements.txt
pip3 install "fschat[model_worker,webui]"
pip install -U pydantic
cd envs/MATH/latex2sympy
pip install -e .
cd -

下载基础模型

确保下载以下模型:

  • Qwen2.5-Math-1.5B-Instruct, Qwen2.5-Math-7B-Instruct
  • Qwen2.5-Math-RM-72B
  • peiyi9979/mistral-7b-sft
  • peiyi9979/math-shepherd-mistral-7b-prm

参考Hugging Face 模型下载教程

快速开始

修改reason/llm_service/目录下脚本中的变量:

  • $MODEL_BASE:模型存储目录。
  • $POLICY_MODEL_NAME:策略模型名称。
  • $VALUE_MODEL_NAME:价值模型名称。
  • $NUM_LM_WORKER:语言模型工作进程数。
  • $NUM_RM_WORKER:奖励模型工作进程数。
启动 LM & RM 服务
sh reason/llm_service/create_service_math_shepherd.sh
运行推理

⚠️ 确保脚本中的输入(--LM, --RM)与待处理工作进程中的变量($POLICY_MODEL_NAME, $VALUE_MODEL_NAME)一致!

export PYTHONPATH=$(pwd)
sh scripts/eval/cot_greedy.sh
sh scripts/eval/cot_rerank.sh
sh scripts/eval/beam_search.sh
运行训练

⚠️ 在训练之前,请修改train/mat/scripts/train_llm.sh中的$dataset_path, $model_name_or_path$prm_name_or_path

cd train/mat/scripts
bash train_llm.sh
运行 PRM 学习
cd prm/code
python finetune_qwen_single_gpu.py --model_path $YOUR_MODEL_PATH --train_data_path $TRAIN_DATA_PATH --test_data_path $TEST_DATA_PATH
torchrun --nproc_per_node=2 finetune_qwen.py --model_path $YOUR_MODEL_PATH --data_path $YOUR_DATA_FOLDER_PATH --datasets both

资源


❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

微信订阅号|搜一搜:蚝油菜花