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

SwanLab x verl:可视化LLM强化学习后训练教程

文章目录

    • 介绍Verl和SwanLab
    • 1. 环境安装
    • 2. 使用方法
    • 3. 查看训练日志

介绍Verl和SwanLab

verl 是一个灵活、高效且可用于生产环境的强化学习(RL)训练框架,专为大型语言模型(LLMs)的后训练设计。它由字节跳动火山引擎团队开源,是 HybridFlow 论文的开源实现。verl目前已经被很多优秀的项目采用,如TinyZero、RAGEN、Logic R1等。

verl_logo 1

verl 具有以下特点,使其灵活且易于使用:

  1. 易于扩展的多样化 RL 算法:Hybrid 编程模型结合了单控制器和多控制器范式的优点,能够灵活表示并高效执行复杂的后训练数据流。用户只需几行代码即可构建 RL 数据流。
  2. 与现有 LLM 基础设施无缝集成的模块化 API:通过解耦计算和数据依赖,verl 能够与现有的 LLM 框架(如 PyTorch FSDP、Megatron-LM 和 vLLM)无缝集成。此外,用户可以轻松扩展到其他 LLM 训练和推理框架。
  3. 灵活的设备映射和并行化:支持将模型灵活地映射到不同的 GPU 组上,以实现高效的资源利用,并在不同规模的集群上具有良好的扩展性。
  4. 与流行的 HuggingFace 模型轻松集成:verl 能够方便地与 HuggingFace 模型进行集成。

verl 也具有以下优势,使其运行速度快:

  1. 最先进的吞吐量:通过无缝集成现有的 SOTA LLM 训练和推理框架,verl 实现了高生成和训练吞吐量。
  2. 基于 3D-HybridEngine 的高效 Actor 模型重分片:消除了内存冗余,并显著减少了在训练和生成阶段之间切换时的通信开销。

更多信息可参考如下链接

  • verl GitHub仓库链接: https://github.com/volcengine/verl
  • 官方文档: https://verl.readthedocs.io/en/latest/index.html
  • HybridFlow论文地址: https://arxiv.org/pdf/2409.19256v2

SwanLab 是一个开源的模型训练记录工具,常被称为"中国版 Weights&Biases + Tensorboard"。SwanLab面向AI研究者,提供了训练可视化、自动日志记录、超参数记录、实验对比、多人协同等功能。在SwanLab上,研究者能基于直观的可视化图表发现训练问题,对比多个实验找到研究灵感,并通过在线链接的分享与基于组织的多人协同训练,打破团队沟通的壁垒。

image

你可以使用verl快速进行大模型强化学习训练,同时使用SwanLab进行实验跟踪与可视化。

1. 环境安装

需要环境:

  • Python: Version >= 3.9
  • CUDA: Version >= 12.1

参考verl官方文档安装:https://verl.readthedocs.io/en/latest/start/install.html

以及需要额外安装SwanLab

pip install -U swanlab

2. 使用方法

以verl官方文档的Post-train a LLM using PPO with GSM8K dataset为例。

你仅需要通过在实验的启动命令中,增加trainer.logger=['swanlab'],即可选择swanlab进行实验跟踪。

完整的测试命令如下:

PYTHONUNBUFFERED=1 python3 -m verl.trainer.main_ppo \trainer.logger=['console','swanlab'] \data.train_files=$HOME/data/gsm8k/train.parquet \data.val_files=$HOME/data/gsm8k/test.parquet \data.train_batch_size=256 \data.val_batch_size=1312 \data.max_prompt_length=512 \data.max_response_length=256 \actor_rollout_ref.model.path=Qwen/Qwen2.5-0.5B-Instruct \actor_rollout_ref.actor.optim.lr=1e-6 \actor_rollout_ref.actor.ppo_mini_batch_size=64 \actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=4 \actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8 \actor_rollout_ref.rollout.tensor_model_parallel_size=1 \actor_rollout_ref.rollout.gpu_memory_utilization=0.4 \actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=4 \critic.optim.lr=1e-5 \critic.model.path=Qwen/Qwen2.5-0.5B-Instruct \critic.ppo_micro_batch_size_per_gpu=4 \algorithm.kl_ctrl.kl_coef=0.001 \+trainer.val_before_train=False \trainer.default_hdfs_dir=null \trainer.n_gpus_per_node=1 \trainer.nnodes=1 \trainer.save_freq=10 \trainer.test_freq=10 \trainer.total_epochs=15 2>&1 | tee verl_demo.log

