当前位置: 代码网 > 科技>人工智能>智能机器人 > 英伟达开源 3400 亿巨兽:98% 合成数据训出最强开源通用模型,性能对标 GPT-4o

英伟达开源 3400 亿巨兽:98% 合成数据训出最强开源通用模型,性能对标 GPT-4o

2024年06月17日 智能机器人 我要评论
它全新发布的 Nemotron-4 340B,是一系列具有开创意义的开源模型,有可能彻底改变训练 LLM 的合成数据生成方式!

【新智元导读】刚刚,英伟达全新发布的开源模型 nemotron-4 340b,有可能彻底改变训练 llm 的方式!从此,或许各行各业都不再需要昂贵的真实世界数据集了。而且,nemotron-4 340b 直接超越了 mixtral 8x22b、claude sonnet、llama3 70b、qwen 2,甚至可以和 gpt-4 掰手腕!

就在刚刚,英伟达再一次证明了自己的 ai 创新领域的领导地位。

它全新发布的 nemotron-4 340b,是一系列具有开创意义的开源模型,有可能彻底改变训练 llm 的合成数据生成方式!

论文地址:https://d1qx31qr3h6wln.cloudfront.net/publications/nemotron_4_340b_8t_0.pdf

这一突破性进展,标志着 ai 行业的一个重要里程碑 ——

从此,各行各业都无需依赖大量昂贵的真实世界数据集了,用合成数据,就可以创建性能强大的特定领域大语言模型!

现在,nemotron-4 340b 已经取得了辉煌战绩,直接超越了 mixtral 8x22b、claude sonnet、llama3 70b、qwen 2,甚至可以和 gpt-4 一较高下!

▲ 其实,以前这个模型就曾登上大模型竞技场 lmsys chatbot arena,当时它的别名是「june-chatbot」

具体来说,nemotron-4 340b 包括基础模型 base、指令模型 instruct 和奖励模型 reward,并构建了一个高质量合成数据生成的完整流程。

模型支持 4k 上下文窗口、50 多种自然语言和 40 多种编程语言,训练数据截止到 2023 年 6 月。

训练数据方面,英伟达采用了高达 9 万亿个 token。其中,8 万亿用于预训练,1 万亿用于继续训练以提高质量。

值得一提的是,指令模型的训练是在 98% 的合成数据上完成的。

结果显示,nemotron-4-340b-base 在常识推理任务,如 arc-challenge、mmlu 和 bigbench hard 基准测试中,可以和 llama-3 70b、mixtral 8x22b 和 qwen-2 72b 模型媲美。

而 nemotron-4-340b-instruct,在指令跟随和聊天能力方面也超越了相应的指令模型。

nemotron-4-340b-reward 在发表时,在 rewardbench 上实现了最高准确性,甚至超过了 gpt-4o-0513 和 gemini 1.5 pro-0514 这样的专有模型。

在 bf16 精度下,模型的推理需要 8 块 h200,或 16 块 h100 / a100 80gb。如果是在 fp8 精度下,则只需 8 块 h100。

除此之外,nemotron-4 340b 还有一个非常显著的特点 —— 对商用十分友好的许可。

高级深度学习研究工程师 somshubra majumdar 对此表示大赞:「是的,你可以用它生成你想要的所有数据」

无与伦比的合成数据生成

llm 无法获得大规模、多样化标注数据集,怎么破?

nemotron-4 340b 指令模型,可以帮助开发者生成合成训练数据。

这些多样化的合成数据,模仿了真实世界的数据特征,因而数据质量明显提升,从而提升了各领域定制 llm 的性能和稳定性。

而且,为了进一步提高 ai 生成数据的质量,开发者还可以用 nemotron-4 340b 奖励模型,来筛选高质量的响应。

它会根据有用性、正确性、一致性、复杂性和冗长性这 5 个属性,对响应评分。

另外,研究者可以使用自己的专用数据,再结合 helpsteer2 数据集,定制 nemotron-4 340b 基础模型,以创建自己的指令或奖励模型。

用 nemo 微调,用 tensorrt-llm 优化推理

利用开源的 nvidia nemo 和 nvidia tensorrt-llm,开发者可以优化指令模型和奖励模型的效率,从而生成合成数据,并对响应进行评分。

