当前位置: 首页 > article >正文

LLMs之DeepSeek r1:TinyZero(复现 DeepSeek R1 Zero 的核心功能)的简介、安装和使用方法、案例应用之详细攻略

LLMs之DeepSeek r1:TinyZero(复现 DeepSeek R1 Zero 的核心功能)的简介、安装和使用方法、案例应用之详细攻略

目录

TinyZero的简介

1、TinyZero的特点

TinyZero的安装和使用方法

1、安装

创建 conda 环境

数据准备 (倒计时任务)

训练执行

单GPU (适用于模型 <= 1.5B):

多GPU (适用于 3B+ 模型):

指令消融实验 (使用 QWen-2.5-3B Instruct):

需要重新处理数据

训练

TinyZero 的案例应用


TinyZero简介

2025年1月24日,TinyZero 项目是对 DeepSeek R1 Zero 在倒计时乘法任务上的一个简洁、最小化且易于访问的复现。它基于 veRL 构建,通过强化学习,使 3B 基础大型语言模型自主地发展出自我验证和搜索能力。 项目声称只需不到 30 美元即可体验其效果,并提供了 Twitter 讨论串链接和完整的实验日志链接 (Wandb)。 论文正在撰写中。

帖子:https://x.com/jiayi_pirate/status/1882839370505621655

完整实验日志:Weights & Biases

1、TinyZero特点

TinyZero 的主要特点是其简洁性和易访问性,它成功复现了 DeepSeek R1 Zero 的核心功能,使得研究人员和开发者更容易理解和应用该技术。 通过强化学习,模型能够独立地学习自我验证和搜索能力,这使得模型能够更有效地解决复杂的推理问题。

TinyZero的安装和使用方法

1、安装

创建 conda 环境

创建 conda 环境
conda create -n zero python=3.9

安装 PyTorch (可选,vllm 可自行安装)
pip install torch==2.4.0 --index-url https://download.pytorch.org/whl/cu121

安装 vllm
pip3 install vllm==0.6.3 (或 0.5.4, 0.4.2, 0.3.1)

安装 Ray
pip3 install ray

安装 verl
pip install -e .

安装 flash attention 2
pip3 install flash-attn --no-build-isolation

安装其他依赖 (提高使用体验)
pip install wandb IPython matplotlib

数据准备 (倒计时任务)

激活 conda 环境:conda activate zero
运行数据预处理脚本:python ./examples/data_preprocess/countdown.py --local_dir {path_to_your_dataset} ({path_to_your_dataset} 替换为你的数据集路径)

训练执行

训练过程根据模型大小分为两种情况:

单GPU (适用于模型 <= 1.5B):
export N_GPUS=1
export BASE_MODEL={path_to_your_model}
export DATA_DIR={path_to_your_dataset}
export ROLLOUT_TP_SIZE=1
export EXPERIMENT_NAME=countdown-qwen2.5-0.5b
export VLLM_ATTENTION_BACKEND=XFORMERS

bash ./scripts/train_tiny_zero.sh

如果出现内存不足 (Out-of-vram) 错误,可以在脚本中添加 critic.model.enable_gradient_checkpointing=True。

多GPU (适用于 3B+ 模型):
export N_GPUS=2
export BASE_MODEL={path_to_your_model}
export DATA_DIR={path_to_your_dataset}
export ROLLOUT_TP_SIZE=2
export EXPERIMENT_NAME=countdown-qwen2.5-3b
export VLLM_ATTENTION_BACKEND=XFORMERS

bash ./scripts/train_tiny_zero.sh

指令消融实验 (使用 QWen-2.5-3B Instruct):

需要重新处理数据

激活 conda 环境:conda activate zero
运行数据预处理脚本 (使用指令模板): python examples/data_preprocess/countdown.py --template_type=qwen-instruct --local_dir={path_to_your_dataset}

训练

然后使用与 3B+ 模型相同的训练命令,只是将 EXPERIMENT_NAME 更改为 countdown-qwen2.5-3b-instruct。所有命令中的 {path_to_your_model} 和 {path_to_your_dataset} 需要替换成你的模型路径和数据集路径。

export N_GPUS=2
export BASE_MODEL={path_to_your_model}
export DATA_DIR={path_to_your_dataset}
export ROLLOUT_TP_SIZE=2
export EXPERIMENT_NAME=countdown-qwen2.5-3b-instruct
export VLLM_ATTENTION_BACKEND=XFORMERS

bash ./scripts/train_tiny_zero.sh

TinyZero 的案例应用

项目主要关注倒计时任务,并提供了针对不同大小模型 (0.5B 和 3B+) 的训练方法。 实验使用了 Qwen2.5 系列基础模型。 项目说明了在 0.5B 模型上强化学习效果不佳,而 3B+ 模型则能够学习复杂的推理技能。 具体的实验结果和详细的消融实验结果可以在其提供的 Wandb 链接中查看。


http://www.kler.cn/a/539109.html

相关文章:

  • 2025/2/10 心得
  • 【键盘识别】实例分割
  • Rust语言进阶之标准输入: stdin用法实例(一百零五)
  • 鸿蒙 router.back()返回不到上个页面
  • google 多模态aistudio Stream Realtime体验
  • 关于知识蒸馏的概念原理以及常见方法
  • SpringBoot 接口内容加密方案(RSA+AES+HMAC校验)认知
  • Python基础语法精要
  • 笔记:理解借贷相等的公式
  • Linux debugfs虚拟文件系统
  • COBOL语言的安全开发
  • 背包问题1
  • 交易一张股指期货需要多少钱?
  • Snipaste 截图软件下载与使用教程:附百度网盘地址
  • Leetcode 3449. Maximize the Minimum Game Score
  • 【MQ】Spring3 中 RabbitMQ 的使用与常见场景
  • 2025.2.9机器学习笔记:PINN文献阅读
  • excel拆分表格
  • Processing P5js姓氏数据可视化项目
  • Maven 与企业项目的集成
  • python--sqlite
  • K8s —基础指南(K8s - Basic Guide)
  • DeepSeek本地安装+集成VScode使用
  • LM Studio本地调用模型的方法
  • rockmq配置出现的问题
  • 表单配置化方案:Formily