如果启动训练时你还未登陆SwanLab,会出现如下提示。

select

选择1、2则为使用云端跟踪模式,选择后根据引导输入官网的API即可实现在线跟踪。可以在线查看训练跟踪结果。选择3则不上传训练数据,采用离线跟踪。

当然,你也可以通过环境变量的方式登陆或者设置跟踪模式:

export SWANLAB_API_KEY=<你的登陆API>           # 设置在线跟踪模式API
export SWANLAB_LOG_DIR=<设置本地日志存储路径>    # 设置本地日志存储路径
export SWANLAB_MODE=<设置SwanLab的运行模式>     # 包含四种模式:cloud云端跟踪模式(默认)、cloud-only仅云端跟踪本地不保存文件、local本地跟踪模式、disabled完全不记录用于debug

3. 查看训练日志

完成登陆后会显示如下登陆信息:

track

运行进程,即可在SwanLab官网上查看训练日志:

remote

更多使用方法可以参考SwanLab查看使用结果


如果你使用本地看板模式,则可以通过如下命令打开本地看板

swanlab watch

更多详细可以参考SwanLab离线看板模式

服务器设置端口号可以查看离线看板端口号

相关文章:

SwanLab x verl:可视化LLM强化学习后训练教程

文章目录 介绍Verl和SwanLab1. 环境安装2. 使用方法3. 查看训练日志 介绍Verl和SwanLab verl 是一个灵活、高效且可用于生产环境的强化学习&#xff08;RL&#xff09;训练框架&#xff0c;专为大型语言模型&#xff08;LLMs&#xff09;的后训练设计。它由字节跳动火山引擎团…...

职场到校园,初心未改:我的2024年

Hi&#xff0c;大家好&#xff0c;我是几何心凉。 其实早就想写一份复盘文章&#xff0c;正好借助2024年度博客之星的评选机会&#xff0c;来写下这篇总结。回望过去&#xff0c;感慨颇多。自从加入CSDN平台以来&#xff0c;已经见证了许多博主的来去匆匆&#xff0c;各类创作…...

C++基础知识学习记录—引用

1、引用的概念 概念&#xff1a;引用相当于给变量取个别名 对引用进行操作与直接操作变量相同&#xff0c;注意引用类型与变量类型一致 #include<iostream> using namespace std; int main(){int a10;int& cite_a a;//操作引用cite_a 与操作变量a完全一样cout &l…...

AWS Savings Plans 监控与分析工具使用指南

一、背景介绍 1.1 什么是 Savings Plans? AWS Savings Plans 是一种灵活的定价模式,通过承诺持续使用一定金额的 AWS 服务来获得折扣价格。它可以帮助用户降低 AWS 使用成本,适用于 EC2、Fargate 和 Lambda 等服务。 1.2 为什么需要监控? 优化成本支出跟踪使用情况评估投…...

【AI学习】关于 DeepSeek-R1的几个流程图

遇见关于DeepSeek-R1的几个流程图&#xff0c;清晰易懂形象直观&#xff0c;记录于此。 流程图一 来自文章《Understanding Reasoning LLMs》&#xff0c; 文章链接&#xff1a;https://magazine.sebastianraschka.com/p/understanding-reasoning-llms?continueFlagaf07b1a0…...

C++ ——从C到C++

1、C的学习方法 &#xff08;1&#xff09;C知识点概念内容比较多&#xff0c;需要反复复习 &#xff08;2&#xff09;偏理论&#xff0c;有的内容不理解&#xff0c;可以先背下来&#xff0c;后续可能会理解更深 &#xff08;3&#xff09;学好编程要多练习&#xff0c;简…...

【图片转换PDF】多个文件夹里图片逐个批量转换成多个pdf软件,子文件夹单独合并转换,子文件夹单独批量转换,基于Py的解决方案

建筑设计公司在项目执行过程中&#xff0c;会产生大量的设计图纸、效果图、实景照片等图片资料。这些资料按照项目名称、阶段、专业等维度存放在多个文件夹和子文件夹中。 操作需求&#xff1a;为了方便内部管理和向客户交付完整的设计方案&#xff0c;公司需要将每个项目文件…...

前端学习之Flex布局

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Flex布局示例</title><style>.conta…...