所有 nemotron-4 340b 模型都利用张量并行性经过 tensorrt-llm 优化,这种模型并行性可以将单个权重矩阵分割到多个 gpu 和服务器上,从而实现大规模高效推理。

其中,基础模型可以使用 nemo 框架进行定制,以适应特定的用例或领域。广泛的预训练数据使得我们可以对它进行微调,并且为特定的下游任务提供更准确的输出。

通过 nemo 框架,英伟达提供了多种定制方法,包括监督微调和参数高效微调方法,如低秩适应(lora)。

为了提高模型质量,开发者可以使用 nemo aligner 和由 nemotron-4 340b 奖励模型标注的数据集来对齐模型。

在各行业的潜在影响:从医疗到金融及其他领域

显然,nemotron-4 340b 对各行业的潜在影响是巨大的。

在医疗领域,如果能生成高质量合成数据,可能会带来药物发现、个性化医疗和医学影像方面的突破。

在金融领域,基于合成数据训练的定制大语言模型,则可能会彻底改变欺诈检测、风险评估和客户服务。

在制造业和零售业方面,特定领域的 llm 可以实现预测性维护、供应链优化和个性化客户体验。

不过,nemotron-4 340b 的发布,也提出了一些隐忧,比如数据隐私和安全怎样保证?

随着以后合成数据的普及,企业是否有防护措施来保护敏感信息,并防止滥用?

如果用合成数据训练 ai 模型,是否会引发伦理问题,比如数据中的偏见和不准确可能引发意料外的后果?

但至少在目前,越来越多迹象表明,只有合成数据才是未来。

预训练

下面,我们就来看看,英伟达都提出了哪些创新的方法:

数据

预训练数据是基于三种不同类型的混合,共有 9t token。其中,前 8t 用于正式预训练阶段,最后 1t 用于继续预训练阶段。

  • 英语自然语言(70%):由不同来源和领域的精选文档组成,包括网页文档、新闻文章、科学论文、书籍等。

  • 多语种自然语言(15%):包含 53 种自然语言,由单语语料库和平行语料库中的文档构成。

  • 代码(15%):包含 43 种编程语言。

架构

与 nemotron-4-15b-base 类似,nemotron-4-340b-base 基于的也是仅解码器 transformer 架构。

具体来说,模型使用因果注意力掩码来确保序列的一致性,并采用旋转位置嵌入(rope)、sentencepiece 分词器、分组查询注意力(gqa),以及在 mlp 层中使用平方 relu 激活。

此外,模型没有偏置项,丢弃率为零,输入输出嵌入不绑定。

模型超参数如表 1 所示,有 94 亿个嵌入参数和 3316 亿个非嵌入参数。

训练

nemotron-4-340b-base 使用 768 个 dgx h100 节点进行训练,每个节点包含 8 个基于 nvidia hopper 架构的 h100 80gb sxm5 gpu。

每个 h100 gpu 在进行 16 位浮点(bf16)运算时,峰值吞吐量为 989 teraflop / s(不含稀疏运算)。

英伟达采用了 8 路张量并行、12 路交错流水线并行和数据并行相结合的方法,并使用了分布式优化器,将优化器状态分片到数据并行副本上,以减少训练的内存占用。

表 2 总结了批大小增加的 3 个阶段,包括每次迭代时间,以及 gpu 利用率(mfu)等,其中 100% 是理论峰值。

评估

在这一部分,我们报告了 nemotron-4-340b-base 的评估结果。我们将该模型

表 3 是 nemotron-4-340b-base 与 llama-3 70b、mistral 8x22 和 qwen-2 72b 三款开源模型的比较结果。

可以看到,nemotron-4-340b-base 在常识推理任务以及像 bbh 这样的流行基准测试中拿下了 sota,并在 mmlu 和 humaneval 等代码基准测试中位列第二。

对齐

奖励模型构建

奖励模型在模型对齐中起着至关重要的作用,是训练强指令跟随模型时用于偏好排序和质量过滤的重要评判者。

为了开发一个强大的奖励模型,英伟达收集了一个包含 10k 人类偏好数据的数据集 ——helpsteer2。

