官方github:https://github.com/hiyouga/EasyR1
参考:https://opendeep.wiki/hiyouga/EasyR1/quickstart

代码和环境配置

github:https://github.com/hiyouga/EasyR1
新建一个虚拟环境:

python -m venv easyr1
source easyr1/bin/activate
python -m pip install transformers==4.51.0
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1
python -m pip install wheel
python -m pip install flash-attn==2.7.4.post1
python -m pip install vllm==0.8.3

安装:

git clone https://github.com/hiyouga/EasyR1.git
cd EasyR1
pip install -e .

数据集

text数据集:https://huggingface.co/datasets/hiyouga/math12k
参考数据集构建

参考代码:

import json
import os
from datasets import Dataset, DatasetDictdef generate_data(data_path: str):with open(data_path, "r", encoding="utf-8") as f:for line in f:data = json.loads(line)yield {"problem": data["problem"],"answer": data["answer"],}def main():trainset = Dataset.from_generator(generate_data, gen_kwargs={"data_path": os.path.join("prm800k", "math_splits", "train.jsonl")})testset = Dataset.from_generator(generate_data, gen_kwargs={"data_path": os.path.join("prm800k", "math_splits", "test.jsonl")})dataset = DatasetDict({"train": trainset, "test": testset})dataset.push_to_hub("hiyouga/math12k")if __name__ == "__main__":main()

主要修改的参数

参数含义
参数含义2

config路径:examples/config.yaml

data

  • train_files训练集路径
  • val_files测试集路径
  • max_prompt_length:输入长度限制
  • max_response_length:输出长度限制
  • rollout_batch_size:
  • mini_rollout_batch_size:
  • format_prompt:根据llm来定对应的jinja文件

worker

  • actor.model:模型路径
  • rollout.n:一条数据组内采样几条样本,默认5,我设置的8
  • reward.reward_function:reward函数路径。

trainer

  • experiment_name:实验名称

遇到的报错

  1. 代码卡在“Started a local Ray instance. View the dashboard at 127.0.0.1:8265”不动
  2. failed to register worker to ralylet: IOError
    这俩问题合在一起。

参考解决方式1
参考解决方式2

做法:
所有的bs都改成1,除了global_batch_size是gpu数量。并rollout batch_size的必须是global_batch_size的倍数,我给rollout_batch_size开了8或16。
代码路径:verl/trainer/config.py
调整参数

worker:reward:num_cpus: 1