游戏引擎学习第97天

回顾昨天并计划今天 在这期节目中&#xff0c;主要讲解了光照的概念&#xff0c;并进一步讨论了法线贴图光照的实现。节目的内容大致分为几个部分&#xff1a; 光照的基础概述&#xff1a;讨论了光的工作原理以及如何在编程图形时需要考虑光照问题。尽管这些概念并没有深入到…...

Mysql中存储引擎各种介绍以及应用场景、优缺点

概述 MySQL 提供了多种存储引擎&#xff0c;每种引擎有不同的特点和适用场景。以下是几种常见的 MySQL 存储引擎的详细介绍&#xff0c;包括它们的底层工作原理、优缺点&#xff0c;以及为什么 MySQL 默认选择某种引擎。 1. InnoDB 底层工作原理&#xff1a; 事务支持&#…...

PHP 运算符

PHP 运算符 概述 PHP 是一种广泛使用的开源服务器端脚本语言,它具有丰富的运算符集,这些运算符是编写 PHP 程序的基础。运算符用于执行各种数学、逻辑和比较操作。本篇文章将详细介绍 PHP 中常用的运算符,包括算术运算符、比较运算符、逻辑运算符、赋值运算符等。 算术运…...

Vue全流程--Vue3.0与Vue2.0响应式原理对比

Vue2中数据的响应式 需要使用Vue.set这么一个api&#xff0c;修改数据 需要使用Vue.delete这么一个api&#xff0c;删除数据 数据代理这个当面的理解可以看看我前面文章Vue全流程--数据代理的理解以及在Vue中的应用-CSDN博客 Vue3中数据的响应式 Vue3使用proxy这个api实现…...

C语言学习笔记:子函数的调用实现各个位的累加和

在C语言程序学习之初&#xff0c;我们都会学习如何打印 hello world&#xff0c;在学习时我们知道了int main&#xff08;&#xff09;是主函数&#xff0c;程序从main函数开始执行&#xff0c;这是流程控制的一部分内容。在主函数中我们想要实现一些功能&#xff0c;比如求各个…...

【大模型】本地部署DeepSeek-R1:8b大模型及搭建Open-WebUI交互页面

本地部署DeepSeek-R1:8b大模型 一、摘要及版本选择说明1.1 摘要1.2 版本选择 二、下载并安装Ollama三、运行DeepSeek-R1:8b大模型四、安装Open WebUI增强交互体验五、关闭Ollama开机自动启动六、DeepSeek大模型启停步骤 一、摘要及版本选择说明 1.1 摘要 作为一名对 AI 和生成…...

Python 调用 Stabilityai API在本地生成图像

Python 调用 Stabilityai API在本地生成图像 摘要功能 代码结构关键技术代码下载立即体验 摘要 本程序利用硅基流动目前的免费 stabilityai/stable-diffusion-2-1 模型API&#xff0c;生成图像并下载到本地&#xff0c;用户可以通过输入描述性提示词来获取相应的图像。使用Pyt…...

Python3中异常处理:try-finally语句的示例

一. 简介 前面一篇文章简单学习了 try-finally语句结构&#xff0c;执行过程、以及使用场景。文章如下&#xff1a; Python3中异常处理&#xff1a;try-finally语句-CSDN博客 本文写一些简单的示例来继续学习 try-finally语句的使用。 二. Python3中异常处理&#xff1a;try…...

Lua限流器的3种写法

学而不思则罔&#xff0c;思而不学则殆 引言 上篇文章讲解了Lua脚本&#xff0c;事务和Pipline之间的使用方式和性能差距&#xff0c;本篇文章将聚焦Lua脚本&#xff0c;我将用三种写法来展现如何实现一个Redis限流器 固定窗口限流 固定窗口限流也是最简单的限流算法&#x…...

基于 GEE 利用插值方法填补缺失影像

目录 1 完整代码 2 运行结果 利用GEE合成NDVI时&#xff0c;如果研究区较大&#xff0c;一个月的影像覆盖不了整个研究区&#xff0c;就会有缺失的地方&#xff0c;还有就是去云之后&#xff0c;有云量的地区变成空值。 所以今天来用一种插值的方法来填补缺失的影像&#xf…...

linux部署ollama+deepseek+dify

