大语言模型(LLM)入门级选手初学教程

链接:https://llmbook-zh.github.io/

前言:

  • GPT发展:GPT-1 2018 -->GPT-2&GPT-3(扩大预训练数据和模型参数规模)–> GPT-3.5(代码训练、人类对齐、工具使用等)–> 2022.11 ChatGPT(对话形式)–> 2023.3 GPT-4 --> GPT-4V(多模态能力)
  • 两个要点
    • Transformer 架构能够拓展到百亿、千亿甚至万亿参数规模,并将预训练任务统一为预测下一个词这一通用学习范式 ;
    • 数据质量与数据规模的重视

大语言模型发展的时间线:
在这里插入图片描述

背景与基础知识

一、引言

1.1 何为大语言模型(Large Language Model, LLM)

  • 通过规模扩展(如增加模型参数规模或数据规模)通常会带来下游任务的模型性能提升,大规模的预训练语言模型(175B 参数的GPT-3 和540B 参数的PaLM)在解决复杂任务时表现出了与小型预训练语言模型(例如330M 参数的BERT 和1.5B 参数的GPT-2)不同的行为,GPT-3 可以通过“上下文学习”(In-Context Learning, ICL)的方式来利用少样本数据解决下游任务,这种大模型具有但小模型不具有的能力通常被称为“涌现能力”(Emergent Abilities)。
  • 语言模型发展的四个阶段:
    在这里插入图片描述

1.2 大语言模型的能力特点

  • 较为丰富的世界知识:超大规模的文本数据训练,充分学习到丰富的世界知识,无需微调
  • 较强的通用任务解决能力:基于大规模无标注文本的下一个词元预测任务本质上可以看作一个多任务学习过程
  • 较好的复杂任务推理能力:回答知识关系复杂的推理问题,解决涉及复杂数学推理过程的数学题目
  • 较强的人类指令遵循能力:提示学习
  • 较好的人类对齐能力:安全性,目前广泛采用的对齐方式是基于人类反馈的强化学习技术,通过强化学习使得模型进行正确行为的加强以及错误行为的规避,进而建立较好的人类对齐能力
  • 可拓展的工具使用能力:会受到所采用的归纳假设以及训练数据的限制,无法有效回答涉及到预训练数据时间范围之外的问题,并且对于数学中的数值计算问题也表现不佳;可以通过微调、上下文学习等方式掌握外部工具的使用,如搜索引擎与计算器
  • 长程对话的语义一致性、对于新任务的快速适配、对于人类行为的准确模拟等