与成对排名模型不同,多属性回归奖励模型在区分真实有用性和无关伪影(如仅因长度而偏好较长但无用的回复)方面更有效。此外,回归模型在预测细粒度奖励、捕捉相似回复之间的有用性细微差别方面表现更好。

回归奖励模型建立在 nemotron-4-340b-base 模型之上,通过用一个新的奖励「头」替换模型的最终 softmax 层。

这个「头」是一个线性投影,将最后一层的隐藏状态映射到一个包含 helpsteer 属性(有用性、正确性、一致性、复杂性、冗长性)的五维向量。

在推理过程中,这些属性值可以通过加权求和聚合为一个总体奖励。

数据对齐

值得注意的是,在整个对齐过程中,英伟达仅使用了大约 20k 的人工标注数据,而数据生成管线则生成了用于监督微调和偏好微调的 98% 以上的数据。

提示生成准备

生成合成提示,是合成数据生成(sdg)的第一步。

这些提示在不同维度上的多样性至关重要,包括任务多样性(如写作、开放问答、封闭问答)、主题多样性(如 stem、人文、日常生活)和指令多样性(如 json 输出、段落数量、是或否回答)。

对此,英伟达使用 mixtral-8x7b-instruct-v0.1 作为生成器,分别对这些任务的合成提示进行了生成。

  • 单轮合成提示

为了收集多样化的主题,英伟达先引导生成器输出一组多样化的宏观主题,然后再为每个合成的宏观主题生成相关的子主题。

加上人工收集的,最终得到的主题达到了 3k 个。

用于合成提示生成的提示如下:

  • 合成指令跟随提示

为了提升对于对齐模型至关重要的指令跟随能力,就需要生成合成的指令跟随提示(例如,「写一篇关于机器学习的文章,你的回答应包含三个段落」)。

具体来说,先随机选择一些合成提示。对于每个合成提示,从「可验证」指令模板中随机生成一个合成指令(例如,「你的回答应包含三个段落」)。然后,使用手动定义的模板将提示和指令连接在一起。

除了单轮指令跟随提示外,英伟达还构建了多轮指令跟随提示,这些指令适用于所有未来的对话(例如「根据以下指令回答问题和所有后续问题:[指令开始] 用三个段落回答。[指令结束]」)。

此外,英伟达还构建了第二轮指令跟随提示,可以根据给定的指令修改之前的回答。

  • 合成两轮提示

为了在偏好微调中提高模型的多轮对话能力,英伟达构建了两轮提示来建立偏好数据集。

具体来说,提示包含一个用户问题,一个助手回答,和另一个用户问题,形式为「用户:xxx;助手:xxx;用户:xxx;」。

英伟达从 sharegpt 中获取第一个用户提示,并使用中间指令模型生成助手回答和下一轮问题。

  • 真实世界的 lmsys 提示

为了更好地模拟真实世界的用户请求,英伟达将 lmsys-chat-1m 中的提示按平衡比例进行组合,并将其分为两个不同的集合,一个用于监督学习,另一个用于偏好学习。

在监督学习部分,英伟达移除了 lmsys 中被标记为潜在不安全的提示,以避免引发不良对话。但在偏好学习部分则进行了保留,以便模型能够学习如何区分安全和不安全的响应。

从图 3 中可以看到,合成提示的平均有用性高于 lmsys 提示。由于简单提示更容易「有用」,这意味着 lmsys 提示比合成单轮提示平均来说更难且更复杂。

合成对话生成

通过监督微调,模型就可以学习到,如何以对话形式与用户互动。

英伟达通过提示指令模型生成基于输入提示的响应,来启动合成对话。

为了培养多轮对话能力,他们把每个对话设计成包含三轮,好让对话流程更加动态、更有互动性。

通过迭代角色扮演,模型会交替模拟助手和用户的角色。

英伟达发现,为了在用户回合中引导所需的行为,就需要提供明确的提示来定义不同的用户个性。

并且,附上对话历史是至关重要的。

他们对用户回合进行了后处理,排除了礼貌陈述(如「谢谢你...」,「当然,我很高兴...」)来模拟真实世界的用户问题。

生成演示数据,是采用的贪婪采样方法。

