avatar

Wang's Blog

Be Open, Share Knowledge, Keep Learning

  • 首页
  • 数理基础
  • 宇宙机
  • LLM
  • 管理与经济
  • 游戏
Home 代码阅读与运行2
文章

代码阅读与运行2

Posted 2025-09-28 Updated 2025-08- 6
By Administrator
6~8 min read

这次运行的是大名鼎鼎的OpenRLHF

遇到的一些问题

自己的设备是colab提供的A100 GPU,显存40GB

安装的过程没有太大问题,都能顺利解决,安装之后按照README的顺序试着用以下命令启动SFT的训练(提供的脚本还没试过)

!deepspeed --module openrlhf.cli.train_sft \
   --max_len 1024 \
   --dataset Open-Orca/OpenOrca \
   --input_key question \
   --output_key response \
   --input_template $'User: {}\nAssistant: ' \
   --train_batch_size 16 \
   --micro_train_batch_size 2 \
   --max_samples 250000 \
   --pretrain Qwen/Qwen3-1.7B \
   --save_path ./checkpoint/qwen3-1.7b-sft \
   --save_steps -1 \
   --logging_steps 1 \
   --eval_steps -1 \
   --zero_stage 3 \
   --max_epochs 1 \
   --bf16 \
   --flash_attn \
   --learning_rate 5e-6 \
   --gradient_checkpointing \
   --packing_samples \
   --load_checkpoint \
 

(以上代码是我修改后的,不然跑不了)

  • max_len:从4096减少到1024

  • train_batch_size:从256减少到16(指的是在更新模型参数之前,累积梯度的总样本数量。这是一个逻辑上的批次大小,它与实际的硬件无关,只和优化器的更新频率有关)

  • micro_train_batch_size:指的是每个 GPU 在每次前向和反向传播中处理的实际样本数量。这是由 GPU 显存决定的。如果这个值太大, GPU 会因显存不足而崩溃(但是这个我没改)

在原始配置里面,256/2=128,deepspeed会认为我需要128个GPU,但是我只有一个,无法完成分布式训练的需求。

调整到16/2=8之后是可以的,8次累计在单张GPU上可以完成,deepspeed 会理解是在单卡上进行训练,并按照梯度累积的方式执行。

  • max_samples:数量减半了

  • pretrain:把meta-llama/Meta-Llama-3-8B换了(一开始申请使用还失败了,地区得选择阿美莉卡,名字也得正常一些),跑不了;后来用的Qwen/Qwen3-4B,也跑不了,最后选的Qwen/Qwen3-1.7B,发现新的问题(ValueError: API key must be 40 characters long, yours was 519)

发现这个玩意需要W&B的API keys,我给的是错的(难绷)

(Support website:https://docs.wandb.ai/support/find_api_key/)

这个网站感觉卡的不行

但是后来发现还是有个问题就是W&B给的API是42位,但是需要的是40位,我没有明白是为什么,所以把use_wandb 删掉了,改成用代码登录W&B网站

并且colab无法识别\,所以改成了下面这样

最后改成这样,能正常跑,预计30h

command = """
deepspeed --module openrlhf.cli.train_sft \\
   --max_len 1024 \\
   --dataset Open-Orca/OpenOrca \\
   --input_key question \\
   --output_key response \\
   --input_template $'User: {}\\nAssistant: ' \\
   --train_batch_size 16 \\
   --micro_train_batch_size 2 \\
   --max_samples 250000 \\
   --pretrain Qwen/Qwen3-0.6B \\
   --save_path ./checkpoint/qwen3-0.6b-sft \\
   --save_steps -1 \\
   --logging_steps 1 \\
   --eval_steps -1 \\
   --zero_stage 3 \\
   --max_epochs 1 \\
   --bf16 \\
   --flash_attn \\
   --learning_rate 5e-6 \\
   --gradient_checkpointing \\
   --packing_samples \\
   --load_checkpoint
"""

!{command}

LLM
License:  CC BY 4.0
Share

Further Reading

Sep 28, 2025

代码阅读与运行1

RLHF 试着运行了一份非常基础的RLHF代码,来源于:https://github.com/lansinuote/Simple_RLHF_tiny B站上有对应视频 📁项目结构 Simple_RLHF_tiny-main/ ├── 🔧 核心代码文件 │ ├── util.py # 工具类:To

Sep 28, 2025

大模型入门(6)——Agent、MCP、FunctionCall

内容来自B站视频:【10分钟讲清楚 Prompt, Agent, MCP 是什么】https://www.bilibili.com/video/BV1aeLqzUE6L?vd_source=a704063646d181fb265230f6b49cca81 System Prompt和User Pro

Sep 28, 2025

代码阅读与运行2

这次运行的是大名鼎鼎的OpenRLHF 遇到的一些问题 自己的设备是colab提供的A100 GPU,显存40GB 安装的过程没有太大问题,都能顺利解决,安装之后按照README的顺序试着用以下命令启动SFT的训练(提供的脚本还没试过) !deepspeed --module openrlhf.cl

OLDER

MCP(1)——MCP概述

NEWER

大模型入门(6)——Agent、MCP、FunctionCall

Recently Updated

  • C++
  • Hello World
  • 数据仓库复习整理
  • 代码阅读与运行1
  • 大模型入门(6)——Agent、MCP、FunctionCall

Trending Tags

Halo 前端 强化学习 Python obsidian

Contents

©2026 Wang's Blog. Some rights reserved.

Using the Halo theme Chirpy