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

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简介

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=XFORMERSbash ./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=XFORMERSbash ./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=XFORMERSbash ./scripts/train_tiny_zero.sh

TinyZero 的案例应用

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


http://www.mrgr.cn/news/90039.html

相关文章:

  • MongoDB基础入门
  • html文件怎么转换成pdf文件,2025最新教程
  • vue3自定义提示框和下载
  • Spring Boot 整合 JPA 实现数据持久化
  • 0 Rust与Qt集成实践指南(CXX-Qt)
  • Vue 响应式渲染 - 列表渲染
  • [概率论] 随机变量
  • CPLD实现SPI通信
  • android系统的overlay机制
  • Odoo17学习笔记
  • 题解 洛谷 Luogu P1983 [NOIP 2013 普及组] 车站分级 拓扑排序 C++
  • 【1.05版】wordpressAI插件批量生成文章、图片、长尾关键词、文章采集、AI对话等
  • fps动作系统5:角色冲刺
  • [M模拟] lc380. O(1) 时间插入、删除和获取随机元素(模拟+数据结构+脑筋急转弯+数组快捷删除技巧+项目思考)
  • Maven入门核心知识点总结
  • 【Matlab优化算法-第14期】基于智能优化算法的VMD信号去噪项目实践
  • Java虚拟机面试题:类加载机制
  • 深入理解Java三大特性:封装、继承和多态
  • 【STM32基础】STM32F4 USB通信之HID设备(基于CubeMX)
  • 51单片机俄罗斯方块计分函数
  • 位图的深入解析:从数据结构到图像处理与C++实现
  • 蚂蚁爬行最短问题
  • 【蓝桥杯嵌入式】UART(收发)
  • 计算机毕业设计Python+Vue.js游戏推荐系统 Steam游戏推荐系统 Django Flask 游 戏可视化 游戏数据分析 游戏大数据 爬虫
  • Centos Stream 10 根目录下的文件夹结构
  • 【HeadFirst系列之HeadFirstJava】第2天之类与对象-拜访对象村