此外,英伟达会使用 nemotron4-340b-reward 评估对话质量,为每个样本分配一个分数,并过滤掉那些低于预定阈值的样本。

这就提供了额外的质量控制层,保证保留下来的都是高质量数据。

合成偏好数据生成

英伟达使用了 10k 人工标注的 helpsteer2 偏好数据,来训练 nemotron-4-340b-reward。

不过,他们还需要具有更广泛提示领域、更高质量响应的偏好数据,这些响应来自顶级的中间模型,并在可能的情况下包含额外的真实信号。

因此,英伟达生成了三元组形式的合成偏好数据(提示,选择的响应,被拒绝的响应)。

  • 生成响应

偏好数据包含合成的单轮提示、指令跟随提示、双轮提示,以及来自真实世界的提示,包括 sharegpt 提示、lmsys 提示、gsm8k 和 math 训练数据集中的提示。

对于每个提示,英伟达都使用了随机的中间模型生成响应。

通过多个模型生成响应,就能确保偏好数据集具有多样化的响应,以供模型学习。

此外,他们还生成了更具挑战性的合成偏好示例,这些示例是根据 mt-bench 从表现最好的模型中多次随机生成的响应,这样就可以进一步提升模型的性能。

  • 以基准真相作为判断标准

对于每个提示给出的多个响应,英伟达都需要对其偏好排序进行判断,并选择出被选中的响应和被拒绝的响应。

一些任务可以使用基准真相(例如 gsm8k 和 math 训练数据集中的答案)或验证器(例如指令跟随响应可以用 python 程序验证)来评估。

  • 以 llm / 奖励模型为裁判

大多数提示,是没有客观答案的。因此,英伟达尝试了以大语言模型为裁判和以奖励模型为裁判。

在第一种情况中,英伟达向裁判的大语言模型提供提示和两个响应,并要求其比较这两个响应。

为了避免位置偏差,他们会交换响应顺序后,再次询问大语言模型。当大语言模型两次判断一致时,就会选出有效的三元组(提示、被选中的、被拒绝的)。

另外,为了进一步探索了以奖励模型为裁判的情况,英伟达要求 nemotron-4-340b-reward 预测每个(提示、响应)对的奖励,并根据奖励决定偏好排序。

奖励基准得分显示以,奖励模型为裁判的准确性,要高于以大语言模型为裁判。

特别是在 chat-hard 类别中,选择的响应和被拒绝的响应难以区分,以奖励模型为裁判的表现,要远优于以大语言模型为裁判,平均准确率为 0.87 对 0.54。

在这个过程中,英伟达注意到:chat-hard 类别的评分对于合成数据生成中的偏好排序特别重要。

因此,在后来的数据集迭代中,他们转而使用以奖励模型为裁判。

从弱到强的迭代对齐

如前所述,高质量的数据对于模型的对齐至关重要。

在数据合成过程中,需要一个对齐的大语言模型来准确遵循指令。

这就引发了一系列重要的问题:哪个模型最适合作为生成器?生成器的强度与数据质量之间有何关系?如何改进数据生成器?

受到弱到强泛化的启发,英伟达开发了一种新颖的迭代方法,逐步优化数据。这种方法结合了对齐训练与数据合成的优势,使它们能够相互增强,并且持续改进。

图 4 展示了从弱到强的迭代对齐的工作流程。

首先,使用一个初始对齐模型来生成对话和偏好数据。然后,通过监督微调和偏好调优,利用它们对更好的基础模型进行对齐。

有趣的是,英伟达发现,教师模型并不会限制学生模型的上限 ——

随着基础模型和对齐数据的改进,新对齐的模型能够显著超过初始对齐模型。注意,对齐过程与基础模型的预训练是并行进行的。

在第一次迭代中,英伟达选择了 mixtral-8x7b-instruct-v0.1 作为初始对齐模型,因为它是一个具有许可的强大模型。

生成的数据用于训练 nemotron-4-340b-base 的一个中间检查点,称为 340b-interm-1-base。

值得注意的是,340b-interm-1-base 的表现优于 mixtral 8x7b 基础模型,这反过来使得最终的 340b-interm-1-instruct 模型,能够超过 mixtral-8x7b-instruct-v0.1 模型。

