码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 三个方面浅析数据对大语言模型的影响


    合集 - AI(75)
    1.CutMix&Mixup详解与代码实战2023-04-272.绘画手残党的福音:涂鸦线稿秒变绝美图像2023-05-053.探讨AIGC的崛起历程,浅析其背后技术发展2023-05-104.创新 = 颠覆?AI创新如何做大蛋糕2023-07-195.实践分析丨AscendCL应用编译&运行案例2023-07-266.Inpaint Anything:一键进行多种图像修补2023-07-277.RT-DETR:可以满足实时性要求的DETR模型2023-07-318.华为云盘古大模型辅助药物设计,西交大的新型抗生素研发之路2023-08-019.解决大模型“开发难”,昇思MindSpore自动并行技术应用实践2023-08-0310.一文详解TextBrewer2023-08-0811.基于Pair-wise和CrossEncoder训练单塔模型2023-08-0912.基于卷积神经网络的MAE自监督方法2023-08-1113.晋级名单公布!“域见杯”复赛今日火热开启2023-08-1614.CutLER:一种用于无监督目标检测和实例分割的方法2023-08-1715.带你读论文丨S&P21 Survivalism: Living-Off-The-Land 经典离地攻击2023-08-1816.使用 UCS(On-Premises) 管理您的GPU资源池,释放AI大模型算力潜能2023-08-2117.带你读论文丨Fuzzing漏洞挖掘详细总结 GreyOne2023-08-2218.用案例带你认识决策树,解锁洞察力2023-08-2219.带你读论文丨S&P2019 HOLMES Real-time APT Detection2023-08-2320.中国图数据库,领导者!2023-08-2421. 【干货】华为云图数据库GES技术演进2023-08-2422.带你上手基于Pytorch和Transformers的中文NLP训练框架2023-08-2823.开放同飞,华为云发布盘古大模型全域协同生态2023-08-3124.Ascend C保姆级教程:我的第一份Ascend C代码2023-08-3125.纯干货!一文get昇腾Ascend C编程入门全部知识点2023-09-0126.3天上手Ascend C编程丨带你认识Ascend C基本概念及常用接口2023-09-0527.PanGu-Coder2:从排序中学习,激发大模型潜力2023-09-0628.昇腾实践丨ATC模型转换动态shape问题案例2023-09-0829.3天上手Ascend C编程丨通过Ascend C编程范式实现一个算子实例2023-09-1130.华为云盘古大模型加码生物医药,为行业插上“数字翅膀”2023-09-1431.如何用华为云ModelArts平台玩转Llama22023-09-1532.教你用API插件开发一个AI快速处理图片小助手2023-09-1933.大模型时代,如何快速开发AI应用2023-09-2034.超详细API插件使用教程,教你开发AI垃圾分类机器人2023-09-2035.三步实现BERT模型迁移部署到昇腾2023-09-2136.手敲,Ascend算子开发入门笔记分享2023-10-0937.全域Serverless+AI,华为云加速大模型应用开发2023-10-0938.教你如何基于MindSpore进行ChatGLM微调2023-10-1639.从基础到实践,回顾Elasticsearch 向量检索发展史2023-10-2340.昇腾CANN 7.0 黑科技:大模型训练性能优化之道2023-10-2341.知识图谱与大模型相结合的3种方法,1+1>22023-11-0142.IoT与鸿蒙、低代码、生成式AI,引爆技术浪潮——华为云开发者日南京站成功举办2023-11-0143.带你认识一下多模态对比语言图像预训练CLIP2023-11-0244.昇腾迁移丨4个TensorFlow模型训练案例解读2023-11-0645.MoE:LLM终身学习的可能性2023-11-0746.理论+实践详解最热的LLM应用框架LangChain2023-11-0747.昇腾CANN DVPP硬件加速训练数据预处理,友好解决Host CPU预处理瓶2023-11-0948.昇腾CANN 7.0 黑科技:大模型推理部署技术解密2023-11-1049.从HumanEval到CoderEval: 你的代码生成模型真的work吗?2023-11-1350.告别繁琐,ModelArts一键解决车牌号识别难题2023-11-1651.四载磨砺,一群青年“识瘤者”以AI助力医疗创新2023-11-1752.一种全新的日志异常检测评估框架:LightAD2023-11-2153.学生开发者勇担青年使命,用AI守护少数人的“视界”2023-11-2154.教你如何使用PyTorch解决多分类问题2023-11-2255.三大基础方案和AI出海计划重磅发布!加速盘古大模型生态发展2023-11-2356.带你了解大语言模型的前世今生2023-11-2757.基于AI的架构优化:创新数据集构造法提升Feature envy坏味道检测与重构准确率2023-12-0158.一种全新的日志异常检测评估框架:LightAD2023-12-0459.从HumanEval到CoderEval: 你的代码生成模型真的work吗?2023-12-0460.揭秘华为研发代码大模型是如何实现的2023-12-0561.大语言模型底层架构丨带你认识Transformer2023-12-0662.深入解析LLaMA如何改进Transformer的底层结构2023-12-0763.语言模型:GPT与HuggingFace的应用2023-12-0864.一文掌握Ascend C孪生调试2023-12-1265.大模型那么火,教你一键Modelarts玩转开源LlaMA(羊驼)大模型2023-12-1566.大语言模型训练数据常见的4种处理方法2023-12-1967.听6位专家畅谈AI大模型落地实践:场景和人才是关键01-1168.从工程化角度,详解鹏程·脑海大模型训练过程01-1269.如何使用MindStudio轻松搞定大模型全流程开发01-1970.带你熟悉NLP预训练模型:BERT01-22
    71.三个方面浅析数据对大语言模型的影响01-25
    72.4个大语言模型训练中的典型开源数据集02-0173.动手实践丨轻量级目标检测与分割算法开发和部署(RK3568)02-2674.手把手带你快速上手香橙派AIpro03-0175.想做大模型开发前,先来了解一下MoE03-04
    收起

    本文分享自华为云社区《浅谈如何处理大语言模型训练数据之二数据影响分析》,作者:码上开花_Lancer。

    由于大语言模型的训练需要巨大的计算资源,通常不可能多次迭代大语言模型预训练。千亿级参数量的大语言模型每次预训练的计算需要花费数百万元人民币。因此,在训练大语言模型之前,构建一个准备充分的预训练语料库尤为重要。

    本篇文章中,将从数据规模、数量质量以及数据多样性三个方面分析数据对大语言模型的性能的影响。需要特别的说明的是,由于在千亿参数规模的大语言模型上进行实验的成本非常高,很多结论是在100 亿甚至是10 亿规模的语言模型上进行的实验,其结果并不能完整的反映数据对大语言模型的影响。此外,一些观点仍处于猜想阶段,需要进一步验证。需要各位读者甄别判断。

    1.数据规模影响

    随着大语言模型参数规模的增加,为了有效地训练模型,需要收集足够数量的高质量数据,在文献 针对模型参数规模、训练数据量以及总计算量与模型效果之间关系的研究之前,大部分大语言模型训练所采用的训练数据量相较于LLaMA 等最新的大语言模型模型都少很多。

    表1给出了模型参数量和预训练数据量对比。在Chinchilla 模型提出之前,大部分的大语言模型都在着重提升模型的参数量,但是所使用的训练语料数量都在3000 亿词元左右,LAMDA 模型所使用的训练语料数量甚至仅有1680 亿。虽然Chinchilla 模型参数量仅有LAMDA 模型一半大小,但是训练语料的词元数量却达到了1.4 万亿词元,是LaMDA 模型训练语料的8 倍多。

    表1模型参数量与训练语料数量对比

    DeepMind 的研究人员在文献 中给出了他们通过训练参数范围从7000 万到160 亿,训练词元数量从5 亿到5000 亿不等的400 多个语言模型所得到分析结果。研究发现,如果模型训练要达到计算最优(Compute-optimal),模型大小和训练词元数量应该等比例缩放,即模型大小加倍则训练词元数量也应该加倍。为了验证该分析结果,他们使用与Gopher 语言模型训练相同的计算资源,根据上述理论预测了Chinchilla 语言模型的最优参数量与词元数量组合。最终确定Chinchilla语言模型为700 亿参数,使用了1.4 万亿词元进行训练。通过实验发现,Chinchilla 在很多下游评估任务中都显著地优于Gopher(280B)、GPT-3(175B)、Jurassic-1(178B)以及Megatron-Turing NLG(530B)。

    图1.1 给出了在同等计算量情况下,训练损失随参数量的变化情况。针对9 种不同的训练参数量设置,使用不同词元数量的训练语料,训练不同大小的模型参数量,使得最终训练所需浮点运算数达到预定目标。对于每种训练量预定目标,图中左侧绘制了平滑后的训练损失与参数量之间的关系。从左图中可以看到,训练损失值存在明显的低谷,这意味着对于给定训练计算量目标,存在一个最佳模型参数量和训练语料数量配置。利用这些训练损失低谷的位置,还可以预测更大的模型的最佳模型参数量大小和训练词元数量,如图3.5中间和右侧所示。图中绿色线表示使用Gopher训练计算量所预测的最佳模型参数量和训练数据词元数量。还可以使用幂律(Power Law)对计算量限制、损失最优模型参数量大小以及训练词元数之间的关系进行建模。C 表示总计算量、Nopt表示模型最优参数量、Dopt 表示最优训练词元数量,他们之间的关系符合一下关系:

    图1.1 在同等计算量情况下,训练损失随参数量的变化情况

    LLaMA 模型在训练时采用了与文献相符的训练策略。研究发现,70 亿参数的语言模型在训练超过1 万亿个词元(1T Tokens)后,性能仍在持续增长。因此,Meta 的研究人员在LLaMA2模型训练中,进一步增大了训练数据量,训练数据量达到了2 万亿词元。文献给出了不同参数量模型在训练期间,随着训练数据量的增加,模型在问答和常识推理任务上的效果演变过程,如图2.1所示。研究人员分别在TriviaQA、HellaSwag、NaturalQuestions、SIQA、WinoGrande以及PIQA 等6 个数据集上进行了测试。可以看到,随着训练数据量的不断提升,模型在分属两类任务的6 个数据集上的性能都在稳步提高。通过使用更多的数据和更长的训练时间,较小的模型也可以实现良好的性能。

    图1.2 LLaMA 模型训练期间在问答和常识推理任务上效果演变

    文献对不同任务类型所依赖的语言模型训练数量进行了分析。针对分类探查(ClassifierProbing)、信息论探查(Info-theoretic Probing)、无监督相对可接受性判断(Unsupervised Relative Acceptability Judgment)以及应用于自然语言理解任务的微调(Fine-tuning on NLU Tasks)等四类任务,基于不同量级预训练数据的RoBERTa模型在上述不同类型任务上的效果进行了实验验证和分析。分别针对预训练了1M、10M、100M 和1B 个单词的RoBERTa 模型进行了能力分析。研究发现,模型只需要约10M 到100M 个单词的训练,就可以可靠地获得语法和语义特征。但是需要更多的数据量训练才能获得足够的常识知识和其他技能,并在典型下游自然语言理解任务中取得较好的结果。

    2 数据质量影响

    数据质量通常被认为是影响大语言模型训练效果的关键因素之一,包含大量重复的低质量数据甚至导致训练过程不稳定,造成模型训练不收敛。现有的研究表明训练数据的构建时间、包含噪音或有害信息情况以及数据重复率等因素,都对语言模型性能存在较大影响。截止到2023 年9 月的研究都得出了相同的结论,即语言模型在经过清洗的高质量数据上训练数据可以得到更高的性能。

    文献介绍了Gopher 语言模型在训练时针对文本质量进行的相关实验。如图2.1所示,具有140 亿参数的模型在OpenWebText、C4 以及不同版本的MassiveWeb 数据集上训练得到的模型效果对比。他们分别测试了利用不同数据训练得到的模型在Wikitext103 单词预测、Curation Corpus摘要以及LAMBADA 书籍级别的单词预测三个下游任务上的表现。图中Y 轴表示不同任务上的损失,数值越低表示性能越好。从结果可以看到,使用经过过滤和去重后的MassiveWeb 数据训练得到的语言模型在三个任务上都远好于使用未经处理的数据训练得到的模型。使用经过处理的MassiveWeb 数据训练得到的语言模型在下游任务上的表现也远好于使用OpenWebText 和C4 数据集训练得到的结果。

    图2.1 Gopher 语言模型使用不同数据质量训练效果分析

    GLaM 语言模型构建时,同样也对训练数据质量的影响的进行了分析。该项分析同样使用包含17 亿参数的模型,针对下游少样本任务性能进行了分析。使用相同超参数,对通过原始数据集和经过质量筛选后的数据训练得到的模型效果进行了对比,实验结果如图2.2所示。可以看到,使用高质量数据训练的模型在自然语言生成和自然语言理解任务上表现更好。特别是,高质量数据对自然语言生成任务上的影响大于在自然语言理解任务。这可能是因为自然语言生成任务通常需要生成高质量的语言,过滤预训练语料库对于语言模型的生成能力至关重要。文献[86] 的研究强调了预训练数据的质量在下游任务的性能中也扮演着关键角色。

    Google Research 的研究人员针对数据构建时间、文本质量、是否包含有害信息开展了系统研究。使用具有不同时间、毒性和质量以及领域组成的数据,训练了28 个15 亿参数的仅解码器结构语言模型。研究结果表明,语言模型训练数据的时间、内容过滤方法以及数据源对下游模型行为具有显著影响。

    图2.2 GLaM 语言模型使用不同数据质量训练效果分析

    针对数据时效性对于模型效果的影响问题,研究人员们在C4 语料集的2013、2016、2019 和2022 等不同版本上训练了四个自回归语言模型。对于每个版本,从Common Crawl 数据上删除了截止年份之后爬取的所有数据。使用新闻、Twitter 和科学领域的评估任务来衡量时间错位的影响。

    这些评估任务的训练集和测试集按年份划分,分别在每个按年份划分的数据集上微调模型,然后在所有年份划分的测试集上进行评估。图2.3给出了使用4 个不同版本的数据集所训练得到的模型在5 个不同任务上的评测结果。热力图颜色(Heatmap Colors)根据每一列进行归一化得到。从图中可以看到,训练数据和测试数据的时间错配会在一定程度上影响模型的效果。

    图2.3 训练数据和测试数据之间的时间错位情况下性能分析

    Anthropic 的研究人员针对数据集中的重复问题开展了系统研究。为了研究数据重复对大语言模型的影响,研究人员构建了特定的数据集,其中大部分数据是唯一的,但是只有一小部分数据被重复多次,并使用这个数据集训练了一组模型。研究发现了一个强烈的双峰下降现象,即重复数据可能会导致训练损失在中间阶段增加。例如,通过将0.1% 的数据重复100 次,即使其余90% 的训练数据保持不变,一个800M 参数的模型的性能也可能降低到与400M 参数的模型相同。此外,研究人员还设计了一个简单的复制评估,即将哈利·波特(Harry Potter)的文字复制11 次,计算模型在第一段上的损失。在仅有3% 的重复数据的情况下,训练过程中性能最差的轮次仅能达到参数量为1/3 的模型的结果。

    文献 中对大语言模型的记忆能力进行分析,根据训练样例在训练数据中出现的次数,显示了记忆率的变化情况,如图2.4所示。可以看到,在训练中只见过一次的样例,Palm 模型的记忆率为0.75%,而见过500 次以上的样例的记忆率超过40%。这也在一定程度上说明重复数据对于语言模型建模具有重要影响。这也可能进一步影响使用上下文学习的大语言模型的泛化能力。由于Palm 方法仅使用了文档级别过滤,因此片段级别(100 个以上Token)可能出现非常高的重复次数。

    图2.4 大语言模型记忆能力评

    3.数据多样性影响

    来自不同领域、使用不同语言、应用于不同场景的训练数据具有不同的语言特征,包含不同语义知识。通过使用不同来源的数据进行训练,大语言模型可以获得广泛的知识。表3.2给出了LLaMA模型训练所使用数据集合。可以看到LLaMA 模型训练混合了大量不同来源数据,包括网页、代码、论文、图书、百科等。针对不同的文本质量,LLaMA 模型训练针对不同质量和重要性的数据集设定了不同的采样概率,表中给出了不同数据集在完成1.4 万亿词元训练时,每个数据集的采样轮数。

    Gopher 模型训练过程对数据分布进行了消融实验,验证混合来源对下游任务的影响情况。

    表3.1 LLaMA 模型所使用数据集合

    针对MassiveText 子集设置了不同权重的数据组合,并用于训练语言模型。利用Wikitext103、LAMBADA、C4 和Curation Corpus 测试不同权重组合训练得到的语言模型在下游任务上的性能。为了限制数据组合分布范围,实验中固定了Wikipedia 和GitHub 两个数据集合的采样权重。对于Wikipedia,要求对训练数据进行完整的学习,因此将采样权重固定为2%。对于GitHub,采样权重设置为3%。

    对于剩余的的四个子集(MassiveWeb、News、Books 和C4)设置了7 种不同的组合。图3.2给出了7 种不同子集采样权重训练得到Gopher 模型在下游任务上的性能。可以看到,使用不同数量子集采样权重训练,所获得模型效果差别很大。在所有任务中表现良好且在Curation Corpus 上取得最佳表现的绿色配置是10% 的C4、50% 的MassiveWeb、30% 的Books 和10% 的News。增加书籍数据的比例可以提高模型从文本中捕获长期依赖关系的能力,因此可以降低LAMBADA 语料集上的损失。而使用更高比例的C4 数据集则有助于在C4 验证集上获得更好的表现。

    图3.2 采用不同采样权重训练得到的Gopher 语言模型在下游任务上的性能

    以上就是从数据规模、数量质量以及数据多样性三个方面分析数据对大语言模型的性能的影响的介绍,在构建大语言模型时,数据的质量和多样性对于提高模型的性能至关重要。同时,为了推动大语言模型的研究和应用,学术界和工业界也开放了多个针对大语言模型的开源数据集。下一篇文章中,我还会介绍典型的开源数据集合,敬请关注!

     

    点击关注,第一时间了解华为云新鲜技术~

     

  • 相关阅读:
    1000套web前端期末大作业 HTML+CSS+JavaScript网页设计实例 企业网站制作【建议收藏】
    每个人都应该去学写作
    CentOs7 彻底卸载清除docker
    Java中的继承——详解
    10月27日,每日信息差
    卫龙更新招股书:年营收48亿 创始人刘卫平家族色彩浓厚
    场景应用:如何保证缓存与数据库的双写一致性?
    Llama-7b-Chinese本地推理
    吃透 Spring 系列—AOP部分
    uni-app使用阿里巴巴图标库icon详细步骤--避免踩坑
  • 原文地址:https://www.cnblogs.com/huaweiyun/p/17986429
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号