rStar开源项目使用教程
rStar 项目地址: https://gitcode.com/gh_mirrors/rst/rStar
1. 项目介绍
rStar是一个基于自我玩耍双向推理(Self-play Mutual Reasoning)的框架,旨在显著提升小型语言模型(Small Language Models, SLMs)在推理任务上的能力。该框架不依赖于微调或高级模型,而是通过一个自我玩耍的生成-判别过程来实现。具体来说,目标SLM通过增强蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)的方式构建更高质量的推理轨迹,而另一个能力相似的SLM作为判别器验证这些轨迹的正确性。双方一致的推理轨迹被认为是相互一致的,因此更有可能是正确的。
2. 项目快速启动
环境准备
- Python 3.10
- CUDA 12
- 最新版本的PyTorch
- 最新版本的transformers
- 最新版本的vllm
生成器启动
以下是一个运行rStar生成器的示例:
bash scripts/run_gsm8k_generator.sh
该脚本run_gsm8k_generator.sh
包含以下可配置参数:
--dataset_name
: 数据集名称(从[MATH, GSM8K, GSM8KHARD, STG, SVAMP, MULTIARITH]中选择)--test_json_filename
: 测试JSON文件的名称(默认:test_all)--model_ckpt
: 模型检查点的路径--note
: 输出文件夹的额外注释--num_rollouts
: 滚动次数(默认:16)
确保根据你的需求调整这些参数。
生成器评估
以下是一个评估rStar生成器结果的示例:
python eval_src/do_eval.py --dataset_name GSM8K --exp_dir_path <generator_output_folder>
替换<generator_output_folder>
为你生成器输出的目录路径。
判别器启动
以下是一个运行rStar判别器的示例:
bash scripts/run_gsm8k_discriminator.sh
该脚本run_gsm8k_discriminator.sh
包含以下可配置参数:
--model_ckpt
: 判别器模型的检查点路径--root_dir
: 评估结果文件夹的路径--dataset_name
: 数据集名称(从[MATH, GSM8K, GSM8KHARD, STG, SVAMP, MULTIARITH]中选择)--note
: 输出文件夹的额外注释
确保根据你的需求调整这些参数。
3. 应用案例和最佳实践
rStar已经在多个推理任务上进行了测试,并取得了显著的效果。例如,在GSM8K数据集上,LLaMA2-7B模型的准确率从12.51%提升到了63.91%。以下是几个应用案例:
- 数学推理
- 代码生成
- 自然语言推理
最佳实践建议:
- 针对不同数据集选择合适的模型和参数
- 使用充分的滚动次数以获得更稳定的性能
- 在实际应用中,可以根据任务需求调整生成器和判别器的配置
4. 典型生态项目
rStar作为小型语言模型的推理能力提升框架,可以与其他开源项目相结合,构建更加强大的应用生态。以下是一些典型的生态项目:
- 与自然语言处理相关的工具和库集成
- 为在线教育平台提供智能推理支持
- 在智能客服系统中实现复杂问题的自动解决
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考