这就证明,可以通过弱监督引出模型强大的能力。

在第二次迭代中,英伟达使用生成的 340b-interm-1-instruct 模型,作为新的数据生成器。

由于它比 mixtral-8x7b-instruct-v0.1 更强,第二次迭代生成的合成数据质量就更高。

生成的数据用于训练 340b-interm-2-base 模型,使其升级为 340b-interm-2-chat 模型。

这个迭代过程形成了一个自我强化的飞轮效应,改进主要来自两个方面 ——

1)当使用相同的数据集时,基础模型的强度直接影响指令模型的强度,基础模型越强,指令模型也越强;

2)当使用相同的基础模型时,数据集的质量决定了指令模型的效果,数据质量越高,指令模型也越强。

在整个对齐过程中,英伟达进行了多轮数据生成和改进,不断提升模型的质量。

附加数据源

此外,英伟达还结合了多个补充数据集,以赋予模型特定的能力。

  • 主题跟随

主题连贯性和细粒度指令跟随是,指令模型的重要能力。

因此,英伟达结合了 canttalkaboutthis 训练集,其中包括了覆盖广泛主题的合成对话,并故意插入干扰回合以分散聊天机器人对主要主题的注意力。

这就能帮助模型,在任务导向的交互中更好地专注于预定的主题。

  • 无法完成的任务

某些任务可能由于需要特定的能力(如互联网访问或实时知识)而无法由模型独立完成。

为减少这种情况下的幻觉,英伟达采用少样本方法,使用人类编写的示例来提示大语言模型生成各种问题。

然后,他们会明确要求大语言模型以拒绝的方式回应,收集这些回应,并将其与相应的问题配对。

这些配对数据就可以用于训练模型,让它们能够更好地处理无法完成的任务。

  • stem 数据集

open-platypus 已被证明可以提高 stem 和逻辑知识。因此,英伟达将具有许可的子集(如 prm800k、scibench、arb 、openbookqa)纳入训练数据中。

  • 基于文档的推理和问答

基于文档的问答是大语言模型的重要用例。

英伟达利用 finqa 数据集提高了数值的推理能力,使用人工标注数据提高了上下文问答的准确性,并使用 wikitablequestions 数据集,增强了模型对半结构化数据的理解。

  • 函数调用

此外,英伟达还使用了一部分来自 glaive ai 的样本,以增强模型在函数调用方面的能力。

对齐算法

分阶段的监督微调

监督微调(supervised fine-tuning,sft)是模型对齐的第一步。

为了改善传统 sft 方法存在的缺陷,英伟达设计了一种两阶段的 sft 策略,使模型能够依次、有计划地学习不同的行为。

结果显示,这种方法在所有下游任务中都产生了更好的效果。

  • 代码 sft

为了在不影响其他任务的情况下提高编码和推理能力,英伟达选择先在编码数据上进行 sft。

为了获得大量的数据,英伟达开发了一种名为 genetic instruct 的全新方法 —— 通过对进化过程的模拟,利用自我指令和向导编码器突变,从少量高质量种子生成大量合成样本。

过程中,英伟达还引入了一种适应度函数,利用 llm 评估生成指令及其解决方案的正确性和质量。

然后,通过这些评估和检查的样本会被添加到种群池中,进化过程会持续进行,直到达到目标种群规模。

最终,经过广泛的去重和过滤后,英伟达保留了大约 80 万条样本用于代码 sft 训练。

  • 通用 sft

第二阶段,就是通用 sft 了。

这里,英伟达采用的是一个包含 20 万样本的混合数据集。

为了减轻遗忘的风险,数据混合中还包括了前一个代码 sft 阶段的 2% 的代码生成样本。

偏好微调

在完成监督微调后,英伟达继续通过偏好微调来改进模型。

在这个阶段,模型将学习偏好示例,其形式是:提示,选择的响应,被拒绝的响应。

  • 直接偏好优化(dpo)

dpo 算法通过优化策略网络,来最大化选择和被拒绝响应之间的隐含奖励差距。

在策略学习区分选择和被拒绝的响应时,可以观察到,随着差距的增加,选择和被拒绝响应的概率都在一致地下降,即使选择的响应是高质量的。

