编辑
2025-05-01
深度学习
00

目录

GRPO配置参数文档
模型和参考模型参数
数据预处理参数
vLLM生成加速参数
训练参数
日志参数

grpo_config.py

GRPO配置参数文档

模型和参考模型参数

  • model_init_kwargs: dict[str, Any]None,默认值 None
    • 用于transformers.AutoModelForCausalLM.from_pretrained的关键字参数,当GRPOTrainermodel参数提供为字符串时使用。

数据预处理参数

  • remove_unused_columns: bool,默认值 False

    • 是否仅保留数据集中的"prompt"列。如果您使用的自定义奖励函数需要"prompts"和"completions"以外的任何列,应将此值保持为False
  • max_prompt_length: intNone,默认值 512

    • 提示的最大长度。如果提示长度超过此值,将从左侧截断。
  • num_generations: intNone,默认值 8

    • 每个提示生成的样本数。全局批次大小(num_processes * per_device_batch_size)必须能被此值整除。
  • temperature: float,默认值 0.9

    • 采样的温度。温度越高,生成的内容越随机。
  • max_completion_length: intNone,默认值 256

    • 生成内容的最大长度。
  • ds3_gather_for_generation: bool,默认值 True

    • 适用于DeepSpeed ZeRO-3。如果启用,将收集策略模型权重以提高生成速度。禁用此选项可以训练超出单个GPU VRAM容量的模型,但会降低生成速度。禁用此选项与vLLM生成不兼容。

vLLM生成加速参数

  • use_vllm: bool,默认值 False

    • 是否使用vLLM生成内容。如果设置为True,确保为训练保留一个未使用的GPU,因为vLLM需要一个GPU用于生成。必须安装vLLM (pip install vllm)。
  • vllm_device: str,默认值 "auto"

    • vLLM生成运行的设备,例如"cuda:1"。如果设置为"auto"(默认),系统将自动选择训练后下一个可用的GPU。这假设训练尚未占用所有可用GPU。
  • vllm_gpu_memory_utilization: float,默认值 0.9

    • 在专用于vLLM生成的设备上为模型权重、激活和KV缓存预留的GPU内存比率(0到1之间)。更高的值将增加KV缓存大小,从而提高模型吞吐量。但如果值太高,可能导致初始化过程中出现内存不足(OOM)错误。
  • vllm_dtype: str,默认值 "auto"

    • 用于vLLM生成的数据类型。如果设置为"auto",将根据模型配置自动确定数据类型。
  • vllm_max_model_len: intNone,默认值 None

    • 如果设置,用于vLLM的max_model_len。在减少vllm_gpu_memory_utilization导致KV缓存大小减小时很有用。
  • vllm_enable_prefix_caching: bool,默认值 True

    • 是否在vLLM中启用前缀缓存。如果设置为True(默认),请确保模型和硬件支持此功能。
  • vllm_guided_decoding_regex: strNone,默认值 None

    • vLLM引导解码的正则表达式。如果为None(默认),则禁用引导解码。

训练参数

  • learning_rate: float,默认值 1e-6

    • AdamW优化器的初始学习率。
  • beta: float,默认值 0.04

    • KL系数。如果为0.0,则不加载参考模型,减少内存使用并提高训练速度。
  • num_iterations: int,默认值 1

    • 每批次的迭代次数(在算法中表示为μ)。
  • epsilon: float,默认值 0.2

    • 用于裁剪的epsilon值。
  • reward_weights: list[float]None,默认值 None

    • 每个奖励函数的权重。必须与奖励函数数量匹配。如果为None,所有奖励的权重均为1.0
  • sync_ref_model: bool,默认值 False

    • 是否每隔ref_model_sync_steps步骤使用ref_model_mixup_alpha参数将参考模型与活动模型同步。此同步源自TR-DPO论文。
  • ref_model_mixup_alpha: float,默认值 0.6

    • TR-DPO论文中的α参数,控制当前策略与先前参考策略在更新期间的混合。参考策略按公式更新:π_ref = α * π_θ + (1 - α) * π_ref_prev。使用此参数,必须设置sync_ref_model=True
  • ref_model_sync_steps: int,默认值 512

    • TR-DPO论文中的τ参数,确定当前策略与参考策略同步的频率。使用此参数,必须设置sync_ref_model=True

日志参数

  • log_completions: bool,默认值 False
    • 是否每隔logging_steps步骤记录(prompt, completion)对的样本。如果安装了rich,它会打印样本。如果启用了wandb日志记录,它会将其记录到wandb
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!