<论文>MiniCPM:利用可扩展训练策略揭示小型语言模型的潜力

一、摘要

        本文跟大家一起阅读的是清华大学的论文《MiniCPM: Unveiling the Potential of Small Language Models with Scalable Training Strategies》

摘要:

        对具有高达万亿参数的大型语言模型(LLMs)的兴趣日益增长,但同时也引发了对资源效率和实际成本的担忧,特别是考虑到实验的巨大成本。这种情况凸显了探索小型语言模型(SLMs)作为一种资源高效的替代方案的重要性。在此背景下,我们推出了 MiniCPM,特别是 12 亿和 24 亿非嵌入参数变体,它们不仅在各自类别中表现出色,而且展示出与 70 亿至 130 亿参数的大型语言模型相当的能力。在专注于小型语言模型的同时,我们的方法在模型和数据维度上都具有可扩展性,为未来的大型语言模型研究提供了方向。关于模型扩展,我们进行了广泛的模型风洞实验,以实现稳定和最优的扩展。对于数据扩展,我们引入了一种预热-稳定-衰减(WSD)学习率调度器(LRS),有利于持续训练和领域适应。我们对 WSD 学习率调度器中出现的有趣训练动态进行了深入分析。借助 WSD 学习率调度器,我们现在能够高效地研究数据-模型扩展规律,而无需在模型和数据两个轴上进行大量的重新训练实验,由此我们得出了比 Chinchilla 最优方案高得多的计算最优数据-模型比。此外,我们推出了 MiniCPM 系列,包括 MiniCPM-DPO、MiniCPM-MoE 和 MiniCPM-128K,它们的出色性能进一步巩固了 MiniCPM 在各种小型语言模型应用中的基础。

二、核心创新点

        作者在文中指出,随着大语言模型的规模愈发庞大,其部署和日常应用上的阻力也越来越大,有必要探索小型语言模型的有效性。如果能够训练出一个媲美主流大模型的小型语言模型,那么部署和落地的难度将大大减小。

1、模型风洞实验

        作者认为,模型训练的许多方面在不同规模下应当是通用的。因此应该通过小型语言模型(SLM)进行广泛的实验来探索其极限,并将经验转移到LLM中。这些实验采用了开发飞机时风洞实验的精神,论文中主要包含三个部分:超参数、最佳批量大小缩放、最佳学习率稳定性。

  • 超参数:在常规的训练中为每个模型调整超参数对于LLM来说是不太可行的,因为这需要大量的计算资源,即便是SLM。Mini CPM系列模型同时使用了Tensor Program所提出的宽度缩放和深度缩放技术,且并未使用注意力softmax缩放技术。
  • 批量大小:batch_size决定了模型的收敛速度和计算资源消耗之间的平衡,作者根据预期的损失确定batch_size。
  • 最佳学习率:由于使用了Tensor Program中的缩放策略,作者预计在模型缩放过程中学习率不会发生明显的变化,实验表明尽管模型大小增加了十倍,最佳学习率基本都维持在0.01左右。

2、两阶段预训练策略

        常规的LLM训练一般包括预训练阶段和有监督微调(SFT)阶段。结合实验结果,作者提出了以下的训练策略:在预训练阶段,只使用大规模粗质量的预训练数据,这些数据丰富,在提供更多计算资源的情况下可以支持持续训练。在annealing阶段,使用多样化和高质量的知识和以能力为导向的SFT数据,并混合到预训练数据中。实验结果表明,在衰减阶段开始时引入高质量数据的好处远高于在SFT阶段简单地增加数据,因此作者建议从衰减阶段开始对模型能力进行专业化和增强。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

好玩的谷歌浏览器插件-自定义谷歌浏览器光标皮肤插件-Chrome 的自定义光标