Ollama 下载源码 curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz sudo tar -C /usr -xzf ollama-linux-amd64.tgz启动 export OLLAMA_HOST0.0.0.0:11434 ollama serve访问ip:11434看到即成功 Ollama is running 手动安装deepseek…...

在微服务中,如何使用feign在各个微服务中进行远程调用

在微服务中&#xff0c;如何使用feign在不同微服务中进行远程调用 在微服务中&#xff0c;如何使用feign在不同微服务中进行远程调用 步骤&#xff1a; 第一步&#xff1a; 引入feign依赖 <dependency><groupId>org.springframework.cloud</groupId><…...

Mermaid在线编辑器终极指南:从代码思维到专业图表的无缝转换体验

Mermaid在线编辑器终极指南&#xff1a;从代码思维到专业图表的无缝转换体验 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-l…...

别再手动改请求头了!用BurpSuite插件5分钟搞定自动化添加(附完整Java代码)

解放双手&#xff1a;用BurpSuite插件实现HTTP请求头自动化管理 每次安全测试时&#xff0c;你是否也厌倦了反复点击"拦截"按钮、手动添加X-Debug-Header或修改User-Agent&#xff1f;作为一名长期与BurpSuite打交道的安全工程师&#xff0c;我深知这种重复性操作不仅…...

Python智能内存管理策略深度评测(CPython 3.9–3.12全版本横评):谁真正降低了47.6% OOM风险?

第一章&#xff1a;Python智能内存管理策略深度评测总览Python 的内存管理并非由开发者手动控制&#xff0c;而是依托于一套高度集成的智能机制——包括引用计数、循环垃圾回收器&#xff08;gc 模块&#xff09;以及内存池&#xff08;pymalloc&#xff09;三层协同体系。这种…...

学术论文解析神器!OpenDataLab MinerU智能文档理解实测体验

学术论文解析神器&#xff01;OpenDataLab MinerU智能文档理解实测体验 1. 前言&#xff1a;当AI遇见学术论文 对于每一位科研工作者、学生或技术从业者来说&#xff0c;阅读和整理学术论文都是一项既基础又繁重的工作。你是否也曾经历过这样的场景&#xff1a;面对一篇几十页…...

FastMind:比 LangGraph 更轻量的 Python Agent 框架

在 AI Agent 开发领域&#xff0c;LangGraph 是一个知名的框架&#xff0c;但如果你正在寻找一个更轻量、更简洁、更适合快速开发的替代方案&#xff0c;那么 FastMind 值得你关注。 项目定位 LangGraph 定位: 企业级 Agent 开发框架特点: 功能全面&#xff0c;支持复杂工作流复…...

Java基础实战:用快马平台快速构建学生成绩管理系统巩固核心知识

最近在复习Java基础知识&#xff0c;发现光看理论很容易遗忘&#xff0c;于是决定通过一个小项目来巩固核心概念。这个简易学生成绩管理系统虽然功能简单&#xff0c;但涵盖了Java基础的多个重要知识点&#xff0c;特别适合像我这样的初学者练手。 项目整体设计思路 首先考虑…...

WebDAV网盘横向评测:从个人备份到多端同步的实战指南

1. WebDAV网盘入门&#xff1a;为什么你需要它&#xff1f; 刚接触WebDAV时&#xff0c;我和大多数人一样疑惑&#xff1a;明明有那么多现成的网盘&#xff0c;为什么还要折腾这个&#xff1f;直到有次出差&#xff0c;急需修改存放在某商业网盘里的设计方案&#xff0c;却发现…...

剑指offer-58、对称二叉树

题⽬描述 请实现⼀个函数&#xff0c;⽤来判断⼀棵⼆叉树是不是对称的。注意&#xff0c;如果⼀个⼆叉树同此⼆叉树的镜像是同样 的&#xff0c;定义其为对称的。 例如&#xff1a;下⾯这棵⼆叉树是对称的 下⾯这个就不是对称的&#xff1a; 示例1 输⼊&#xff1a;{8,6,6,5…...

TMSpeech:开源本地语音转文字工具的隐私革命

TMSpeech&#xff1a;开源本地语音转文字工具的隐私革命 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 在数字化办公浪潮中&#xff0c;语音转文字工具已成为效率提升的关键助手&#xff0c;但云端处理的隐私泄露风…...

【2026年最新600套毕设项目分享】基于springboot+vue的无人机共享管理系统(14299)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告/任务书&#xff09;远程调试控屏包运行一键启动项目&…...