新型大语言模型的预训练与后训练范式,阿里Qwen

前言:大型语言模型(LLMs)的发展历程可以说是非常长,从早期的GPT模型一路走到了今天这些复杂的、公开权重的大型语言模型。最初,LLM的训练过程只关注预训练,但后来逐步扩展到了包括预训练和后训练在内的完整流程。后训练通常涵盖监督指导微调和对齐过程,而这些在ChatGPT的推广下变得广为人知。

自ChatGPT首次发布以来,训练方法学也在不断进化。在这几期的文章中,我将回顾近1年中在预训练和后训练方法学上的最新进展。

关于LLM开发与训练流程的概览,特别关注本文中讨论的新型预训练与后训练方法

每个月都有数百篇关于LLM的新论文提出各种新技术和新方法。然而,要真正了解哪些方法在实践中效果更好,一个非常有效的方式就是看看最近最先进模型的预训练和后训练流程。幸运的是,在近1年中,已经有四个重要的新型LLM发布,并且都附带了相对详细的技术报告。

在本文中,我将重点介绍以下模型中的Qwen 2预训练和后训练流程:

• 阿里巴巴的 Qwen 2

• 苹果的 智能基础语言模型

• 谷歌的 Gemma 2

• Meta AI 的 Llama 3.1

我会完整的介绍列表中的全部模型,但介绍顺序是基于它们各自的技术论文在arXiv.org上的发表日期,这也巧合地与它们的字母顺序一致。

1. 阿里的 Qwen 2

我们先来说说 Qwen 2,这是一个非常强大的 LLM 模型家族,与其他主流的大型语言模型具有竞争力。不过,不知为何,它的知名度不如 Meta AI、微软和谷歌那些公开权重的模型那么高。

1.1 Qwen 2 概览

在深入探讨 Qwen 2 技术报告中提到的预训练和后训练方法之前,我们先简单总结一下它的一些核心规格。

Qwen 2 系列模型共有 5 种版本,包括 4 个常规(密集型)的 LLM,分别为 5 亿、15 亿、70 亿和 720 亿参数。此外,还有一个专家混合模型(Mixture-of-Experts),参数量为 570 亿,但每次仅激活 140 亿参数。(由于这次不重点讨论模型架构细节,我就不深入讲解专家混合模型了,不过简单来说,它与 Mistral AI 的 Mixtral 模型类似,但激活的专家更多。如果想了解更高层次的概述,可以参考这一篇知识《模型融合、专家混合与更小型 LLM 的未来》中的 Mixtral 架构部分。)

Qwen 2 模型的一大亮点是它在 30 种语言中的出色多语言能力。此外,它的词汇量非常大,达到 151,642 个 token。(相比之下,Llama 2 的词汇量为 32k,而 Llama 3.1 则为 128k)。根据经验法则,词汇量增加一倍,输入 token 数量会减少一半,因此 LLM 可以在相同输入中容纳更多 token。这种大词汇量特别适用于多语言数据和编程场景,因为它能覆盖标准英语词汇之外的单词。

下面是与其他 LLM 在 MMLU 基准测试中的简要对比。(需要注意的是,MMLU 是一个多选基准测试,因此有其局限性,但仍是评估 LLM 性能的最受欢迎方法之一。)

MMLU基准测试得分,针对最新的开源权重模型(分数越高越好)。这个图中的得分是从每个模型的官方研究论文中收集的。

1.2 Qwen 2 预训练

Qwen 2 团队对参数规模为 15 亿、70 亿和 720 亿的模型进行了训练,使用了 7 万亿个训练 token,这是一个合理的规模。作为对比,Llama 2 模型使用了 2 万亿个 token,Llama 3.1 模型使用了 15 万亿个 token。

有趣的是,参数规模为 5 亿的模型使用了 12 万亿个 token 进行训练。然而,研究人员并没有用这个更大的 12 万亿 token 数据集来训练其他模型,因为在训练过程中并未观察到性能提升,同时额外的计算成本也难以合理化。

他们的一个重点是改进数据过滤流程,以去除低质量数据,同时增强数据混合,从而提升数据的多样性——这一点我们在分析其他模型时会再次提到。

有趣的是,他们还使用了 Qwen 模型(尽管没有明确说明细节,我猜是指前一代的 Qwen 模型)来生成额外的预训练数据。而且,预训练包含了“多任务指令数据……以增强模型的上下文学习能力和指令遵循能力。”

此外,他们的训练分为两个阶段:常规预训练和长上下文预训练。在预训练的最后阶段,他们使用了“高质量、长文本数据”将上下文长度从 4,096 token 增加到 32,768 token。

Qwen 2 预训练技术总结。‘持续预训练’指的是两阶段预训练,研究人员先进行了常规预训练,然后接着进行长上下文的持续预训练。

(遗憾的是,这些技术报告的另一个特点是关于数据集的细节较少,因此如果总结看起来不够详细,是因为公开的信息有限。)