周末没有啥事 看到了一个非常有意思的插件 就是 在使用谷歌浏览器的时候,可以把鼠标的默认样式换一个皮肤。就像下面的这种样子。 实际谷歌浏览器插件开发对于有前端编程基础的小伙伴 还是比较容易的,实际也是写 html css js 。 所以这个插件使用的技术…

3.使用ElementUI搭建侧边栏及顶部栏

1. 安装ElementUI ElementUI是基于 Vue 2.0 的桌面端组件库。使用之前,需要在项目文件夹中安装ElementUI,在终端中输入以下命令,进行安装。 npm i element-ui -S并在main.js中引入ElementUI 2. 使用elmentUI组件进行页面布局 2.1 清空原…

调研:如何实现智能分析助手(Agent)(AutoCoder、FastGPT、AutoGen、DataCopilot)

文章目录 调研:如何实现智能分析助手(Agent)(AutoCoder、FastGPT、AutoGen、DataCopilot)一、交互流程二、数据流程三、架构分类四、开源产品4.1 AutoCoder(知识库变体)4.2 FastGPT(…

matlab常见的配图代码实现1

1. 折线图 x linspace(0, 10, 100); y1 sin(x);y2 cos(x); figure; plot(x, y1, -o, LineWidth, 2, MarkerSize, 6, MarkerFaceColor, b); hold on;plot(x, y2, -s, LineWidth, 2, MarkerSize, 6, MarkerFaceColor, r); title(折线图); xlabel(X轴); ylabel(Y轴); legend(s…

【汇编语言】单片机程序执行过程

一、任务需求 指示灯LED4闪烁,亮0.5秒,灭0.5秒,无限循环 二、针对硬件的编程 1、确定原理图2、确定硬件的物理关系 三、设计步骤 1.用自己的语言描述工作流程 1.1指示灯LED4亮1.2延时0.5秒1.3指示灯LED4灭1.4延时0.5秒1.5跳转到1.1步 …

从零开始用react + tailwindcss + express + mongodb实现一个聊天程序(十二) socketio 消息处理

1.后端 在message.controller.js中 在sendMessage方法中 每当我们发送消息 需要socketio把这个消息转发给 接收人 加入转发逻辑 // 把消息发给指定的用户的socket const receiverSocketId getReceiverSocketId(receiverId); if(receiverSocketId) { io.to(receiverSocket…

【大模型】WPS 接入 DeepSeek-R1详解,打造全能AI办公助手

目录 一、前言 二、WPS接入AI工具优势​​​​​​​ 三、WPS接入AI工具两种方式 3.1 手动配置的方式 3.2 Office AI助手 四、WPS手动配置方式接入AI大模型 4.1 安装VBA插件 4.1.1 下载VBA插件并安装 4.2 配置WPS 4.3 WPS集成VB 4.4 AI助手效果测试 4.5 配置模板文…

SmolVLM2 - 将视频理解带到每个设备

本文翻译整理自:SmolVLM2: Bringing Video Understanding to Every Device https://huggingface.co/blog/smolvlm2 文章目录 TL;DR: SmolVLM 现在可以观看 📺 并拥有更好的视觉理解一、关于 SmolVLM2二、 技术细节1、SmolVLM2 2.2B: 我们新的视觉和视频明…

Cocos Creator Shader入门实战(三):CCEffect参数配置讲解

引擎版本:3.8.5 您好,我是鹤九日! 回顾 稍微回顾下前面两篇博客讲解的内容: 一、Cocos渲染效果的实现需要Material材质和Effect资源的互相配合。 二、Effect资源负责Shader片段的编写和属性配置,Material材质负责对E…

计算机毕业设计:公司烤箱配件质量信息追溯系统

超级管理员表创建语句如下: 公司烤箱配件质量信息追溯系统mysql数据库创建语句公司烤箱配件质量信息追溯系统oracle数据库创建语句公司烤箱配件质量信息追溯系统sqlserver数据库创建语句公司烤箱配件质量信息追溯系统springspringMVCmybatis框架对象(javaBean,pojo…

【移动WEB开发】rem适配布局

目录 1. rem基础 2.媒体查询 2.1 语法规范 2.2 媒体查询rem 2.3 引入资源(理解) 3. less基础 3.1 维护css的弊端 3.2 less介绍 3.3 less变量 3.4 less编译 3.5 less嵌套 3.6 less运算 4. rem适配方案 4.1 rem实际开发 4.2 技术使用 4.3 …

Java后端高频面经——计算机网络

TCP/IP四层模型?输入一个网址后发生了什么,以百度为例?(美团) (1)四层模型 应用层:支持 HTTP、SMTP 等最终用户进程传输层:处理主机到主机的通信(TCP、UDP&am…

DeepSeek R1-32B医疗大模型的完整微调实战分析(全码版)

DeepSeek R1-32B微调实战指南 ├── 1. 环境准备 │ ├── 1.1 硬件配置 │ │ ├─ 全参数微调:4*A100 80GB │ │ └─ LoRA微调:单卡24GB │ ├── 1.2 软件依赖 │ │ ├─ PyTorch 2.1.2+CUDA │ │ └─ Unsloth/ColossalAI │ └── 1.3 模…

《Python实战进阶》No16: Plotly 交互式图表制作指南

No16: Plotly 交互式图表制作指南 Plotly是一款用来做数据分析和可视化的在线平台,功能真的是非常强大,它主要有以下特点: 图形多样化:在线绘制多种图形,比如柱状图、饼图、直方图、饼图、气泡图、桑基图、股票图、旭…

贪心算法--

1.柠檬水找零 link:860. 柠檬水找零 - 力扣&#xff08;LeetCode&#xff09; code class Solution { public:bool lemonadeChange(vector<int>& bills) {// 贪心算法&#xff0c; 优先花出大面额bill&#xff0c; 尽可能保护小面额billint five 0, ten 0;// 不…

基于策略模式的智能提示语生成器设计与实现——以Tkinter GUI开发为例

基于策略模式的智能提示语生成器设计与实现——以Tkinter GUI开发为例 一、引言&#xff1a;智能化时代的提示工程工具 在人工智能技术广泛应用的时代背景下&#xff0c;如何与AI模型进行有效交互已成为关键技能。本文介绍的"AI任务需求与提示语策略生成器"正是基于…

【MySQL】(4) 表的操作

一、创建表 语法&#xff1a; 示例&#xff1a; 生成的数据目录下的文件&#xff1a; 二、查看表结构 三、修改表 语法&#xff1a; 另一种改表名语法&#xff1a;rename table old_name1 to new_name1, old_name2 to new_name2; 示例&#xff1a; 四、删除表 语法&#xf…

基于STM32物联网水质监测系统的设计与实现/基于STM32的水产养殖云监控系统设计

1. 系统方案介绍 随着水质污染问题的日益严峻&#xff0c;实时监测水质变得尤为重要。水质监测系统能够通过采集水体中的各种数据&#xff0c;及时发现水质问题&#xff0c;保障饮用水安全。本文将介绍一款基于STM32单片机的物联网水质监测系统&#xff0c;该系统采用了ESP826…

装饰器模式--RequestWrapper、请求流request无法被重复读取

目录 前言一、场景二、原因分析三、解决四、更多 前言 曾经遇见这么一段代码&#xff0c;能看出来是把request又重新包装了一下&#xff0c;核心信息都不会改变 后面了解到这叫 装饰器模式&#xff08;Decorator Pattern&#xff09; &#xff1a;也称为包装模式(Wrapper Pat…

IO多路复用实现并发服务器

一.select函数 select 的调用注意事项 在使用 select 函数时&#xff0c;需要注意以下几个关键点&#xff1a; 1. 参数的修改与拷贝 readfds 等参数是结果参数 &#xff1a; select 函数会直接修改传入的 fd_set&#xff08;如 readfds、writefds 和 exceptfds&#xf…