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

该文章已加密,点击 阅读全文 并输入密码后方可查看。

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

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生成不兼容。
编辑
2025-04-30
深度学习
00

揭秘 vLLM 中的 tokenizer_config.json:以 Qwen3 模型为例深度解析

在使用 vLLM 部署大型语言模型(LLM)时,我们经常会接触到模型目录下的各种配置文件。其中,tokenizer_config.json 是一个至关重要的文件,它像一座桥梁,连接着人类可读的文本与模型内部能理解的数字表示。本文将以部署 Qwen3-30B-A3B 模型为例,深入探讨 tokenizer_config.json 在 vLLM 中的作用以及其内部各项配置的含义。

编辑
2025-04-30
DL论文
00

YaRN:大语言模型的高效上下文窗口扩展

摘要

旋转位置嵌入(RoPE)已被证明可以在基于 Transformer 的语言模型中有效编码位置信息。然而,这些模型无法泛化到超出其训练时所使用的序列长度。我们提出了 YaRN(Yet another RoPE extensioN method),一种计算高效的方法来扩展这类模型的上下文窗口,所需 token 数量比先前方法少 10 倍,训练步数少 2.5 倍。使用 YaRN,我们展示了 LLaMA 模型可以有效地利用并外推到远超其原始预训练所允许的上下文长度,同时在上下文窗口扩展方面也超越了先前的最先进水平。此外,我们证明了 YaRN 具有超越微调数据集有限上下文的外推能力。使用 YaRN 微调的模型已在 https://github.com/jquesnelle/yarn 上公开并可在线复现,上下文长度最高可达 128k。

1 引言

基于 Transformer 的大型语言模型[40](LLMs)已成为许多自然语言处理(NLP)任务近乎无处不在的选择,在这些任务中,上下文学习(ICL)等长距离能力至关重要。在执行 NLP 任务时,由其训练过程决定的序列最大长度(上下文窗口)已成为预训练 LLM 的主要限制之一。通过少量微调(或无需微调)动态扩展上下文窗口的能力变得越来越重要。为此,Transformer 的位置编码成为讨论的中心。

最初的 Transformer 架构使用绝对正弦位置编码,后来改进为可学习的绝对位置编码[15]。此后,相对位置编码方案[32]进一步提高了 Transformer 的性能。目前,最流行的相对位置编码是 T5 相对偏置[30]、RoPE[34]、XPos[35]和 ALiBi[27]。

位置编码的一个反复出现的局限性是无法泛化到训练期间看到的上下文窗口之外。虽然像 ALiBi 这样的一些方法能够进行有限的泛化,但没有一种方法能够泛化到明显长于其预训练长度的序列[22]。

为了克服这一限制,已经进行了一些工作。[9]和同期[21]提出通过位置插值(PI)轻微修改 RoPE 并使用少量数据进行微调来扩展上下文长度。作为替代方案,[6]提出了"NTK-aware"插值法,考虑了高频信息的损失。此后,针对"NTK-aware"插值法提出了两种改进,各有侧重:

  • "Dynamic NTK"插值法[14],适用于无需微调的预训练模型。
  • "NTK-by-parts"插值法[7],在少量长上下文数据上进行微调时表现最佳。

"NTK-aware"插值法和"Dynamic NTK"插值法已经在开源模型中得到应用,例如 Code Llama[31](使用"NTK-aware"插值法)和 Qwen 7B[2](使用"Dynamic NTK")。 在本文中,除了全面介绍先前未发表的关于"NTK-aware"、"Dynamic NTK"和"NTK-by-part"插值法的工作外,我们还提出了 YaRN(Yet another RoPE extensioN method),这是一种改进的方法,可以有效地扩展使用旋转位置嵌入(RoPE)训练的模型的上下文窗口,包括 LLaMA[38]、GPTNeoX[5]和 PaLM[10]系列模型。 YaRN 在仅使用约原始预训练数据 0.1% 的情况下进行微调后,在上下文窗口扩展方面达到了最先进的性能。同时,通过结合称为动态缩放(Dynamic Scaling)的推理时技术,Dynamic-YaRN 可以在没有任何微调的情况下实现超过 2 倍的上下文窗口扩展。