前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微软&清华 | 提出模型训练新方法:SLM,选择优质Token进行训练,提升训练效率!

微软&清华 | 提出模型训练新方法:SLM,选择优质Token进行训练,提升训练效率!

作者头像
ShuYini
发布2024-04-13 20:05:38
1700
发布2024-04-13 20:05:38
举报

引言

传统的语言模型预训练方法,对每个Token都是采用下一个Token的预测损失,然而对于预训练模型来说,并非所有Token都是同等重要。为此,本文作者进行了深入的分析,将Token进行分类,并提出了一种新型的语言模型训练方法:选择性语言建模法(SLM),实验结果表明:SLM方法不仅提高了模型性能还提高了训练效率,在数学任务上,使用SLM方法预训练的模型在少量样本准确率上比传统方法提高了多达30%;在通用任务上,SLM方法也实现了平均6.8%的性能提升。

https://arxiv.org/pdf/2404.07965.pdf

背景介绍

随着神经网络模型参数和数据集规模的不断扩大,模型对下一个Token的预测越来越准确,这也使得人类正式进入了大模型时代,目前各行各业的人们也正在疯狂探索大模型的场景应用。然而接触过模型开发的人都知道,在模型训练过程中并不能将所有的可用数据集纳入到模型训练中,这就涉及到了数据过滤技术。

通过各种启发式方法和分类器来选择训练文档,可以显著提高数据集质量进而增强模型性能。但是尽管进行了彻底的文档级过滤,数据集中仍然会包含一些对训练结果产生影响的噪声词。如下图中红色背景框所示:

面对这些噪声词,直接移除这些词可能会改变文本的含义,并且严格的过滤方法可能会移除有用的数据信息,这也会导致模型出现偏见。此外,网络上的数据与模型所对应的下游任务场景可能并不匹配。比如,常见Token语料库中可能会包含高度模糊Token,如果对所有的Token采用同样的Loss(下一个Token的预测损失),那么在训练过程中将会在无意义的Token上浪费计算资源,并且还会影响模型效果

为此,本文作者探索了语言模型在Token级别上的学习方式,分析了训练过程中Token的loss的动态变化,并在不同的Checkpoint评估模型的Token困惑度,并「将Token分类为不同类型」。作者发现,在模型训练期间,loss的下降仅限于一小部分选定的Token,很多的“Easy Token”已被学习了,而有些“Hard Token”会影响loss函数的收敛。

基于以上分析,本文提出了一种选择性语言建模(SLM)目标训练的模型:RHO-1,如上图右侧所示,该方法将完整序列输入到模型中,并有选择地删除不需要的Token 损失,结果表明SLM 显着提高了预训练期间的 token 效率,并提高了下游任务的性能。

Token分类

在预训练过程中,作者们通过分析Token的训练动态,如下图所示,并将Token分为四类:

「持续高损失(H→H)」:这类Token在训练过程中loss始终保持在较高水平,可能是因为它们包含高度随机性或难以预测的内容。

「损失增加(L→H)」:这类Token在训练过程中loss不降反增,表明模型在学习这些Token时遇到了困难。

「损失减少(H→L)」:这类Token在训练过程中loss明显降低,表明模型正在学习并掌握这些Token。

「持续低损失(L→L)」:这类Token在训练过程中loss始终保持在较低水平,表明这些Token已经被模型学习到了。

通过对这些不同类型的Token进行分析,作者们发现,在训练过程中,只有少数Token(约26%)的损失有显著降低(H→L),而大多数Token(51%)已经学会了(L→L),还有一小部分Token(11%)持续难以学习(H→H),另外12%的Token在训练过程中损失增加(L→H)。

SLM(选择性建模)

基于上述分析,本文提出了选择性语言建模(SLM)方法。SLM的核心思想是在预训练过程中,不是对所有Token进行训练,而是选择性地训练那些对模型性能提升有帮助的Token。

如上图所示,SLM方法包括以下几个步骤:

  1. 「参考模型训练」:首先在高质量语料上训练一个参考模型,这个模型用来评估预训练语料中的每个Token。
  2. 「Token损失评分」:使用参考模型计算预训练语料中每个Token的损失(即参考损失)。
  3. 「选择性预训练」:根据Token的参考损失和训练模型的损失之间的差异(即超额损失),选择那些超额损失高的Token进行训练。

SLM方法的关键在于,它通过选择性地训练Token,排除了那些对模型性能提升帮助不大的Token,从而提高了训练效率和模型性能。

实验结果

通过在数学任务和通用任务上的实验,验证了SLM方法的性能和训练效率。

「数学任务」使用SLM方法继续预训练1B和7B语言模型(LMs),与使用因果语言建模(CLM)的基线模型相比,在OpenWebMath语料库上继续预训练后,RHO-1在GSM8k和MATH数据集上的平均少量样本准确率(few-shot accuracy)提高了超过16%。

「通用任务」 如下图所示,在通用语料库上继续预训练的RHO-1模型,在15个不同的任务上实现了平均6.8%的性能提升。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AINLPer 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 背景介绍
  • Token分类
  • SLM(选择性建模)
  • 实验结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档