此外强制修改num_cpus:
/mnt/gemininjceph3/geminicephfs/mmsearch-luban-universal/group_2/user_skylarshao/EasyR1/verl/trainer/main.py
ray.init(runtime_env=runtime_env)改成ray.init(runtime_env=runtime_env, num_cpus=1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96690.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96690.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/96690.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年KBS SCI1区TOP,新颖奖励与ε-贪婪衰减Q-learning算法+局部移动机器人路径规划,深度解析+性能实测

目录1.摘要2.新颖奖励与ε-贪婪衰减Q-learning算法3.结果展示4.参考文献5.代码获取6.算法辅导应用定制读者交流1.摘要 路径规划是移动机器人的核心任务,需要在高效导航的同时规避障碍。本文提出了一种改进Q-learning算法——定制化奖励与ε-贪婪衰减Q-learning&…

运行npm run命令报错“error:0308010C:digital envelope routines::unsupported”

下载的前后端分离架构的开源项目,运行“npm run serve”命令启动前端服务时报错“error:0308010C:digital envelope routines::unsupported”,这个错误通常是由于Node.js版本与项目依赖不兼容导致的,特别是在Node.js v17版本中,百…

AI计算提效关键。自适应弹性加速,基于存算架构做浮点运算

一、自适应弹性加速是提升芯片能效比的有力手段自适应弹性加速技术是现代芯片设计中提升能效比的关键路径之一。它摒弃了传统芯片在设计时采用的静态、固化的资源分配与功能设定模式,通过引入动态调整机制,使得芯片能够根据实时的应用需求和负载变化&…

Spring Boot测试陷阱:失败测试为何“传染”其他用例?

一个测试失败,为何“传染”其他测试?——Spring Boot 单元测试独立性与泛型陷阱实战解析 🚩 问题背景 在日常开发中,我们常会遇到这样的场景: 正在开发新功能 A,写了一个 testFeatureA() 测试方法&#xff…

Web开发中的CGI:通用网关接口详解

一、CGI的设计意图:解决Web的"静态"困境 在CGI出现之前,Web服务器只能做一件事:返回预先写好的静态文件(HTML、图片等)。每个用户看到的内容都是一模一样的。 设计意图很简单但却革命性: 让Web服…

在 SSMS 中查找和打开已保存的查询文件

在 SSMS 中查找和打开已保存的查询文件 在 SQL Server Management Studio (SSMS) 中,您可以轻松地查找并打开已保存的查询文件(通常以 .sql 扩展名保存)。SSMS 提供了直观的界面支持直接打开这些文件,无需额外工具。以下是详细步骤…

Protues使用说明及Protues与Keil联合仿真实现点亮小灯和流水灯

目录 1Protues介绍及新建工程 1.1进入软件 1.2文件创建 1.3默认选项 1.5设计面板 1.6添加元器件 1.7终端模式 1.8激励源模式 1.9探针模式 1.10仪表 1.11二维直线 1.12字符 2 Protues电路原理图仿真 2.1 220V交流电转5V直流电稳压电路仿真原理图 2.1.1 仿真原理图…

Linux PCI 子系统:工作原理与实现机制深度分析

Linux PCI 子系统:工作原理与实现机制深度分析 1. Linux PCI 子系统基础概念 1.1 PCI/PCIe 基础概念回顾 总线拓扑: PCI/PCIe 系统是一个树形结构。CPU 连接到 Root Complex (RC),RC 连接至 PCIe 交换机 (Switch) 和 PCIe 端点设备 (Endpoint…

RabbitMQ 全面指南:架构解析与案例实战

目录一、RabbitMQ 简介1.1 什么是 RabbitMQ1.2 RabbitMQ 的核心组件1.3 RabbitMQ 的应用场景二、环境搭建2.1 安装 RabbitMQ2.2 安装 Erlang2.3 配置 RabbitMQ三、RabbitMQ 核心概念与工作原理3.1 消息模型3.2 交换机类型3.3 队列特性3.4 消息确认机制四、Spring Boot 集成 Rab…

6.2 el-menu

一、 <el-menu>: 菜单组件&#xff0c;定义了侧边栏内部的具体导航项、层级结构和交互行为。<el-container><!-- 侧边栏容器 --><el-aside width"200px"><!-- 菜单内容 --><el-menu default-active"1" class"el-men…

Windows 笔记本实现仅关屏仍工作:一种更便捷的 “伪熄屏” 方案

在使用 Windows 笔记本作为临时服务器或需要后台持续运行程序时&#xff0c;我们常面临一个需求&#xff1a;关闭屏幕以节省电量或减少光污染&#xff0c;同时保持系统正常工作。然而&#xff0c;网络上流传的诸多方法往往存在局限&#xff0c;要么无法兼顾 “熄屏” 与 “工作…

Linux应急响应一般思路(二)

进程排查进程(Process)是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;是操作系统结构的基础无论是在Windows系统还是Linux系统中&#xff0c;主机在感染恶意程序后&#xff0c;恶意程序都会启动相应的进程&#x…

基于 SkyWalking + Elasticsearch + Grafana 的可落地调用链监控方案

这个方案成熟稳定、社区活跃、部署相对简单,非常适合中小型团队作为第一代调用链系统落地。 一、核心组件选型与角色 组件 版本建议 角色 优点 Apache SkyWalking v9.x+ 核心平台 (采集、分析、存储、UI) 国产优秀,Java Agent无侵入接入,功能全面,性能损耗低 Elasticsearc…

APP逆向——某站device-id参数

免责声明本博客所涉及的 爬虫技术、逆向分析方法 仅用于 学习、研究和技术交流。文中所有示例代码、工具和方法&#xff0c;均不得用于以下行为&#xff1a;未经授权的数据采集侵犯他人知识产权干扰或破坏正常业务系统任何违反国家法律法规的行为因读者将本教程内容用于 非法用…

C/C++数据结构之循环链表

概述循环链表本质上也是一个单向或双向链表&#xff0c;但其最后一个节点的指针并不指向NULL&#xff0c;而是指向链表的第一个节点&#xff0c;从而形成一个闭合的环。这种结构使得在遍历链表时&#xff0c;可以从任意一个节点开始&#xff0c;并最终回到起始点。音乐播放软件…

Mongodb的教程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、mongodb是什么&#xff1f; 二、mongodb的下载与安装教程 三、mongodb的常见操作 总结 前言 在当今数据驱动的世界中&#xff0c;数据库技术是构建高效…

MySQL视图有什么用?一文读懂虚拟表的六大核心价值

引言 在数据库开发中&#xff0c;你是否遇到过这样的困境&#xff1a;业务人员需要查看复杂关联数据却难以理解多表JOIN&#xff0c;或需要限制某些用户只能访问特定字段&#xff1f;MySQL视图正是为此设计的"数据透视镜"。本文将通过官方定义、典型场景和最佳实践&a…

ubuntu24.04 frps服务器端自动启动设置【2025-08-20】

Ubuntu 24.04采用systemd作为默认的init系统&#xff0c;我们可以通过创建systemd服务单元文件来实现开机自启动。以下是具体实施步骤&#xff1a;创建服务文件使用文本编辑器创建服务配置文件&#xff1a;sudo nano /etc/systemd/system/frps.service编写服务配置内容在文件中…

数据结构与算法-字符串、数组和广义表(String Array List)

3 字符串、数组和广义表&#xff08;String Array List&#xff09; 3.1 字符串&#xff08;String&#xff09; 3.1.1 串的顺序存储 a. 定长顺序&#xff1a; #define MAXLEN 255 // 串的定长顺序存储结构 typedef struct {char ch[MAXLEN 1]; // 字符串数据&#xff0c;…

【网络运维】Shell 脚本编程:if 条件语句

Shell 脚本编程&#xff1a;if 条件语句 if 条件语句概述 if 条件语句是 Linux Shell 脚本编程中最基础且使用频率最高的控制结构之一&#xff0c;其语义类似于自然语言中的“如果…那么…”。熟练掌握 if 语句的用法&#xff0c;是成为一名合格运维工程师的基本要求。 if 语句…