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

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

什么是退火

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

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

相关推荐
Ao0000004 分钟前
脑电分析入门指南:信号处理、特征提取与机器学习
人工智能·机器学习·信号处理
蜡笔小电芯5 分钟前
【STM32】const 变量存储学习笔记
笔记·stm32·学习
腾讯云开发者10 分钟前
架构师如何与 AI 共生进化?2025 腾讯云架构师峰会来揭晓!
人工智能·架构
俞凡44 分钟前
提示工程演进之旅
人工智能
机器之心1 小时前
Windsurf交易内幕疯传:24亿美元被瓜分,背刺数百员工?
人工智能
金心靖晨1 小时前
笔记-极客-DDD实战-基于DDD的微服务拆分与设计
java·笔记·微服务
芷栀夏2 小时前
飞算Java AI开发助手:引领智能编程新风尚
java·人工智能·python
聚客AI2 小时前
🛠️从架构到部署:企业级多Agent系统开发百科全书
人工智能·llm·agent
陈大鱼头3 小时前
AI 大模型调用全流程:从原理到实践的完整指南
人工智能·ai编程
mortimer3 小时前
用Gemini攻克小语种语音识别,生成广播级SRT字幕
人工智能·gemini