根据经验,当训练时间足够长时,策略网络容易过拟合,一个指标(例如,mt-bench)的改进通常伴随着其他指标(例如,零样本 mmlu)的退化。

为了解决这些问题,英伟达在选择的响应上添加了加权的 sft 损失,以补充原始的 dpo 损失。

额外的 sft 损失有助于防止策略网络大幅偏离偏好数据,特别是因为偏好数据不是从参考策略生成的。

为了避免模型学习低质量的选择响应,当没有可用的真实值时,英伟达使用了 nemotron-4-340b-reward 来挑选高质量的选择响应示例。最终,这产生了一个包含 16 万示例的偏好数据集。

  • 奖励感知偏好优化(rpo)

为了解决 dpo 存在的过拟合问题,英伟达提出了一种新算法 —— 奖励感知偏好优化(rpo)。它尝试使用由策略网络定义的隐含奖励近似奖励差距。

基于此,便得到了一个新的损失函数:

结果显示,随着 rpo 迭代次数的增加,模型还可以持续地在所有任务上获得提升。

经过三次 rpo 训练迭代后的检查点,就是最终的 nemotron-4-340b-instruct。

指令模型评估

自动基准测试

英伟达对 nemotron-4-340b-instruct 进行了全面的自动基准测试评估:

  • 单轮对话:alpacaeval 2.0 lc 和 arena hard

  • 多轮对话:mt-bench(gpt-4-turbo)。需要注意的是,这是原始 mt-bench 的修正版本,得分平均要低 0.8 分。

  • 综合基准测试:mmlu(零样本)

  • 数学:gsm8k(零样本)

  • 代码:humaneval(零样本)和 mbpp(零样本)上的 pass@1 得分

  • 指令跟随:ifeval

  • 主题跟随:tfeval

正如表 5 所示,nemotron-4-340b-instruct 在当前可用的开源模型中表现出色,具备很强的竞争力。

对齐训练包括:代码 sft、通用 sft、dpo 和三轮 rpo。

表 6 展示了模型最终的成绩,并量化了每个对齐阶段的中间模型的性能:

  • codesft 阶段显著提高了 humaneval 得分,从基础模型的 57.3 提升到 70.7;

  • 接下来的通用 sft 阶段大幅提升了其他类别的准确性,如 mt-bench 和 mmlu,尽管 humaneval 得分略有下降;

  • dpo 阶段进一步提升了大多数指标,但 mt-bench 的得分略有下降;

  • 最后的 rpo 阶段均匀地提升了所有指标。特别是,mt-bench 得分从 7.90 增加到 8.22,ifeval prompt-strict-acc 的得分从 61.7 增加到 79.9。

人类评估

除了自动评估外,英伟达模型进行了人类评估。其中,标注员被提供了 136 个提示,分为 10 个不同的任务类别。

基于「有用性」和「真实性」这两个维度,英伟达详细定义了 5 个质量等级的具体内容,从而在减少了主观性的同时,提升了可靠性。

在标注设计中,每个提示都与固定模型集合中的三个不同响应配对。每个提示的响应顺序是随机的,所有提示和响应都由同一组标注员进行评估。

标注完成后,将评分转换为相对于 gpt-4-1106-preview 的相对胜 / 平 / 负率。

从图 5 中可以看到,除了提取和重写任务外,nemotron-4-340b-instruct 的胜率与 gpt-4-1106-preview 相当或更好,特别是在多轮对话中表现出色。

整体来说,nemotron-4-340b-instruct 的胜:平:负比率为 28.19%:46.57%:25.24%。

从表 7 中则可以看到,与 gpt-4-1106-preview 相比,标注员认为 nemotron-4-340b-instruct 的响应长度更为合适(79.41% 对 74.02%)。

值得注意的是,这一优势主要来自较低的长 / 冗长响应率(20.10% 对 25.74%)。

作者

参考资料:

  • https://blogs.nvidia.com/blog/nemotron-4-synthetic-data-generation-llm-training/

  • https://venturebeat.com/ai/nvidias-nemotron-4-340b-model-redefines-synthetic-data-generation-rivals-gpt-4/

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com