Views
No views yet
1grpo_config = GRPOConfig(
2 # ---- 基础配置 ----
3 output_dir="./deepmath_grpo_output",
4 save_strategy='best',
5 save_total_limit=5,
6 #save_steps=100,
7 # ---- 批次大小 ----
8 per_device_train_batch_size=4, # 每设备批次大小
9 per_device_eval_batch_size=4,
10 gradient_accumulation_steps=4, # 梯度累积步数
11 # 有效批次大小 = 4 * 2 * 8 GPUs = 64(与论文 512 有差距,可根据硬件调整)
12
13 # ---- 训练步数 ----
14 max_steps=1000, # 论文中 DeepMath-Zero 训练 500 步
15 #num_train_epochs=1,
16 # ---- 推理框架配置
17 use_vllm=True,
18 vllm_gpu_memory_utilization=0.3,
19
20 # 评估策略
21 eval_strategy='steps',
22 eval_steps=50,
23 metric_for_best_model="eval_reward",
24 greater_is_better=True,
25 logging_strategy='epoch',
26 logging_dir="train_logs/",
27 load_best_model_at_end=True,
28
29 # ---- 学习率 ----
30 learning_rate=1e-6, # 论文 Table 5: lr=1e-6
31
32 # ---- GRPO 特有参数 ----
33 num_generations=settings.GROUP_SIZE_TRAIN, # 4
34 num_generations_eval=settings.GROUP_SIZE_EVAL, # 4
35 generation_batch_size=4, # 生成批次大小
36 max_completion_length=2048, # 最大生成长度(论文推理时为 32768,训练时 2048)
37 loss_type='grpo', # 使用标准 GRPO 算法训练
38
39 # ---- KL 散度控制 ----
40 beta=0.001, # 论文 Table 5: kl_coef=1e-3
41
42 # ---- 裁剪参数 ----
43 epsilon=0.2, # 论文 Table 5: clip_ratio_low=0.2
44 epsilon_high=0.28, # 论文 Table 5: clip_ratio_high=0.28
45
46 # ---- 温度参数 ----
47 temperature=1.0, # 论文 Table 5: temperature=1.0 (Zero RL)
48
49 # ---- 内存优化 ----
50 bf16=torch.cuda.is_bf16_supported(),
51 fp16=not torch.cuda.is_bf16_supported(),
52 gradient_checkpointing=True,
53
54 # ---- 报告与日志 ----
55 report_to="tensorboard", # 可改为 "wandb" 启用 wandb 日志
56 run_name="deepmath-grpo-qwen-0.5b-instruct",
57
58 # 随机种子
59 seed=settings.SEED
60 )