预训练技巧:在训练末尾对领域数据上采样

news2024/12/25 13:47:09

1. 简介

  • 介绍了一种在模型训练结尾对领域数据上采样能够提升在benchmark上的指标。
  • 通过实验表明上采样比例在10-20%是能够在通用语言能力与目标benchmark保持权衡的最好比例。
    请添加图片描述

2. 实验

  • 数据:1T
  • 模型:decoder-only结构,7B大小,具体模型参数如下:
    在这里插入图片描述

3. 结果

3.1 baseline data mix

* Large-Scale Common Crawl:包含大量及多样性的数据。
* Small-Scale Common Crawl:经过严格过滤的数据,质量更高,但数据量更少。
* Domain Specific data:领域数据或某种高质量来源数据(eg. Wikipedia)
* Code:涉及不同的编程语言。

在这里插入图片描述

  • 没经过过多的优化,通过启发式方法得到一个初始的数据比例,训练了两个7B模型,分别用0.5T和1T数据训练。实验效果如下所示:
    在这里插入图片描述
    在这里插入图片描述

3.2 Domain upsampling significantly boosts performance

  • 为了验证domain upsampling的有效性,将在1T tokens训练阶段的剩余20%作为训练结尾,用0.8T数据训练模型并保存checkpoint,然后改变剩余0.2T数据的配比并continue pretrain。具体的数据配比如下图所示:
    在这里插入图片描述
  • 在continue pretrain数据的配比中,删除了large-scale common crawl dataset,虽然large-scale common dataset数据多样性比较好,但为了增加领域数据的信息密度,只好删除。但同时会保证small-scale common crawl数据的高比例,以免训练数据分布有大的偏移。
  • 实验结果:
    在这里插入图片描述
    在这里插入图片描述
    在训练末尾增加code和domain数据不仅能够提升code和domain benchmark上的效果,同时也不会损失通用语言模型能力,事实上,不仅不会损失,还会提升通用能力。

3.3 Changing the duration of domain upsampling enables us to navigate the trade-off between targeting specific domains and general purpose language models

在这里插入图片描述
在这里插入图片描述

  • 在数学和代码相关的benchmark上,流入HumanEval,GSM8K及Gauntlet v0.3会随着domain upsampling比例增加效果一直提升;
  • 其他benchmark上最佳指标是比例在20%或更少。

3.4 Domain upsampling is a FLOP-efficient tool to characterize how individual datasets impact model capabilities

在这里插入图片描述

  • 通过domain upsampling的方式可以很好的将模型因为数据的改进归因于某个子集。如上图所示,在增加或删除数学相关数据集后可以对比二者之间的表现发现,这些特定的数据集负责base模型和上采样变体模型中的大部分数学知识和推理能力。
  • 通过domain upsampling方式,可以在少量的training FLOPS的基础上实验一些消融实验。

4. 小结

  • domain upsampling能够很好的提升模型在各个benchmark上的效果,同时最佳的比例是20%左右;
  • 通过domain upsampling可以用少量的training FLOPS验证一些实验,比如说数据配比,某个domain dataset对模型的影响等。

如果本文对读者有帮助的话,辛苦一键三连。
请添加图片描述

参考文献

  • [1] Does your data spark joy? Performance gains from domain upsampling at the end of trainin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2180501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux:进程间通信之共享内存

我们无论使用命名管道还是匿名管道,都是在文件层面上实现的通信,实际上还有基于系统层面的system v标准的进程间通信方式。 因为操作系统不相信用户,所以用户使用的时候只能通过调用的方式 进程间通信的本质:先让不同的进程看到…

C++中list类的使用及模拟实现

目录 1.C中list的底层结构 2.C中list容器各个接口函数的使用 3.迭代器的分类 3.1从功能上进行分类 3.2从性质上进行分类 4.list的结构 5.list的模拟实现 5.1默认成员函数(Member functions) 5.1.1构造函数(constructor) 5.1.1.1默认构造函数 5.1.1.2 initializer …

OSError: [WinError 126] 找不到指定的模块。 Error loading \torch\lib\fbgemm.dll“

遇到问题: 在使用torch 、 或者任何设计到torch的库中,只要导入torch就会报错 解决方案 https://blog.csdn.net/Changxing_J/article/details/140489278 https://blog.csdn.net/weixin_43591849/article/details/140715890(最终这个解决&…

初识Linux · 进程终止

目录 前言: 进程终止在干什么 进程终止的3种情况 进程如何终止 前言: 由上文的地址空间的学习,我们已经知道了进程不是单纯的等于PCB 自己的代码和数据,进程实际上是等于PCB mm_struct(地址空间) 页表 自己的代码和数据。…

LLM 构建Data Multi-Agents 赋能数据分析平台的实践之⑥:NL2SQL技术探讨

一、概述 NL2SQL(Natural Language to SQL)是一种将自然语言转换为结构化查询语言的技术。它可以帮助用户通过使用自然语言来与数据库进行交互,而无需了解复杂的SQL语法。 NL2SQL技术的背景: 随着人工智能的发展,越…

prometheus + alertmanager + PrometheusAlert实现告警

