大模型知识大全1-基础知识【大模型】

  • 系统学习大模型的记录
  • https://github.com/LLMBook-zh/LLMBook-zh.github.io

大模型简介

 历史我就不写了,简单说说大模型的应用和特点。人类使用大模型其实分为两个主要部分:能力和知识。其中绝大部分人利用了大模型中蕴含的知识和总结的能力,当做全能搜索引擎使用,我认为这仅仅是大模型使用的皮毛,大模型拥有的能力在微调后可以胜任大部分人类的工作,在大部分工作中可以当做人来使唤。
 大模型在能力方面大概分为以下几点:

  • 具有较强的通用任务解决能力
  • 具有较好的复杂任务推理能力
  • 具有较强的人类指令遵循能力(chat模型)
  • 具有较好的人类对齐能力(RLHF)
  • 具有可拓展的工具使用能力

 我认为,大模型的所有知识和能力来源是通过其庞大的参数量进行不同的训练方法产生的:预训练中的数据提供的通用知识和MASK训练其基础能力,继续训练中补充专业知识,Instruction tuning诱发模型本身的能力使其对齐人类的问题和训练新能力,RLHF对齐人类道德价值观念和表达方式。

以后的介绍流程

 主要分为以下部分来进行介绍,这一部分主要介绍基础知识。

  • 现有数据和API整理
  • 预训练技术
  • 微调与对齐
  • 大模型使用部分(部署)
  • 评测
  • 应用

基础知识

训练流程介绍

pre-train

 为了预训练大语言模型,需要准备大规模的文本数据,并且进行严格的清洗,去除掉可能包含有毒有害的内容(大模型之间架构的区别并不大,主要是数据质量和SFT,RLHF的差距),最后将清洗后的数据进行词元化(Tokenization)流,并且切分成批次(Batch),用于大语言模型的预训练。由于大语言模型的能力基础主要来源于预训练数据,因此数据的收集与清洗对于模型性能具有重要的影响。收集高质量、多源化的数据以及对于数据进行严格的清洗是构建大语言模型关键能力的重中之重,需要大模型研发人员的高度关注。目前的开源模型普遍采用 2∼3T 规模的词元进行预训练,并有趋势进一步扩大这一规模。这一过程对于算力需求量极高,一般来说训练百亿模型至少需要百卡规模的算力集群(如 A100-80G)联合训练数月时间(与具体的算力资源相关);而训练千亿模型则需要千卡甚至万卡规模的算力集群,对于算力资源的消耗非常惊人。
 尽管整体的预训练技术框架非常直观,但是实施过程中涉及到大量需要深入探索的经验性技术,如数据如何进行配比、如何进行学习率的调整、如何早期发现模型的异常行为等。预训练过程需要考虑各种实施细节,而这些细节有很多并没有公开发表的经验可循,需要研发人员具有丰富的训练经验和异常处理能力,避免大规模训练开始以后进行回退和反复迭代,从而减少算力资源的浪费,提升训练成功的几率。大语言模型的研发看似是一个算力需求型的工程,实际上相关人才是最重要的。可以说,一个大语言模型项目的核心训练人员的能力最后会决定模型的整体水平。

