怎样用自己的电脑 做网站,国外外贸平台有哪些,营销型网站建设技术指标,呼和浩特网站seo大家好#xff0c;我是HxShine。
今天分享一篇符尧大佬的一篇数据工程#xff08;Data Engineering#xff09;的文章#xff0c;解释了speed of grokking指标是什么#xff0c;分析了数据工程#xff08;data engineering#xff09;包括mix ratio#xff08;数据混合…大家好我是HxShine。
今天分享一篇符尧大佬的一篇数据工程Data Engineering的文章解释了speed of grokking指标是什么分析了数据工程data engineering包括mix ratio数据混合比例 data format数据格式 data curriculum数据课程以及模型规模对speed of grokking的影响同时用一个生动的随机数生成的例子讨论语言模型学习的本质干货十足分享给大家
一、概述
TitleAn Initial Exploration of Theoretical Support for Language Model Data Engineering. Part 1: Pretraining
文章地址https://yaofu.notion.site/An-Initial-Exploration-of-Theoretical-Support-for-Language-Model-Data-Engineering-Part-1-Pretraini-dc480d9bf7ff4659afd8c9fb738086eb
1 Motivation
最近大模型开源社区研究热点开始从model engineering转移到data engineering大家开始意识到数据质量的重要性。data engineering的理论还不太成熟例如好数据的准确定义是什么如何优化数据的结构组成我们的优化目标是什么对data engineering进行理论分析可以帮助我们在正式跑实验前预测每个task最终的performanceopenai在gpt4的技术报告中提到了这点非常有意义。
2 Methods
本文不提出优化数据的具体方法仅讨论数据工程data engineering时应该解决的问题是什么以及指导我们的基本原则。具体来说我们讨论预训练和 SFT 数据优化的以下目标
预训练阶段数据优化找到最优的混合比例数据格式数据课程使学习速度最大化。监督微调/指令阶段调整数据优化寻找最小的query-response pairs(最小的训练数据)使用户偏好分布的覆盖范围最大。
3 Conclusion
解释了可能更好的衡量评估指标speed of grokking获取某技能的速度是什么其可能更具有泛化性并且更贴近于特定的skill能力。分析mix ratio数据混合比例 data format数据格式 data curriculum数据课程以及模型规模对speed of grokking的影响。讨论llm模型最终学习到的是什么以及可能的一些更好衡量模型效果的metrics。
二、详细内容
1 预训练能力评估指标speed of grokking获取某技能的速度
1.1 grokking是什么 Aggregating curves of different skills lead to an overall loss curve.[1]
如上图在训练开始时模型记忆了训练数据但测试精度比较低并且没有变化。随着训练的进行从第35k步到第45k步有一个相变期模型突然从记忆过渡到泛化在测试集上显示出 100% 的准确率。学习过程中的这种阶段性变化被称为“grokking”。
1.2 speed of grokking和loss函数的优缺点是什么
通常预训练模型评估指标下一个单词预测损失考虑到它与无损压缩的联系信息量很大但是loss函数并不能反映其在具体下游任务上的性能表现。
本文提到的评估指标考虑speed of grokking摸索速度模型获得特定技能的速度可能是一个不错的选择替代指标。
说明模型学习不同粒度技能的速度是不一样的例如以下技能的难易程度不一样模型能够学会解决这些问题所需要的时间也不一样通过比较不同data engineering方法学习同一技能的速度speed of grokking可能是一个不错的评估方式。
不同粒度的技能对比
单一技能如两位数加法 难度低学习速度块聚合技能一位数加法两位数加法两位数减法…… 难度中模型所需要的学习时间中等下游表现GSM8k 数学作业题表现 难度大模型所需要的学习时间最长
2 数据因素对speed of grokking的影响
本节主要讨论观察到的影响学习速度的数据因素重点关注data format, mixture, and curriculum 这几个方面对模型的影响。
2.1 Format of data训练数据格式对模型的影响 Different format of the data gives different speed of learning. Also note that they are the same data — same equation same answer, only the formats are different.[2]
数据说明
Plain没有任何COT中间结果Reverse倒过来Simplified Scratchpad提供部分中间COT推理结果作为训练数据Detailed Scratchpad提供详细的COT推理结果作为训练数据
结果
利用越详细的COT中间结果来训练模型模型学习的速度越快。并不是其他Format of data不能学习到最终的结果234的精度最后都到100%了而是看谁的学习速度最快。
2.2 Curriculum of data数据课程按照一定的课程顺序编排训练数据使模型学到的效果最佳 什么是data curriculum
假设我们想要模型具备文本生成和代码生成能力我们有 10B 文本和 10B 代码计算资源只允许我们训练 10B 数据。希望使模型的代码生成能力最强。以下是三种可能的解决方案
方法1仅限代码直接馈送10B代码数据方法2均匀混合将5B文本和5B代码数据均匀混合然后将它们同时输入模型方法3data curriculum先输入5B文本然后输入5B代码
哪一个能表现得最好
如果模型从文本数据中学习的技能对代码数据没有帮助那么我们可以直接执行方法1仅利用代码数据来 训练模型就像StarCoder和AlphaCode的情况一样。如果模型从文本数据中学习的技能可以转移到代码数据中那么我们可能想做方法2均匀混合如果学习代码技能需要模型先有文本技能也就是说文本和代码之间有依赖关系并且文本必须先有那么我们需要做方法3data curriculum数据课程。Codex 和 CodeLLaMA 就是这种情况尽管他们可能不是故意选择这样做的。
参考结论 Different source of data induces different skills. Training on a particular ordering of data can give faster learning speed than training on skill-specific data.[3]
a想提高skill 3任务的效果对比只在skill 3数据上训练和在skill 123数据上训练发现在skill 123任务上训练收敛的速度更快。
b想提高skill 1任务的效果对比只在skill 1数据上训练和在skill 12数据上训练发现在skill 12任务上训练收敛的速度更快。
c想提上Spanish QG的效果对比只在Spanish语料和同时在【spanish、English】语料训练发现在【spanish、English】语料收敛速度慢点但是最终效果更好。
dstance detection任务也是在stance detection和text matching数据上同时修炼最终的效果更好。
总结叠加其他类型的数据按照一定顺序来训练模型可能比只在单一任务上训练效果更好收敛速度更快。
2.3 Mix ratio各部分数据比例对模型的影响
LLaMA各部分数据占比 LLaMA data mix ratio. This ratio down weights code data like Github and StackExchange, also it down weights paper data like Arxiv.[4]
总结
LLaMA数据中Github的数据占比不高他的coding表现也不太好而starcode大部分采用code数据训练在coding task上效果比较好。LLaMA数据中Paper类的训练数据像Arxiv比较少看起来科学推理效果也不高而Galactica模型大部分采用papers的数据在科学推理上效果比较好。
不同的mix ratio可能造成不同的speed of learning Different mix ratio of data improves speed of learning.[5]
结论好的混合比例pile提上了模型的表现使其有更好的学习曲线让模型能给更快的从数据中进行学习。
2.4 Caveatmodel scaling模型尺寸大小对数据工程的影响小于30B模型上data engineering有效果不代表大于70B的模型上该方法也会有效果
例如代码数据真的能提升模型的推理能力吗
7B模型添加代码数据后可以提升符号推理像Symbolic reasoning, like BABI and BBH-Algorithmic的效果以及提升符号数据和语言数据的翻译能力像such as structure-to-text or text-to-sql能力。70B模型对BBH-Algorithmic效果没有提升代码数据对自然语言推理像Natural language reasoning, like BBH-Language数据效果没有提升对数学推理像Math reasoning, like GSM8K的效果也没有提升。
总结代码数据对小模型像7B模型的推理能力可能有一定帮助但对大模型70B就没有帮助了。一些其他的观察也有出现这样的情况。如果真是这样那可能不需要来做数据工程了像data format / curriculum / mix ratio都没必要再做了只需要做一些数据清洗工作就够了。
3 其他
3.1 不同skll学习曲线和整体loss曲线的关系 Aggregating curves of different skills lead to an overall loss curve.[6]
总结
单技能的学习曲线通常表现出相变形状在某个时间节点突然顿悟了模型学习不同skill的speed是不同的集成多个skill到一块我们可以获得一个平滑的log形状的loss曲线说明loss函数可能只能反映一个整体的表现而非每个具体task的效果。
3.2 loss和single-skill accuracy评价指标的优缺点 LOSS优点可预测和整体表现强相关能解释成压缩比例。缺点不能直接翻译成下游任务的表现。Single-skill accuracymeso or macro level只能衡量single skill的效果。其他可能的metrics 与能力方向很好地结合比如推理Aligns well with a direction of capability (say reasoning)可以从第一原理推导出来如信息论Can be derived from first principles (like information theory)衡量我们与“真正的生成过程”的接近程度例如某种相互信息 Measures how close we are to the “true generative process”, like some sort of mutual information
3.3 模型学习是真正人类生存语言的过程而非记住数据以随机数生成为例
说明这里以随机数无损压缩揭示了模型学习真实的生成的过程说明模型是学习生成过程而非随机生成的100B或者50B的随机数
随机数生成算法。例如[Python随机数生成算法](https://github.com/python/cpython/blob/3.11/Lib/random.py)有904行代码31.4 kb 磁盘内存。使用此算法生成 100B 伪随机数。将这100B随机数发送给朋友并要求朋友对其进行压缩。在不了解底层生成过程算法的情况下如果使用一些常见的压缩软件例如 gzip他们最终可能会得到 50B 左右的文件压缩率很低。如果以某种方式弄清楚了随机数生成算法和初始种子只需存储算法和种子只需要 31.4kb 磁盘内存这是极高的压缩比。大型神经网络及其学习算法类似于上述过程使用大量观察来恢复底层生成过程数据生成算法。压缩比/训练损失越高他们恢复潜在生成过程的可能性就越大。
三、总结
本文回顾了语言模型学习的一些现象grokking, log-linear scaling law, emergent abilities以及影响学习速度的数据因素data format, mix ratio, and curriculum数据格式、混合比例和课程。
总结1: 数据工程的目标是建立一种理论并指导我们做数据以及其他重要的学习因素以便我们可以在没写一行代码时就可预测每项任务的最终表现而不仅仅是预训练损失。例如OpenAI 报道称在 GPT-4 的开发过程中他们在实验前预测了 HumanEval 的性能。我们相信这种预测可以通过一个未知定理来统一该定理能够预先预测所有下游性能。
总结2: 不同的data format, mix ratio, and curriculum确实可能会提升模型的学习速度甚至最终的效果。例如为了提升代码能力code-LLaMA2先在文本数据上训练然后在代码数据上训练。
总结3: 一些数据工程对小模型有提升但不意味着在大尺寸的模型上也有效果。例如code数据只对7B大小的模型的推理能力有帮助对70B的模型效果没有提升。
模型4: 语言模型学习的是真正的语言生成过程而非记住数据。这里以随机数压缩的例子说明模型之所以能够学习是因为模型学习在无损压缩的角度下近似真实的生成过程。
总结5: 不同skill模型学习的speed是不一样的模型的loss函数不能真正反映模型学习各种task的能力它只是一个整体的表现评估指标。
四、参考
[1] Michaud E J, Liu Z, Girit U, et al. The quantization model of neural scaling[J]. arXiv preprint arXiv:2303.13506, 2023.
[2] Lee N, Sreenivasan K, Lee J D, et al. Teaching Arithmetic to Small Transformers[J]. arXiv preprint arXiv:2307.03381, 2023.
[3] Chen M F, Roberts N, Bhatia K, et al. Skill-it! A Data-Driven Skills Framework for Understanding and Training Language Models[J]. arXiv preprint arXiv:2307.14430, 2023.
[4] Touvron H, Martin L, Stone K, et al. Llama 2: Open foundation and fine-tuned chat models[J]. arXiv preprint arXiv:2307.09288, 2023.
[5] Xie S M, Pham H, Dong X, et al. DoReMi: Optimizing Data Mixtures Speeds Up Language Model Pretraining[J]. arXiv preprint arXiv:2305.10429, 2023.
[6] Michaud E J, Liu Z, Girit U, et al. The quantization model of neural scaling[J]. arXiv preprint arXiv:2303.13506, 2023.
五、更多文章精读
LLama2详细解读 | Meta开源之光LLama2是如何追上ChatGPT的
大模型开源之光LLaMA2今天发布了再来读下LLaMA1原文吧
Meta AI | 指令回译如何从大量无标签文档挖掘高质量大模型训练数据
TOT(Tree of Thought) | 让GPT-4像人类一样思考
OpenAI Let’s Verify Step by Step详细解读 进技术交流群请添加我微信:FlyShines
请备注昵称公司/学校研究方向否则不予通过
如果觉得文章能够帮助到你点赞是对我最好的支持!