1.3 大语言模型关键技术概览

  • 规模扩展:超大规模语言模型能够展现出一些小型语言模型不具备的能力特点,如上下文学习能力、思维链能力等
  • 数据工程:GPT-2给出通过在海量文本上进行下一个词预测的优化,使得模型能够学习到丰富的语义知识信息,进而通过文本补全的方式解决各种下游任务。
    • 全面的采集,拓宽高质量的数据来源
    • 精细的清洗,尽量提升用于大模型训练的数据质量
  • 高效预训练,大规模分布式训练算法优化大语言模型的神经网络参数,并行策略及效率优化方法【(3D 并行(数据并行、流水线并行、张量并行)、ZeRO(内存冗
    余消除技术
    )等】,分布式优化框架:DeepSpeed&Megatron-LM。由于大语言模型的训练需要耗费大量的算力资源,通常需要开展基于小模型的沙盒测试实验,进而确定面向大模型的最终训练策略,提升训练稳定性和优化效率,如混合精度训练
  • 能力激发,设计合适的指令微调以及提示学习进行激发或诱导
    • 指令微调:使用自然语言表达的任务描述以及期望的任务输出对于大语言模型进行指令微调,提升模型在未见任务上的泛化能力(无法向大模型注入新的知识,训练大模型学会利用自身所掌握的知识与信息进行任务的求解)
    • 提示学习:设计合适的提示策略去诱导大语言模型生成正确的问题答案,上下文学习、思维链提示,可以通过逐步求解提升模型在复杂任务上的表现
  • 人类对齐:经过海量无标注文本预训练的大语言模型可能会生成有偏见、泄露隐私甚至对人类有害的内容。3H 对齐标准,即Helpfulness(有用性)、Honesty(诚实性)和Harmlessness(无害性)。与人类主观感知相关,很难直接建立形式化的特定优化目标。提出基于人类反馈的强化学习算法(Reinforcement Learning from Human Feedback, RLHF),将人类偏好引入到大模型的对齐过程中。
    • 训练奖励模型 :区分模型输出质量好坏
    • 强化学习算法来指导语言模型输出行为的调整,让大语言模型能够生成符合人类预期的输出,不过由于强化学习算法优化复杂,出现使用监督微调的对齐方式,从而简化RLHF 优化过程的算法(DPO)。
  • 工具使用:受限于预训练数据所提供的信息,无法有效推断出超过数据时间范围以及覆盖内容的语义信息;工具调用能力主要是通过指令微调以及提示学习两种途径实现,而未经历过特殊训练或者缺乏有效提示的大语言模型则很难有效利用候选工具

二、基础介绍

2.1 大语言模型的构建过程

  • 大规模预训练
  • 指令微调与人类对齐
    • “指令微调”(也叫做有监督微调,Supervised Fine-Tuning, SFT),使用任务输入与输出的配对数据进行模型训练,可以使得语言模型较好地掌握通过问答形式进行任务求解的能力。一般需要数十万到百万规模的指令微调数据。对于算力资源的需求相对较小。
    • 基于人类反馈的强化学习对齐方法RLHF(Reinforcement Learning from Human Feedback),在指令微调后使用强化学习加强模型的对齐能力,需要训练一个符合人类价值观的奖励模型(Reward Model)。需要标注人员针对大语言模型所生成的多条输出进行偏好排序,并使用偏好数据训练奖励模型,用于判断模型的输出质量。

2.2 扩展法则
可预测的扩展(Predictable Scaling)::使用小模型的性能去预估大模型的性能,或者使用大模型的早期训练性能去估计训练完成后的性能

  • KM 扩展法则:模型规模(𝑁)、数据规模(𝐷)和计算算力(𝐶)之间的幂律关系
    在这里插入图片描述
    N、D、C分别对应于非嵌入参数数量、训练数据数量和实际的算力开销。
  • Chinchilla 扩展法则
    2.3 涌现能力
    定义:当模型扩展到一定规模时,模型的特定任务性能突然出现显著跃升的趋势,远超过随机水平。
  • 代表性的涌现能力:
    • 上下文学习:在提示中为语言模型提供自然语言指令和多个任务示例,无需显式的训练或梯度更新,仅输入文本的单词序列就能为测试样本生成预期的输出。
    • 指令遵循:通过指令微调,大语言模型可以在没有使用显式示例的情况下按照任务指令完成新任务,有效提升了模型的泛化能力。
    • 逐步推理:用思维链(Chain-of-Thought, CoT)提示策略来加强推理性能。可以在提示中引入任务相关的中间推理步骤来加强复杂任务的求解。
  • 涌现能力与扩展法则的关系
    两种不同的模型性能提升趋势(持续改进v.s. 性能跃升)
    • 扩展法则使用语言建模损失来衡量语言模型的整体性能,整体上展现出了较为平滑的性能提升趋势,具有较好的可预测性
    • 涌现能力通常使用任务性能来衡量模型性能,整体上展现出随规模扩展的骤然跃升趋势,不具有可预测性
      2.4 GPT 系列模型的技术演变
      在这里插入图片描述
  • 早期探索:
    • GPT-1(Generative Pre-Training):预测下一个Token任务,无监督预训练和有监督微调相结合的范式。与BERT同期,与BERT-Base参数相当,性能没有优势,未引发关注;
    • GPT-2:沿用GPT-1架构,参数规模扩大至1.5B,使用大规模网页数据集WebText 进行预训练,GPT-2 旨在探索通过扩大模型参数规模来提升模型性能,并且尝试去除针对特定任务所需要的微调环节。使用无监督预训练的语言模型来解决各种下游任务,进而不需要使用标注数据进行显式的模型微调。𝑃(output|input, task)——根据输入和任务信息来预测输出。输入、输出、任务信息均通过自然语言描述,后续求解则是任务方案(或答案)的文本生成问题。“如果无监督语言建模经过训练后具有足够的能力复原全部世界文本,那么本质上它就能够解决各种任务”。
  • 规模扩展
    • GPT-2可看成是无监督多任务学习器,效果逊色于有监督微调
    • GPT-3对模型参数规模进行大幅扩展至175B,在下游任务中初步展现出了一定的通用性(通过上下文学习技术适配下游任务),为后续打造更为强大的模型确立了关键的技术发展路线。
    • GPT-3提出上下文学习,上下文学习可以指导大语言模型学会“理解”自然语言文本形式描述的新任务,从而消除了针对新任务进行微调的需要。模型预训练是在给定上下文条件下预测后续文本序列,模型使用则是根据任务描述以及示例数据来推理正确的任务解决方案。
  • 能力增强
    • 代码数据训练:GPT-3对编程问题和数学问题求解不好,推出Codex,在大量GitHub 代码数据集合上微调的GPT 模型。GPT-3.5模型是在基于代码训练的GPT 模型(即code-davinci-002)基础上开发 ,对于可用于预训练的数据范围的扩展,可能并不局限于自然语言形式表达的文本数据。
    • 人类对齐:InstructGPT旨在改进GPT-3 模型与人类对齐的能力,建立了基于人类反馈的强化学习算法,即RLHF 算法。这对安全部署非常重要。
  • 性能跃升
    • ChatGPT:沿用了InstructGPT训练技术, 对于对话能力进行了针对性优化。并支持了插件机制
    • GPT-4:由单一文本模态扩展到了图文双模态,为期六个月的迭代对齐(在基于人类反馈的强化学习中额外增加了安全奖励信号),GPT-4 对恶意或挑衅性查询的响应更加安全。
    • GPT-4V、GPT-4 Turbo,讨论了与视觉输入相关的风险评估手段和缓解策略。GPT-4 Turbo 扩展了知识来源(拓展到2023 年4 月),支持更长上下文窗口(达到128K),优化了模型性能(价格更便宜),引入了若干新的功能(如函数调用、可重复输出
      等)。

三、大语言模型资源

3.1 公开可用的模型检查点或API

  • 公开可用的通用大语言模型检查点
    • LLaMA 和LLaMA-2:LLaMA 2023.2,包括7B、13B、30B 和65B ,开源。13B超越了175B的GPT-3。65B模型在2,048 张80G 显存的A100 GPU 上训练了近21 天。由于开源且性能优秀,以其为基座模型进行微调或继续预训练,衍生出了众多变体模型。7月,LLaMA-2诞生,7B、13B、34B(未开源)和70B,可用于商用。扩充了预训练的词元量(1T到2T),上下文长度翻了一倍(达到4,096 个词元),引入了分组查询注意力机制。LLaMA-2 作为基座模型 + 预训练-有监督微调-基于人类反馈的强化学习 = LLaMA-2 Chat(面向对话),更好的模型性能,也更加安全。
    • ChatGLM【智谱AI+清华】:现在已经迭代到了ChatGLM-3,参数量均为6B,

四、数据准备

4.1 数据来源

  • 网页:大规模网页文本数据进行预训练,有助于大语言模型获取多样化的语言知识,并增强其自然语言理解和生成的能力
  • 书籍:内容更正式与详实,篇幅较长,模型可以积累丰富的语言知识,还能加强其长程语义关系的建模
  • 多语文本:在多语言语料库上训练过的大语言模型能够更好地建立多语言间的语义关联,为跨语言理解与对话任务提供支持
  • 科学文本:构建科学文本语料的常用方法是收集arXiv 论文、科学教材、数学网页等科学资源,特殊符号需要预处理
  • 代码:Stack Exchange 等编程问答社区的数据& GitHub 等开源项目仓库

4.2 数据预处理(消除低质量、冗余、无关甚可能有害的数据)
在这里插入图片描述

  • 质量过滤:

    • 基于启发式规则的方法:语种、简单统计指标(语料中标点符号分布、符号与单词比率、句子长度)、困惑度(Perplexity)等文本生成的评估指标来检测和删除表达不自然的句子、关键词(重复文本模式)
    • 基于分类器的方法:训练用于判别数据质量的文本分类器,进行预训练语料的清洗;为了减少数据的误筛(训练样本中低资源),可以使用多个分类器进行联合过滤或召回;轻量级模型(FastText)、可微调的预训练语言模型、闭源大模型API。
    • 基于启发式的方法,规则简洁,能够迅速过滤10M 乃至100M 级别的庞大文档集。基于分类器有更高的精确度,但需要消耗更多的计算资源。为了平衡效率与准确性,可以针对具体数据集合进行清洗策略的灵活组合。初筛&精筛。
  • 敏感内容过滤(有毒内容或隐私信息)

    • 过滤有毒内容:基于分类器,训练数据如Jigsaw 评论数据集合,包括“有毒”、“严重有毒”、“有威胁”、“侮辱性”、“暴力”以及“身份仇恨”等六个类别,需要在精确度和召回率之间平衡
    • 过滤隐私内容:直接且有效的方法是使用启发式方法,如关键字识别,来检测和删除这些私人信息,邮箱地址、IP 地址以及电话号码
      在这里插入图片描述
  • 数据去重:大语言模型具有较强的数据拟合与记忆能力,很容易习得训练数据中的重复模式,可能导致对于这些模式的过度学习。这些数据也可能导致训练过程的不稳定(训练损失震荡),可能导致训练过程崩溃。

    • 计算粒度:句子级别、文档级别和数据集级别。a. 删除包含重复单词和短语的低质量句子。b. 依靠单词或𝑛 元词组的重叠这类表层特征,来衡量文档的重叠比率,进而检测和删除包含相似内容的重复文档。c.去除那些具有高度相似甚至完全一致内容的文档
    • 用于去重的匹配方法:精确匹配(完全相同)与近似匹配算法(基于相似性度量),
  • 数据对预训练效果的影响 - 含有噪音、有毒和重复数据的低质量语料库进行预训练,会严重损害模型性能

    • 如果模型在包含事实性错误的、过时的数据上进行训练,那么它在处理相关主题时可能会产生不准确或虚假的信息,这种现象被称为"幻象"。
    • 重复数据影响巨大:将语料中0.1% 的数据重复100 次后,基于这些包含重复数据语料训练的800M 参数模型,其性能仅能达到在无重复语料上训练的400M 参数模型的相同表现。“双下降现象”:模型训练损失先经历下降然后出现升高再下降的现象
    • 有偏、有毒、隐私内容:
    • 数据集污染:训练集与测试集重叠

4.3 词元化

  • BPE:BPE 算法从一组基本符号(例如字母和边界字符)开始,迭代地寻找语料库中的两个相邻词元,并将它们替换为新的词元,这一过程被称为合并。合并的选择标准是计算两个连续词元的共现频率,也就是每次迭代中,最频繁出现的一对词元会被选择与合并。合并过程将一直持续达到预定义的词表大小。
    在这里插入图片描述
    在这里插入图片描述
    字节级别的BPE(Byte-level BPE, B-BPE)是BPE 算法的一种拓展,实现更细粒度的分割,且解决了未登录词问题(GPT-2 、BART 和LLaMA)。GPT-2 的词表大小为50,257 ,包括256 个字节的基本词元、一个特殊的文末词元以及通过50,000 次合并学习到的词元。通过使用一些处理标点符号的附加规则,GPT2 的分词器可以对文本进行分词,不再需要使用“<UNK>” 符号

  • WordPiece 分词: BERT,与BPE类似,通过迭代合并连续的词元,但是合并的选择标准略有不同。会首先训练一个语言模型,并用这个语言模型对所有可能的词元对进行评分。然后,在每次合并时,它都会选择使得训练数据的似然性增加最多的词元对。
    在这里插入图片描述

  • Unigram:从语料库的一组足够大的字符串或词元初始集合开始,迭代地删除其中的词元,直到达到预期的词表大小。T5 和mBART,pretrained一元语言模型,EM算法优化该模型,使用动态规划算法高效地找到语言模型对词汇的最优分词方式。

  • SentencePiece支持BPE 分词和Unigram 分词,分词器特性:无损重构(准确无误地还原为原始输入文本),高压缩率(经过分词处理后的词元数量应尽可能少,从而实现更为高效的文本编码和存储)
    在这里插入图片描述

4.4 数据调度 - 混合比例&训练顺序
在这里插入图片描述

  • 数据混合:
    在这里插入图片描述
    • 数据混合策略(配比):增加数据源的多样性;优化数据混合(手动/可学习方式);优化特定能力
    • 数据课程:指按照特定的顺序安排预训练数据进行模型的训练:代码能力,数学能力.长文本能力.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/896790.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c++初阶--string类(使用)

大家好&#xff0c;许久不见&#xff0c;今天我们来学习c中的string类&#xff0c;在这一部分&#xff0c;我们首先应该学习一下string类的用法&#xff0c;然后再试着自己去实现一下string类。 在这里&#xff0c;我使用的是这个网站来查找的string类&#xff0c;这里面的内容…

mysql--基本查询

目录 搞定mysql--CURD操作&#xff0c;细节比较多&#xff0c;不难&#xff0c;贵在多多练 1、Create--创建 &#xff08;1&#xff09;单行插入 / 全列插入 &#xff08;2&#xff09;插入否则替换 &#xff08;3&#xff09;替换 2、Retuieve--select 1&#xff09;全…

Android系統Audio hal

一.Android系統Audio hal简介 Android系统的音频硬件抽象层(HAL)是系统与硬件之间的桥梁,允许音频应用和服务访问底层音频硬件,而无需直接与硬件交互。 主要组件: 音频 HAL 接口:定义了应用和服务如何调用音频硬件的规范。典型的音频操作包括播放、录制、音量控制等。 …

day5:权限管理

一&#xff0c;权限概述 什么是权限 合适的人干合适的事情 权限的作用 根据用户的等级&#xff0c;分配对应的权利&#xff0c;完成不同用户对不同资源的相关操作。 权限的分类 r&#xff08;4&#xff09;读w&#xff08;2&#xff09;写x&#xff08;1&#xff09;执行 …

深入理解Agent:从0实现function call

Function的调用时Agent实现很重要的一步&#xff0c;只有 理解了function call这个原理才可以更好的创建Agent。 我将不使用任何langchain等框架或者coze等平台&#xff0c;从0开始构建一个可以调用function的Agent。 源代码已经上传github&#xff1a;https://github.com/as…

美摄科技云服务解决方案,方案成熟,接入简单

美摄科技作为视频处理领域的先锋&#xff0c;凭借其强大的技术实力和深厚的行业经验&#xff0c;推出了成熟的云服务解决方案&#xff0c;为轻量化视频制作开辟了全新的道路。 一、成熟方案&#xff0c;接入无忧 美摄科技云服务解决方案的最大亮点在于其成熟度和易用性。我们…

(六) 进程控制

(六) 进程控制 ps(1) 命令可以帮助我们分析本章中的一些示例&#xff0c;所以简单介绍一些参数的组合方式&#xff0c;更详细的信息请查阅 man 手册。 ps axf 主要用于查看当前系统中进程的 PID 以及执行终端(tty)和状态等信息&#xff0c;更重要的是它能显示出进程的父子关系…

WSL2 构建Ubuntu系统-轻量级AI运行环境

环境&#xff1a;Win11 软件&#xff1a;WSL2 安装环境&#xff1a;Ubuntu 22.04 检查电脑是否开启虚拟化 打开&#xff1a;任务管理器->性能->CPU CPU 开启虚拟化&#xff08;通常默认是开启的&#xff0c;如果没有开启需要BIOS开启&#xff09; 虚拟化设置&#xff0…

uni-app 扫码插件推荐:基于支付宝 mPaaS 扫码组件开发,支持 Android 和 iOS

一. 前言 之前说到&#xff0c;我的一个 uni-app 项目遭到用户吐槽&#xff1a;“你们这个 App 扫码的正确率太低了&#xff0c;尤其是安卓的设备。经常性的扫码扫不出来&#xff0c;就算是扫出来了&#xff0c;也是错误的结果&#xff01;” 面对以上这个问题&#xff0c;我…

Vert.x,认证与授权 - HTTP基本认证

几乎所有的线上系统都离不开认证和授权&#xff0c;Vert.x auth相关组件提供了丰富(Session&#xff0c;JTW, OAuth&#xff0c;…)&#xff0c;便捷的认证和授权支持。 当前&#xff0c;使用最多是Web应用&#xff0c;所以在后续讨论中&#xff0c;都是关于Vert.x auth在Web应…

【大数据分析与挖掘模型】matlab实现——非线性回归预测模型

一、实验目的 掌握有关非线性回归的理论知识&#xff0c;通过变量代换把本来应该用非线性回归处理的问题近似转化为线性回归问题&#xff0c;并进行分析预测。 二、实验任务 对非线性回归实例进行编码计算&#xff0c;实例如下&#xff1a; 三、实验过程 1.运行非线性回归中…

【TFR-Net】基于transformer重建网络

abstract&#xff1a; 提高对数据缺失的鲁棒性已经成为多模态情感分析&#xff08;MSA&#xff09;的核心挑战之一&#xff0c;MSA旨在从语言、视觉和声学信号中判断说话者的情感。在目前的研究中&#xff0c;针对不完全模态特征的MSA&#xff0c;提出了基于平移的方法和张量正…

Unity-Editor扩展,引擎管理AudioClip,音乐音效快捷播放功能

目录 选择一个Audio 音频文件即会 关键在于三个快捷模式 播放&#xff0c; 自动播放 循环播放 根本不需要Editor扩展开发 没找到虚幻引擎的audio 的管理是怎么样的 参考&#xff1a; 本来&#xff0c;觉得没有快捷方式&#xff0c;播放很不爽 想自定义搞一个&#xff…

全面了解 NGINX 的负载均衡算法

NGINX 提供多种负载均衡方法&#xff0c;以应对不同的流量分发需求。常用的算法包括&#xff1a;最少连接、最短时间、通用哈希、随机算法和 IP 哈希。这些负载均衡算法都通过独立指令来定义&#xff0c;每种算法都有其独特的应用场景。 以下负载均衡方法&#xff08;IP 哈希除…

aws 把vpc残留删除干净

最近忘了把vpc 删干净导致又被收了冤大头钱 在删除vpc 的收发现又eni在使用&#xff0c;但是忘了是哪个资源在占用 先用命令行把占用的资源找出来停掉 使用 AWS 命令行界面&#xff08;CLI&#xff09;来查看 VPC 的使用情况 列出子网&#xff1a; aws ec2 describe-subnets …

【Java】常用方法合集

以 DemoVo 为实体 import lombok.Data; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;Data ExcelIgnoreUnannotated public class ExportPromoteUnitResult {private String id;ExcelProperty(value &qu…

数据结构6——树与二叉树

在本专栏的前五篇中&#xff0c;我们学习了顺序表、链表、栈和队列&#xff0c;他们本质上都是线性表。有线性表就存在非线性表&#xff0c;现在我们就来学习一下结构更复杂的非线性表——树。 1. 树的概念与结构 1.1 树的概念 树是一种非线性的数据结构&#xff0c;它是由n&…

Go语言Gin框架的常规配置和查询数据返回json示例

文章目录 路由文件分组查询数据库并返回jsonservice层controller路由运行效果 启动多个服务 在 上一篇文章《使用Go语言的gorm框架查询数据库并分页导出到Excel实例》 中主要给大家分享了较多数据的时候如何使用go分页导出多个Excel文件并合并的实现方案&#xff0c;这一篇文章…

Linux之远程连接服务器

远程连接服务器的类型 文字接口 明文传输&#xff1a;Telnet 23、RSH等&#xff0c;目前非常少用&#xff1b; 加密传输&#xff1a;SSH为主&#xff0c;已经取代明文传输 ssh提供两个服务器功能&#xff1a;1.类似于telnet&#xff1b;2.类似于ftp的sftp-serve…

特斯拉自动驾驶出租车计划变成泡影?联想与Meta合作,推出面向PC的个人AI智能体AI Now|AI日报

文章推荐 Swarms Corporation创始人Kye Gomez实锤OpenAI多智能体Swarm抄袭其成果&#xff01;&#xff5c;AI日报 今日热点 中国海油“海能”人工智能模型正式发布 近日&#xff0c;由中国海油与中国电信、科大讯飞等企业合作打造“海能”人工智能模型正式推出。 中国海油“…