对齐和指令微调

  • 简单来讲,pre-train后的模型只具备续写能力,完全不能直接解决任务、对话等功能,其中蕴含的是大量的知识和语序信息,需要设计SFT来进行诱发;SFT是给固定问题一个标准答案,和小模型中的FT差不多,可以增强模型解决复杂问题的能力;RLFH是将大模型与人类的语言和生活习惯、道德观念对齐的步骤。(原来GPT3刚上线的时候可以骗出来一些危险和违法言论,现在骗不出来了)
     【经过大规模数据预训练后的语言模型已经具备较强的模型能力,能够编码丰富的世界知识,但是由于预训练任务形式所限,这些模型更擅长于文本补全,并不适合直接解决具体的任务。尽管可以通过上下文学习(In-Context Learning, ICL)等提示学习技术进行适配,但是模型自身对于任务的感知与解决能力仍然较为局限。这里做一个简单的类比。预训练后的模型就像进入工作岗位的毕业生,尽管学习了很多通用的文化课,具备了一定的实习经验,但是仍然需要加强面向特定岗位的工作能力,并且深入了解工作岗位所涉及的相关要求。因此,用人单位往往需要设置特定的培训环节,对于新入职的人员针对业务场景以及所需要的技术进行专门提升。相似地,当预训练结束后,通常需要对于大语言模型进行微调与对齐,使之更好地被用于任务求解,为人类服务。
     目前来说,比较广泛使用的微调技术是“指令微调”(也叫做有监督微调,Supervised Fine-tuning, SFT),通过使用任务输入与输出的配对数据进行模型训练,可以使得语言模型较好地掌握通过问答形式进行任务求解的能力。这种模仿示例数据进行学习的过程本质属于机器学习中的模仿学习(Imitation Learning)。给定一个特定任务,虽然可能存在很多解答方式,模仿学习旨在加强对于标准答案(即师傅的示范动作)的复刻学习。一般来说,指令微调很难教会大语言模型预训练阶段没有学习到的知识与能力,它主要起到了对于模型能力的激发作用,而不是知识注入作用。与预训练相比,指令微调通常来说需要的指令实例数据规模要小的多。通常来说,数十万到百万规模的指令微调数据能够有效地激发语言模型的通用任务解决能力,甚至有些工作认为数千条或者数万条高质量指令数据也能达到不错的微调效果。因此,指令微调对于算力资源的需求相对较小。一般情况下,若干台单机八卡(A100-80G)的服务器就能在一天或数天的时间内完成百亿模型的指令微调,当指令数据规模较大的时候可以进一步增加所需要的算力资源。这个过程还可以进一步加入多轮次的对话数据来增强模型的人机对话能力。
     除了提升任务的解决能力外,还需要将大语言模型与人类的期望、需求以及价值观对齐(Alignment),这对于大模型的部署与应用具有重要的意义。OpenAI在 2022 年初发布了 InstructGPT [28] 的学术论文,系统地介绍了如何将语言模型进行人类对齐。具体来说,主要引入了基于人类反馈的强化学习对齐方法 RLHF(Reinforcement Learning from Human Feedback),在指令微调后使用强化学习加强模型的对齐能力。在 RLHF 算法中,需要训练一个符合人类价值观的奖励模型(Reward Model)。为此,需要标注人员针对大语言模型所生成的多条输出进行偏好排序,并使用偏好数据训练奖励模型,用于判断模型的输出质量。由于强化学习需要维护更多的辅助模型进行训练,通常来说对于资源的消耗会多于指令微调,但是也远小于预训练阶段所需要的算力资源。
     目前还有很多工作试图通过消除奖励模型的使用,或其他使用 SFT 方式来达到与 RLHF 相似的效果,从而简化模型的对齐过程。】

规模拓展

  • 原理论认为,每一个参数可以存储2bit信息,但是这在大模型上好像不太适用LLaMA-2 (7B) 的模型就使用了 2T 的词元进行训练,很多更小的模型也能够通过使用超大规模的预训练数据获得较大的模型性能提升。这种现象的一个重要原因是由于 Transformer 架构具有较好的数据扩展性,到目前为止,还没有实验能够有效验证特定参数规模语言模型的饱和数据规模(即随着数据规模的扩展,模型性能不再提升)。
  • 可预测的扩展(Predictable Scaling):在实践中,扩展法则可以用于指导大语言模型的训练,通过较小算力资源可靠地估计较大算力资源投入后的模型性能,这被称为可预测的扩展 。可以预测扩展后的模型的性能和训练情况。(其实就是用7b先跑跑,小模型可以一定程度代表大规模模型的效果)
  • 任务层面的可预测性. 现有关于扩展法则的研究大多数是基于语言建模损失进行的,就是预测下一个词是什么的损失。在实践中,损失较小的模型在下游任务重表现更好,因为语言建模能力可以认为是模型能力的总和考量。但是有些任务随着loss的下降表现变差(逆向扩展现象)。所以损失越小不一定代表下游任务效果越好,但是对于大部分任务是正相关的。

涌现能力

  • 实际上就是模型随着参数量增长逐渐可以解决某些较为复杂的问题。
  • 24
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值