当前位置: 首页 > news >正文

《Llama: The Llama 3 Herd of Models》预训练数据篇——论文精读笔记

论文链接:arxiv.org/pdf/2407.21783

本博客只针对Llama3中的训练数据做阅读笔记。后续会单独对Llama1-3的模型做总结。

摘要

  • 多语言支持
  • 工具使用能力
  • 最大模型参数达到 405B,采用稠密的 Transformer 架构,而非更常见的混合专家(MOE)架构。
  • 上下文窗口长度为 128K。

 导言

预训练与后训练

  • Llama 系列模型在预训练阶段使用了大量的多语言数据,达到 15TB 的规模。
  • 后训练则采用了简单的监督微调(Supervised Fine Tuning,SFT),并通过算法如拒绝采样(Reject Sampling)和 DPO(Direct Preference Optimization)进行对齐。

关键因素

  • 数据规模:Llama 系列模型坚持使用大量数据,强调数据质量与数量的平衡。
  • 模型规模:Llama 3.1 在参数规模上达到了 405B,展示了模型的强大能力。
  • 设计选择:模型在设计上选择了标准的稠密 Transformer,不采用 MOE(混合专家)架构。

 性能评估

  • 性能数据:模型在不同规模下(8B、70B、405B)的评估结果表明,随着模型规模增加,在多个评估任务上的性能确实有显著提升。
  • 模型表现:在知识面上,405B 模型显示出更强的记忆能力,但在根据指令执行时,70B 模型表现相对不错,且成本效益更高。


3 Pre-Training

语言模型的预训练包括以下几个方面:

(1) 大规模训练语料的整理和筛选;

(2) 模型架构的开发以及相应的规模法则,用于确定模型的大小;

(3) 开发高效的大规模预训练技术;

(4) 制定预训练的完整方案。

3.1 预训练数据

数据收集及来源

数据集由多种来源构成,包括公共网络数据(如爬取的网页内容)和特定领域的文档(如代码和数学相关内容)。

数据清理

PII过滤:去除包含大量个人可识别信息(PII)和已知成人内容的网站。这是为了保护用户隐私和确保模型安全性。

HTML处理:自定义解析器用于从原始HTML中提取干净文本,优化了对于广告和导航栏的去除。

数学和代码的保留:在处理包含数学公式和代码的网页时,保留了其结构和重要的内容,尤其是图片标签中的文本描述,以确保信息的完整性。

 数据去重

URL级别去重:保留每个URL的最新版本。

文档级别去重:通过MinHash算法去除近似重复的文档。

行级别去重:删除在每组3000万个文档中出现超过6次的行,以减少常见的冗余内容(如导航菜单、广告等)。

什么是哈希函数

哈希函数(Hash Function)是一种将输入数据(通常是任意长度的数据)映射为固定长度的输出数据(称为哈希值或哈希码)的函数。

什么是MinHash?

MinHash的核心思想是通过哈希函数将集合映射到一个较小的特征空间,从而实现对集合相似度的高效估计。

具体步骤如下:

  • 集合表示:首先,将每个文档表示为一个集合,通常是其特征(如单词、短语等)的集合。例如,文档D1的特征集合可以表示为{w1, w2, w3, ...}。

  • 哈希函数:选择多个哈希函数,将集合中的元素映射到哈希值。每个哈希函数会为集合中的每个元素生成一个哈希值。

  • 最小哈希值:对于每个哈希函数,找出集合中元素的最小哈希值。这些最小哈希值构成了该集合的MinHash签名。

  • 相似度计算:两个集合的相似度(通常是杰卡德相似度)可以通过比较它们的MinHash签名来估计。如果两个集合的MinHash签名相似,那么它们的原始集合也很可能相似。

数据的最终构成比例为:

  • 50%:通用知识
  • 25%:数学和推理相关内容
  • 17%:代码
  • 8%:多语言文本

多语言处理

在多语言数据处理上,Llama采取了以下策略:

  • 语言识别:使用fasttext模型识别176种语言,确保多语言数据的质量。
  • 去重与质量检测:针对不同语言实施文档和行级别的去重,并应用特定的质量过滤器。

数据混合与优化

为了获得高质量的语言模型,需谨慎决定不同数据源在预训练数据中的比例:

  • 知识分类:使用分类器对网页数据进行分类,以有效控制各类信息的比例,避免某些类别(如娱乐)过度代表。
  • Scaling Law实验:通过小模型在不同数据混合上的表现预测大模型的性能,反复调整数据比例。

什么是scaling law?

Scaling law(比例法则)实验是指在机器学习,尤其是在深度学习和自然语言处理领域中,通过试验和观察模型性能与模型规模(如参数量、数据量等)之间的关系,以获取关于如何扩展模型和优化其表现的规律和指导。

退火数据

通过对少量高质量代码和数学数据进行退火,可以提高模型在特定基准测试上的分数。这意味着在模型训练完成后,使用高质量数据进行再训练以增强特定能力。

什么是退火
通常情况下,深度学习中的退火指的学习率退火,训练过程中逐步降低学习率。初始阶段使用较高的学习率来快速收敛,然后逐渐降低学习率,使得模型能够更细致地调整参数,从而提高最终的收敛效果,减少震荡。

这里对少量高质量代码和数学数据进行退火是指:在模型的初始训练阶段,通常会使用大量的、可能存在多样性和噪声的数据,以帮助模型建立起对各种输入的基本理解。一旦初步训练完成,退火过程就会使用高质量的数据进行微调,以便使模型更好地适应新的数据特点。

http://www.dtcms.com/a/276877.html

相关文章:

  • Linux | 数据库操作基础
  • EVO-0:具有隐空间理解的视觉-语言-动作模型
  • 维基艺术图片: 构建模型 (3)
  • 应用层协议和JSON的使用
  • 文心大模型4.5开源测评:轻量化部署实践与多维度能力验证
  • 贝尔量子实验设想漏洞
  • 云服务器的基础使用
  • [Dify]-基础入门8- 使用 Dify 创建文档问答机器人(零代码实现)
  • 39.Sentinel微服务流量控制组件
  • .NET + WPF框架开发聊天、网盘、信息发布、视频播放功能
  • [Subtitle Edit] 字幕格式处理 | .Net依赖管理(NuGet)
  • opencv python 基本操作
  • 前端面试十二之vue3基础
  • redis汇总笔记
  • 日志系统 on Linux C/C++
  • UE5多人MOBA+GAS 21、给升龙添加连段攻击,从角色的按下事件中传递事件给GA
  • Action-Agnostic Point-Level Supervision for Temporal Action Detection
  • 一扇门铃,万向感应——用 eventfd 实现零延迟通信
  • QCustomPlot绘图保存成PDF文件
  • 网络安全的基本练习
  • 北京-4年功能测试2年空窗-报培训班学测开-第四十九天
  • 行测速算之假设分配法
  • ROS2中的QoS(Quality of Service)详解
  • v-show和v-if的区别
  • 算法复杂度分析:大O表示法详解
  • 婚后才明白,原来结婚真需要一点冲动!
  • 编程与数学 03-001 计算机组成原理 04_非数值数据表示与校验码
  • 解码冯・诺依曼:操作系统是如何为进程 “铺路” 的?
  • 002_Claude模型与定价
  • java进阶(二)+学习笔记