1.3 Qwen 2 后训练

Qwen 2 团队采用了流行的两阶段后训练方法,首先进行监督式指令微调(SFT),在 50 万个示例上进行了 2 个 epoch 的训练。这一阶段的目标是提高模型在预设场景下的响应准确性。

典型的大语言模型开发流程

在完成 SFT 之后,他们使用直接偏好优化(DPO)来将大语言模型(LLM)与人类偏好对齐。(有趣的是,他们的术语将其称为基于人类反馈的强化学习,RLHF。)正如我几周前在《LLM预训练和奖励模型评估技巧》文章中所讨论的,由于相比其他方法(例如结合 PPO 的 RLHF)更加简单易用,SFT+DPO 方法似乎是当前最流行的偏好调优策略。

对齐阶段本身也分为两个步骤。第一步是在现有数据集上使用 DPO(离线阶段);第二步是利用奖励模型形成偏好对,并进入“在线”优化阶段。在这里,模型在训练中会生成多个响应,奖励模型会选择优化步骤中更符合偏好的响应,这种方法也常被称为“拒绝采样”。

在数据集构建方面,他们使用了现有语料库,并通过人工标注来确定 SFT 的目标响应,以及识别偏好和被拒绝的响应(这是 DPO 的关键)。研究人员还合成了人工注释数据。

此外,团队还使用 LLM 生成了专门针对“高质量文学数据”的指令-响应对,以创建用于训练的高质量问答对。

Qwen2后训练技术汇总

1.4 结论

Qwen 2 是一个相对能力较强的模型,与早期的 Qwen 系列类似。在 2023 年 12 月的 NeurIPS LLM 效率挑战赛中,我记得大部分获胜方案都涉及 Qwen 模型。

关于 Qwen 2 的训练流程,值得注意的一点是,合成数据被用于预训练和后训练阶段。同时,将重点放在数据集过滤(而不是尽可能多地收集数据)也是 LLM 训练中的一个显著趋势。在我看来,数据确实是越多越好,但前提是要满足一定的质量标准。

从零实现直接偏好优化(DPO)对齐 LLM

直接偏好优化(DPO)已经成为将 LLM 更好地与用户偏好对齐的首选方法之一。这篇文章中你会多次看到这个概念。如果你想学习它是如何工作的,Sebastian Raschka博士有一篇很好的文章,即:《从零实现直接偏好优化(DPO)用于 LLM 对齐》,你可以看看它。在介绍完本文列表中的模型扣会根据它用中文语言为大家重新编写一篇发布出来。

利用DPO技术实现人工智能大语言模型与人类对齐流程概览

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#结构体排序(数组)