prometheus 收集监控数据 alertmanager 制定告警路由 PrometheusAlert 连通告警webhook 一、prometheus配置 https://prometheus.io/download/ 1.1、prometheus安装 包的下载直接wget就行,放在data目录下,解压后在prometheus目录下创建config和rule目录 配置了热重启&#…

聊一聊 C#中有趣的 SourceGenerator生成器

一:背景 1. 讲故事 前些天在看 AOT的时候关注了下 源生成器,挺有意思的一个东西,今天写一篇文章简单的分享下。 二:源生成器探究之旅 1. 源生成器是什么 简单来说,源生成器是Roslyn编译器给程序员开的一道口子&am…

vxe-grid给单元格加上触发事件

效果&#xff1a;输入框的双击事件(其他事件可以由此替换) 代码 // gridTableOptions是每列的配置项 <vxe-grid v-bind"gridTableOptions" :data"goodsList" ref"xTable">// edit_spbh 是对应的样式名&#xff0c;是写在gridTableOption…

如何通过日志快速定位TTS的缓存放音文件(mod_cti基于FreeSWITCH)

文章目录 前言联系我们分析过程1. 测试话术&#xff0c;记录日志2. 关键词搜索 前言 顶顶通呼叫中心中间件在运行话术时&#xff0c;如果有通过TTS合成的语音&#xff0c;会被freeswitch缓存在目录中&#xff1a;/ddt/fs/storage/http_file_cache。 我们可以分析freeswitch日志…

学习Webpack中图片-JS-Vue-plugin

目录 图片文件资源模块类型 JS文件babel命令行使用babel-loaderbabel-preset Vue文件vue-loadervue/compiler-sfc pluginCleanWebpackPluginHtmlWebpackPluginDefinePlugin 图片文件 需要先在项目中使用图片&#xff0c;比较常见的使用图片的方式是两种&#xff1a; img元素&…

LeetCode 918. 环形子数组的最大和

原题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 给定一个长度为 n 的环形整数数组 nums &#xff0c;返回 nums 的非空 子数组 的最大可能和 。 环形数组 意味着数组的末端将会与开头相连呈环状。形式上&#xff0c; nums[i] 的下一个元素是 nums[(i 1) % n…

基于STM32的智能室内空气质量监控系统

目录 引言项目背景环境准备 硬件准备软件安装与配置系统设计 系统架构关键技术代码示例 传感器数据采集与处理空气质量分析与报警显示与数据记录功能应用场景结论 1. 引言 智能室内空气质量监控系统用于实时监测环境中的空气质量&#xff0c;通过检测空气中的CO2、PM2.5、温…

软件测试学习笔记丨Pytest 学习指南

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/32336 基本介绍 pytest框架是一个成熟&#xff0c;全面的测试框架&#xff0c;具有非常丰富的第三方插件&#xff0c;并且可以自定义扩展 比如&#xff1a;pytest-selenium , pytest-html ,…

Git常用方法——详解

一、下载安装git git官网&#xff1a; Git - Downloads (git-scm.com) 下载安装Git&#xff08;超详细超简单&#xff09;_git下载-CSDN博客 二、克隆下载至本地 1、复制HTTPS链接 在gitee或者gitLab或者gitHub上复制HTTPS链接 2、打开Open Git Bash here 在本地想要新建文…

小程序原生-列表渲染

1. 列表渲染的基础用法 <!--渲染数组列表--> <view wx:for"{{numList}}" wx:key"*this" > 序号&#xff1a;{{index}} - 元素&#xff1a;{{item}}</view> <!--渲染对象属性--> <view wx:for"{{userInfo}}" wx:key&q…

怎么给视频加片头片尾和字幕

在这个视觉内容爆炸的时代&#xff0c;一段精心制作的视频不仅能吸引眼球&#xff0c;更能传达深刻的情感与信息。而一个引人入胜的片头、一个温馨感人的片尾&#xff0c;以及恰到好处的字幕&#xff0c;无疑是提升视频质感的关键。那么新人要怎么给视频加片头片尾和字幕效果呢…

2024年9月收评

金1是从2005年12月开始&#xff0c;到现在2024年5月&#xff0c;还差7个月整整20年。一共11轮。 这20年里&#xff0c;真正形成单边趋势&#xff0c;能较好获利或者说至少不亏损的一共有以下几次&#xff0c; 第1轮&#xff0c;第2轮&#xff0c;第7轮&#xff0c;第8轮&…

《程序猿之Redis缓存实战 · 集合类型》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

基于微信小程序的商品展示+ssm论文ppt源码调试讲解

2 系统开发环境 2.1微信开发者工具 微信开发者工具现在已经被小程序开发团队开发运行&#xff0c;目前微信开发者工具任然在不断的完善中&#xff0c;在开发小程序时经常要不断的更新。可以使用微信扫码登陆开发者工具&#xff0c;开发者工具将使用这个微信帐号的信息进行小程…

为VRoidStudio制作的vrm格式模型制作blendshape

零、效果展示 bs视频演示 一、准备相关插件 1、VRoidStudio&#xff08;免费&#xff09; 下载网址&#xff1a;https://vroid.com/en/studio 2、UniVRM&#xff08;免费&#xff09; 下载网址&#xff1a;https://github.com/vrm-c/UniVRM/releases 注意&#xff1a;unity…