新型大语言模型的预训练与后训练范式,谷歌的Gemma 2语言模型
前言:大型语言模型(LLMs)的发展历程可以说是非常长,从早期的GPT模型一路走到了今天这些复杂的、公开权重的大型语言模型。最初,LLM的训练过程只关注预训练,但后来逐步扩展到了包括预训练和后训练在内的完整流程。后训练通常涵盖监督指导微调和对齐过程,而这些在ChatGPT的推广下变得广为人知。
自ChatGPT首次发布以来,训练方法学也在不断进化。在这几期的文章中,我将回顾近1年中在预训练和后训练方法学上的最新进展。
关于LLM开发与训练流程的概览,特别关注本文中讨论的新型预训练与后训练方法
每个月都有数百篇关于LLM的新论文提出各种新技术和新方法。然而,要真正了解哪些方法在实践中效果更好,一个非常有效的方式就是看看最近最先进模型的预训练和后训练流程。幸运的是,在近1年中,已经有四个重要的新型LLM发布,并且都附带了相对详细的技术报告。
在本文中,我将重点介绍以下模型中的谷歌的 Gemma 2语言模型 预训练和后训练流程:
• 阿里巴巴的 Qwen 2
• 苹果的 智能基础语言模型
• 谷歌的 Gemma 2
• Meta AI 的 Llama 3.1
我会完整的介绍列表中的全部模型,但介绍顺序是基于它们各自的技术论文在arXiv.org上的发表日期,这也巧合地与它们的字母顺序一致。
谷歌的Gemma 2
谷歌的Gemma模型最近在《Gemma 2:改进实用大小的开放语言模型》中有所描述。
我将在接下来的概述部分提供一些关键事实的概述,然后讨论预训练和后训练过程。
**3.1 Gemma 2概述 **
Gemma 2模型有三种规模:20亿、90亿和270亿参数。主要关注的是探索不一定需要增加训练数据集大小的技术,而是开发相对小且高效的LLM。
值得注意的是,Gemma 2具有相当大的词汇量,为256k词汇。相比之下,Llama 2使用了32k词汇量,Llama 3使用了128k词汇量。
此外,Gemma 2采用了类似Mistral早期模型的滑动窗口注意力,可能是为了减少内存成本。有关Gemma 2架构的更多细节,请参阅我之前文章中的Gemma 2部分。
3.2 Gemma 2预训练
Gemma的研究人员认为,即使是小型模型也常常训练不足。然而,他们没有简单地增加训练数据集的大小,而是专注于维护质量,并通过其他方法(如知识蒸馏,类似于苹果的方法)实现改进。
尽管270亿参数的Gemma 2模型是从头开始训练的,较小的模型则使用了类似苹果之前解释的方法的知识蒸馏进行训练。
270亿参数的模型在13万亿标记上训练,90亿参数的模型在8万亿标记上训练,20亿参数的模型在2万亿标记上训练。此外,类似于苹果的方法,Gemma团队优化了数据混合以提升性能。
Gemma 2预训练技术总结。
3.3 Gemma 2后训练
Gemma模型的后训练过程包括典型的监督微调(SFT)和带人类反馈的强化学习(RLHF)步骤。
指令数据涉及使用仅英语的提示对,这些是人工生成和合成生成内容的混合。具体来说,也很有趣的是,响应主要由教师模型生成,并且在SFT阶段也应用了知识蒸馏。
他们的RLHF方法中一个有趣的方面,继SFT之后,是用于RLHF的奖励模型比政策(目标)模型大十倍。
Gemma使用的RLHF算法相当标准,但有一个独特的转折:他们通过一种称为WARP的方法平均了政策模型,这是WARM(加权平均奖励模型)的后继者。我之前在我的文章《模型融合、专家混合及朝向更小LLM》中详细讨论过这种方法。
Gemma 2后训练技术总结。
3.4 结论
Gemma团队似乎真的加倍依赖知识蒸馏,他们在预训练和后训练中都使用了这种方法,与苹果类似。有趣的是,他们没有使用多阶段预训练方法,或者至少他们在论文中没有详细说明。
新型大语言模型的预训练与后训练范式,谷歌的Gemma 2语言模型的更多相关文章
- css预处理器和后处理器
因为我是前端刚入门,昨天看了一个大神写的的初级前端需要掌握的知识,然后我就开始一一搜索,下面是我对css预处理器和后处理器的搜索结果,一是和大家分享下这方面的知识,另一方面方便自己以后翻阅.所以感兴趣 ...
- 产品在焊接时出现异常,尤其是尺寸较大的QFP芯片,焊接后出现虚焊、冷焊、假焊等问题?
1 不良描述 客户采用我们提供的SMT设备后,部分产品在焊接时出现异常,尤其是尺寸较大的QFP芯片,焊接后出现虚焊.冷焊.假焊等不良.应客户要求对这一批不良产品以及生产条件进行分析,以便找到改善的依据 ...
- SVM训练结果参数说明 训练参数说明 归一化加快速度和提升准确率 归一化还原
原文:http://blog.sina.com.cn/s/blog_57a1cae80101bit5.html 举例说明 svmtrain -s 0 -?c 1000 -t 1 -g 1 -r 1 - ...
- 如何解决 Iterative 半监督训练 在 ASR 训练中难以落地的问题丨RTC Dev Meetup
前言 「语音处理」是实时互动领域中非常重要的一个场景,在声网发起的「RTC Dev Meetup丨语音处理在实时互动领域的技术实践和应用」活动中,来自微软亚洲研究院.声网.数美科技的技术专家,围绕该话 ...
- 迁移学习算法之TrAdaBoost ——本质上是在用不同分布的训练数据,训练出一个分类器
迁移学习算法之TrAdaBoost from: https://blog.csdn.net/Augster/article/details/53039489 TradaBoost算法由来已久,具体算法 ...
- Expo大作战(十九)--expo打包后,发布分用程序到商店的注意事项
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- 【服务总线 Azure Service Bus】Service Bus在使用预提取(prefetching)后出现Microsoft.Azure.ServiceBus.MessageLockLostException异常问题
问题描述 Service Bus接收端的日志中出现大量的MessageLockLostException异常.完整的错误消息为: Microsoft.Azure.ServiceBus.MessageL ...
- ML2021 | (腾讯)PatrickStar:通过基于块的内存管理实现预训练模型的并行训练
前言 目前比较常见的并行训练是数据并行,这是基于模型能够在一个GPU上存储的前提,而当这个前提无法满足时,则需要将模型放在多个GPU上.现有的一些模型并行方案仍存在许多问题,本文提出了一种名为 ...
- 从大公司做.NET 开发跳槽后来到小公司的做.NET移动端微信开发的个人感慨
从14年11月的实习到正式的工作的工作我在上一家公司工作一年多了.然而到16年5月20跳槽后自己已经好久都没有在写博客了,在加上回学校毕业答辩3天以及拿档案中途耽搁了几天的时间,跳槽后虽然每天都在不停 ...
- GIS大数据存储预研
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 在实际项目运行中,时常会出现希望搜索周边所有数据的需求.但是 ...
随机推荐
- Maven高级——属性
属性 自定义属性 定义属性 <!-- 定义属性--> <properties> <spring.version>5.2.10.RELEASE</spring. ...
- Spring —— 事务简介
Spring 事务 简介 事务作用:在数据层保障一系列的数据库操作同成功同失败 Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败 小案例 添加事务管理: ...
- 大语言模型(LLM)
大语言模型 LLM 人工智能 Artificial Intelligence 一门研究如何使计算机能够模拟和执行人类智能任务的科学和技术领域 是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术 ...
- 【翻译】实现 Blocked Floyd-Warshall 用于解决所有对最短路径问题 C# 实现
介绍 在之前的帖子中,我们实现了Floyd-Warshall(弗洛伊德-沃沙尔算法)(四种变体)以及路由重建算法.在这些帖子中,我们探讨了所有对最短路径问题的基本概念.内存中的数据表示.并行性.向量化 ...
- vue 赶鸭子上架入门笔记(一) 安装开发环境
准备接手一个 vue 的前端项目,从零开始学习 vue.目标不高大上,能看得懂代码,能进行简单的修改,改完能打包和部署. 首先解决 vue 开发环境的准备.访问 Node.js 官方网站,下载适合你操 ...
- Cache和DMA一致性
DMA应该多多少少知道点吧.DMA(Direct Memory Access)是指在外接可以不用CPU干预,直接把数据传输到内存的技术.这个过程中可以把CPU解放出来,可以很好的提升系统性能.那么DM ...
- 使用KFold交叉验证方法划分训练集和验证集
在进行深度学习时,为了提高精度,或者为了评估我们模型的优劣,以及如何选择一个更好的模型.这样我们就需要用到交叉验证方法. 我们主要实现如何使用KFold划分训练集和验证集 #coding:utf-8f ...
- 画布canvas基础 01
1. 什么是canvas canvas是用来绘制图形的.它可以用于动画.游戏画面.数据可视化.图片编辑以及实时视频处理等方面. <canvas width="500" hei ...
- 1. 什么是three.js?
Three.js是一个基于JavaScript编写的开源3D图形库,它使用WebGL技术在网页上渲染3D图形.Three.js提供了许多高级功能,如几何体.纹理.光照.阴影等,以便开发者能够快速地创建 ...
- element+vue2的查询form表单封装成组件复用
<template> <el-form :inline="true" style="display: flex; flex-direction: row ...