结构体排序(数组) 1 示例1.1 以PointF为例展示效果1.2 运行结果展示 2实际运用2.1 创建结构体2.2 调用示例2.3 运行结果展示 1 示例 1.1 以PointF为例展示效果 private void button1_Click(object sender, EventArgs e) {Random random new Random();…

前端高频面试题-并发请求

面试题中,有一道题经常会出现,咱们下面讲一下思路以及写法写一个方法,传入一个请求地址数组,以及一个并发数量,根据并发数量,一起发送请求。如果一个发送完,那么从数组中拿出来一个接着发送&…

RabbitMQ7:消息转换器

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…

螺旋矩阵(java)

题目描述 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 代码思路&#xff1a; class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> list new ArrayList<>(); …

Jenkins的使用

文章目录 一、Jenkins是什么\有什么用\与GitLab的对比二、Jenkins的安装与配置Jenkins的安装方式在Linux上安装Jenkins&#xff1a;在Windows上安装Jenkins&#xff1a;配置Jenkins&#xff1a; &#xff08;可选&#xff09;配置启动用户为root&#xff08;一定要是root吗??…

[在线实验]-ActiveMQ Docker镜像的下载与部署

镜像下载 下载ActiveMQ的Docker镜像文件。通常&#xff0c;这些文件会以.tar格式提供&#xff0c;例如activemq.tar。 docker的activemq镜像资源-CSDN文库 加载镜像 下载完成后&#xff0c;您可以使用以下命令将镜像文件加载到Docker中&#xff1a; docker load --input a…

【AI绘画】Midjourney进阶:色调详解(下)

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AI绘画 | Midjourney 文章目录 &#x1f4af;前言&#x1f4af;Midjourney中的色彩控制为什么要控制色彩&#xff1f;为什么要在Midjourney中控制色彩&#xff1f; &#x1f4af;色调纯色调灰色调暗色调 &#x1f4af…

YOLO系列论文综述(从YOLOv1到YOLOv11)【第3篇:YOLOv1——YOLO的开山之作】

YOLOv1 1 摘要2 YOLO: You Only Look Once2.1 如何工作2.2 网络架构2.3 训练2.4 优缺点 YOLO系列博文&#xff1a; 【第1篇&#xff1a;概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】【第2篇&#xff1a;YOLO系列论文、代码和主要优缺点汇总】 ——————————…

数字图像处理(9):VGA接口及其时序

&#xff08;1&#xff09;特点&#xff1a;成本低、结构简单、应用灵活 VGA接口需要五个信号&#xff1a;R、G、B、Hsync、Vsync &#xff08;2&#xff09;VGA的工作原理&#xff1a; 设定一个高速时钟信号&#xff08;像素时钟&#xff09;来控制每个像素的传输速率&#…

微信小程序按字母顺序渲染城市 功能实现详细讲解

在微信小程序功能搭建中&#xff0c;按字母渲染城市会用到多个ES6的方法&#xff0c;如reduce&#xff0c;map&#xff0c;Object.entries()&#xff0c;Object.keys() &#xff0c;需要组合熟练掌握&#xff0c;才能优雅的处理数据完成渲染。 目录 一、数据分析 二、数据处理 …

DVWA靶场通过——文件上传漏洞

File Upload漏洞 它允许攻击者通过上传恶意文件来执行任意代码、窃取数据、获取服务器权限&#xff0c;甚至完全控制服务器。为了防止文件上传漏洞&#xff0c;开发者需要对文件上传过程进行严格的验证和处理。 1. 文件上传漏洞概述 文件上传漏洞发生在Web应用程序允许用户通过…

react后台管理系统(一)

&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;React篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容:react后台管理系统(一) 前言 本文档详细介绍了如何从零开始搭建一个基于 React 和 Ant Design 的…

Vue.js --- 生命周期

1. 前言 在 Vue.js 中&#xff0c;生命周期是指一个 Vue 实例从创建到销毁的过程。Vue 提供了一系列的生命周期钩子&#xff08;lifecycle hooks&#xff09;&#xff0c;让开发者可以在不同的阶段执行特定的代码。了解这些生命周期钩子是构建 Vue 组件的基础&#xff0c;能够…

使用1panel一键安装Ollama WebUI连接本地Ollama使用开源ai模型

当前我的环境 设备有限只有一张3060 12gb显卡&#xff0c;平时用来轻度学习 主机&#xff1a;windows server Ollama&#xff1a;windows版&#xff08;它也有linux和mac&#xff09; 因虚拟机使用的服务器无显卡&#xff0c;只用来跑面板和WebUi 虚拟机&#xff1a;ubuntu se…

任意文件读取漏洞(CVE-2024-7928)修复

验证CVE-2024-7928问题是否存在可以使用如下方法&#xff1a; https://域名/index/ajax/lang?lang..//..//目录名/文件名&#xff08;不带后缀&#xff09; 目录名是该项目的一个目录&#xff0c;这里目录位置为nginx设置站点目录为基准&#xff0c;网上两层目录。 文件名…

房屋出租出售预约系统支持微信小程序+H5+APP

核心功能有&#xff1a;新盘销售、房屋租赁、地图找房、小区找房&#xff0c;地铁找房等方式。 地图找房&#xff1a;通过地图标注查看附近房源&#xff0c;方便用户根据地理位置查找合适的房产。二手房资讯&#xff1a;提供租房及二手房市场的相关资讯&#xff0c;帮助用户了…

设计模式:11、迭代器模式(游标)

目录 0、定义 1、迭代器模式的四种角色 2、迭代器模式的UML类图 3、示例代码 4、迭代器的next()方法与集合的get(int index)方法的效率对比&#xff08;LinkedList为例&#xff09; 0、定义 提供一种方法顺序访问一个聚合对象中的各个元素&#xff0c;而又不需要暴露该对象…

抓SystemTrace的简易方法

前言&#xff1a; Systrace是分析Android性能问题的神器。一般抓trace命令是需要在AndroidSDK下的\platform-tools\systrace执行\systrace.py&#xff0c;很奇怪我的AndroidSDK并没有systrace文件夹&#xff0c;于是CSDN单独下载了trace文件 但是我一运行.\systrace.py -b 102…

微信小程序 城市点击后跳转 并首页显示被点击城市

在微信小程序中&#xff0c;渲染出城市列表后&#xff0c;如何点击城市&#xff0c;就跳转回到首页&#xff0c;并在首页显示所点击的城市呢&#xff1f; 目录 一、定义点击城市的事件 二、首页的处理 首页&#xff1a;点击成都市会跳转到城市列表 城市列表&#xff1a;点击…

修改IDEA配置导致Spring Boot项目读取application.properties中文乱码问题

之前很多配置都是放在nacos里面&#xff0c;然后这次同事有个配置写在application.properties中&#xff0c;这个配置含有中文&#xff0c;启动之后发现拿到的中文值会乱码&#xff0c;然后就帮忙看了一下问题。 排查问题 经过不停的百度、排查发现&#xff0c;spring读取app…