1.引言
本文以DataWhale大模型开源教程为学习路线,进行一整个大模型的入门操作
什么是语言模型
语言模型是一种对词元序列(token)的概率分布,可以用于评估文本序列的合理性并生成新的文本。
从生成文本的方式来看,LM(language modle)可以简单的分为:
自回归模型 | 非自回归模型 | |
---|---|---|
特点 | 逐字生成文本,每个词的生成都依赖于上文,关联性好 | 一次性生成整个文本序列,不捕捉上文信息 |
优点 | 内容质量高 | 生成速度快 |
缺点 | 生成速度慢 | 质量不稳定 |
常见模型 | RNN (LSTM, GRU)、Transformer (GPT seriels) | Transformer with parallel decoding、Autoregressive-to-Non-autoregressive Translation (ANT) |
应用场景 | 文本生成、对话系统(求质) | 机器翻译、文本摘要(求速) |
语言模型的发展历史
-
1948,香农的信息理论
- 引入了熵(entropy)的概念,𝐻(𝑝)=Σ𝑥𝑝(𝑥)log(1𝑝(𝑥))
- 衡量我们平均需要多少信息(用比特数来表示)来描述这个事件
- 事件越确定(e.g.抛硬币),熵越小;越不确定(e.g.鉴赏美),熵越大
- 在语言模型中,熵也可以用来衡量一个模型对语言的掌握程度
- 熵越低:对语言的理解越深刻
- 熵越高: 模型对语言的理解越模糊,生成的文本可能出现语法错误或语义不通
-
N-gram模型
- N 代表一个数字,基于马尔可夫假设(即一个词的出现只与前面的N-1个词有关),gram 指的是一组连续的单词
- N-gram 就是由N个单词(N-1+1)组成的连续片段
- 如果n太小,那么模型将无法捕获长距离的依赖关系。如果n太大,统计上将无法得到概率的好估计(即使在“大”语料库中,几乎所有合理的长序列都出现0次)
-
神经语言模型(RNN–包括LSTMs、Transformers)
- 将单词映射到连续的向量空间中,然后通过神经网络来学习这些向量之间的关系
- 神经网络模型是一个黑盒,很难解释模型的决策过程
N-gram模型 | 神经语言模型 | |
---|---|---|
学习方式 | 背诵课文,只能记住有限的几个词的组合 | 理解语言,能够根据上下文理解整个句子的含义 |
复杂度 | 基于统计的简单模型 | 基于神经网络的复杂模型 |
优点 | 直观易实现 | 能更好地捕捉长期依赖关系,上下文长度不受n的限制,泛化能力强(举一反三) |
缺点 | 上下文信息长度有限 | 训练复杂,可解释性差 |
联系 | 基础 | 改进 |
2.LLM的能力
以下探讨均以GPT3为对象
GPT3作为一个极具代表性的大型语言模型,在NLP领域(语言建模、问答、翻译、算术、新闻文章生成等)表现出了超越了现有技术的最高水平,而在其他未特殊训练领域,只展示出了平均水平。
2.1 Adaptation:语言模型到任务模型的转化
在这里,语言模型是对词元序列的概率分布,能评估序列,在一定提示下还能生成序列;而任务被定义为从输入映射到输出(如问答任务)。
主要有两种方式来进行这种Adaptation:
训练(有监督学习) | 提示(上下文学习) | |
---|---|---|
具体方式 | 训练一个新模型 | 对任务的描述建一个或一组提示(上下文信息)直接输入模型 |
分类 | 探针/finetune微调/轻量级微调 | zero零/one单/few shot少样本学习 |
学习思路 | 题海战术,学习输入与输出之间的映射关系 | 侧重文本理解,弄懂上下文信息以推理 |
数据需求 | 大量标注数据 | 相对较少 |
可解释性 | 较强,简单模型可直接规则提取 | 较弱,但利用注意力机制、添加扰动和可视化工具,可将“黑盒”进行一定程度的解释 |
增加模型大小和训练样本的数量可以提升 GPT-3 的性能,同时也不能忽视提示学习的重要性
3.模型架构
语言模型可以看作一个黑箱(black box)
从形象化的概念理解上来说当前大语言模型(大:模型规模/参数量级大),可以根据输入需求的语言描述(prompt)生成符合需求的结果(completion)
分词和模型架构是构建大语言模型的两个重要方面
- 分词为模型提供了高质量的输入
- 模型架构则决定了模型的学习能力和表达能力
在构建大语言模型时,需要综合考虑分词方式和模型架构,以达到最佳的性能
3.1 token分词
词元(token)一般在NLP中,是指一个文本序列中的最小单元
分词是指将字符串文本转换为词元序列,常见的分词方法有三:
-
基于空格的分词
- 适用于英文,但对于单词之间没有空格的中文,或者存在很长复合词的德语,仅通过空格来判断单词会带来许多问题
-
Byte Pair Encoding (BPE) 分词
-
字节对编码算法
-
通过学习训练数据中的频率特征来生成词元序列的方法
-
步骤包括
- 初始化词汇表
- 查找共同出现次数最多的元素对
- 替换所有出现并添加新符号到词汇表中
-
-
Unigram 模型
- 基于目标函数的分词模型
- 其目标函数旨在捕捉好的分词的特征,并通过迭代优化和剪枝,优化词汇表,剔除对似然值贡献较小的词汇,以减少数据的稀疏性
- 最终得到一个较为准确和合理的词汇表
3.2 模型架构
上下文向量表征 (Contextual Embedding):
- 作为模型处理的先决条件,其关键是将词元序列表示为响应的上下文(周围的单词)的向量表征
三种语言模型类型(详细介绍见#6):
-
解码端(Decoder-Only)
- GPT系列,常见的自回归语言模型
- 生成上下文向量表征,但不能直接用于生成文本
- 缺点在于只能单调的依赖左侧上下文
-
编码端(Encoder-Only)
- BERT、RoBERTa
- 通常用于分类任务(也被称为自然语言理解任务)
- 给定提示,生成上下文向量表征,并对下一个词元生成一个概率分布
-
编码-解码端(Encoder-Decoder)
- Transformer模型,以及BART、T5等模型
- 结合二者优点:可以使用双向上下文向量表征来处理输入,并生成输出
- 缺点就说需要更多的特定训练目标
3.3 Transformer架构机器延伸
深度学习的美妙之处在于能够创建构建模块,就像我们用函数构建整个程序一样
Transformer 作为深度学习的一种创新模式,是真正推动大型语言模型发展的序列模型。其关键是在传统的序列模型(如RNN)的基础上引入了自注意力机制(Self-Attention),这种机制将查询与序列中的每个元素进行匹配,并形成一个关于词元位置的概率分布,使得模型能够更好地捕捉序列数据中的长距离依赖关系
Transformer架构关键概念包括:
-
注意力机制
- 使得所有的词元都可以“相互通信”
-
残差连接(ResNet)
- 残差(跳跃)连接
- x1:L+f(x1:L)
- 如果f的梯度消失,梯度仍然可以通过x1:L进行计算
-
归一化
- 接收一个向量并确保其元素不会太大
- ResNet和归一化的应用有效解决梯度消失的问题,提高模型的训练稳定性
-
位置嵌入
- 根据定义,词元的嵌入不依赖于其在序列中的位置,否则句子位置的角度忽略了上下文的信息,产生不合理的信息
- 因此,将位置信息添加到嵌入中
4.新的模型架构
上一小节中,提到神经语言模型的核心接口是一个将token序列映射到上下文嵌入的编码器,这种稠密的Transformer模型架构是目前开发大语言模型的主要范式。
但是,随着数据的扩张,扩展这种模型并非易事,需要数据、模型和流水并行,需要重新思考如何构建大语言模型。
现在提出了扩展大语言模型的两种新型模型架构:
-
混合专家模型(Mixture of Experts, MoE)
- 通过创建一组专家,每个输入仅激活一小部分专家,从而提高了模型的规模上限
- 类似一个由专家组成的咨询委员会,每个人都有不同的背景。每个专家都是一个线性分类器,引入平衡机制来确保所有专家都能得到充分利用
- 混合专家非常有利于并行。每个专家都可以放置在不同的机器上,降低训练和部署的成本
将该思想应用于语言模型:因前馈层对于每个token是独立的,将每个前馈网络转变为混合专家(MoE)前馈网络
-
基于检索的模型
- 将外部知识库与语言模型结合起来,在生成文本时,模型可以从知识库中检索相关信息,从而提高生成文本的质量和相关性,克服稠密Transformer的缩放限制
- 如果有人问你一个问题,你会进行网络搜索,并阅读搜索得到的文档以得出答案
混合专家模型 | 基于检索的模型 | |
---|---|---|
核心思想 | 将模型拆分成多个专家模型 | 将模型与外部知识库结合 |
优势 | 参数效率高,性能提升,可扩展性强 | 知识增强,适应性强 |
挑战 | 路由机制设计,训练稳定性 | 检索效率,知识整合 |
应用场景 | 自然语言处理,计算机视觉 | 问答系统,文本摘要 |
5.模型背后的数据
任何机器学习方法的起点都是训练数据,接下来讨论这些模型是如何构建的
网络是寻找这种文本的自然场所,但不是唯一场所。这将是我们主要关注的焦点,例如Common Crawl,由于其便利性,它已经成为许多模型如T5、GPT-3和Gopher的标准数据源
但网络数据存在无意义文本和模板文本、数据代表性不足、偏见和数据污染等问题,因此需要对数据进行筛选和策划。
-
WebText、OpenWebText数据集
WebText数据集被用于训练GPT-2模型
WebText数据集没有公开发布,OpenWebText数据集在理念上复制了WebText的构建方法,尽可能地复现WebText的数据特性和结构。
-
Colossal Clean Crawled Corpus(C4)
C4语料库被用来训练T5模型。
-
Benchmark的数据污染问题
Benchmark(基准测试)是用来评估模型性能的标准数据集
数据污染指的是Benchmark数据集中存在与训练数据重叠、泄露或存在其他形式的偏差,导致模型在污染的Benchmark上表现良好,但在实际应用中表现不佳的情况。
-
GPT-3的数据集
在处理数据时,GPT-3采用了模糊去重的方法(检测13-gram重叠,如果在少于10个训练文档中出现,则移除窗口或文档),并从基准数据集中移除了数据。
-
The Pile数据集
网络爬虫之外的较小的高质量数据源(如学术和专业资源),包含了大量GPT-3数据集未能很好覆盖的信息。
5.2 数据集文档
数据集文档可以帮助数据集创建者反思潜在危害,并帮助使用者了解数据集的适用范围。
实例:
字段 | 描述 |
---|---|
数据集名称 | 中文情感分析数据集 |
数据来源 | 爬取自各大社交媒体平台 |
数据规模 | 100万条评论,包含文本和情感标签 |
5.3 数据生态
数据生态,简单来说就是围绕数据的产生、采集、存储、处理、分析、应用等一系列活动所形成的复杂系统。就像自然生态系统一样,数据生态系统中的各个组成部分相互依存、相互影响,共同推动数据的流动和价值创造。
数据治理提供了一套规则和机制,来管理数据生态中的各个环节,确保数据的质量、安全、合规性。
数据尊严强调对个人数据隐私的尊重,以及对数据使用的伦理约束。只有在尊重数据尊严的前提下,数据生态才能健康发展,避免引发社会伦理问题。
6.模型训练
6.1目标函数
-
解码端(Decoder-Only)
- 计算单向上下文嵌入
- 最大似然函数(Maximum Likelihood Estimation,MLE)
- 通过寻找一组参数,使得模型产生观测数据的概率最大。它帮助模型学习到最优的参数,即生成序列的最大概率,从而生成最可能的输出序列
-
编码端(Encoder-Only)
-
计算双向上下文嵌入
-
掩码语言模型
- 基本思想是通过"加噪"(随机遮蔽),让模型去预测被遮盖的部分
- 因为模型无法简单地通过记忆训练数据中的单词顺序来预测下一个单词,而是必须根据上下文信息来推断,进而学习到词语之间的语义关系、语法结构等深层信息
-
下一句预测
- 目标是预测第二句是否跟随第一句
- 将两个句子输入到模型中,模型会输出一个概率值,表示这两个句子是否为连续的
- 使用交叉熵损失函数来训练模型,目标是最大化正确预测的概率
-
-
编码-解码端(Encoder-Decoder)
- 双向编码输入,自回归解码输出
- 将输入进行编码,然后进行自回归解码
6.2优化算法
-
随机梯度下降(SGD)
- 用于最小化一个函数,通常是模型的损失函数
- 与传统的梯度下降相比,SGD每次迭代只随机抽取一个训练样本,计算其梯度,并更新模型参数
-
Adam(adaptive moment estimation)
- 引入动量(继续朝同一方向移动)
- 参数 θ0 的每个维度都有一个自适应(不同)的步长(受二阶方法启发)
-
AdaFactor
- 不存储 O(m×n) 矩阵,而是存储行和列的和 O(m+n) 并重构矩阵
- 去除动量
- 它被用来训练T5
-
混合精度训练
- 另一种减少存储的方法
-
学习率
- 通常情况下,学习率会随着时间的推移而衰减
- 对于Transformer模型,我们实际上需要通过预热(warmup)提高学习率
-
初始化
7.Adaptation
大型语言模型(LLM)通常在广泛的领域内进行训练,这使得它们在处理与训练数据差异很大的下游任务时可能表现不佳。这些差异可以从格式、主题和时间三个方面来探讨,因此需要适配语言模型以满足各种下游任务的需求。
-
探针(Probing)
- 通过在冻结的语言模型之上训练一个特定任务的预测头来实现适配,即不会对庞大的预训练模型进行任何调整,而是直接将预训练模型的输出作为输入
- 只对一小部分参数进行训练
- 其使用线性的或浅前馈网络来学习预训练模型的输出,并获得分析和理解模型内容表示的能力
-
微调(Fine-tuning)
- 在预训练语言模型的基础上,针对特定任务,对模型的部分或全部参数进行进一步训练的过程。
- 将大型语言模型参数视为下游任务的进一步训练的初始化来实现适配,但其成本高昂,因为需要为每个下游任务保存整个模型
-
轻量级微调(Lightweight fine-tuning)
-
平衡了微调和探测方法的优缺点的适配方法,通过只优化少量参数(模型的<1%)来实现高效的适配,同时保留了模型的表达能力
-
包含提示调整、前缀调整和适配器调整等多种技术,这些技术通过在模型的输入或内部结构上添加可学习的参数来实现对特定任务的适配
-
轻量级微调有许多变体,其中一些主要的方法包括
- 提示调整(Prompt Tuning)
- 前缀调整(Prefix Tuning)
- 适配器调整(Adapter Tuning)
-
8.分布式训练
随着深度学习模型规模的不断扩大,单机训练已经无法满足需求,分布式训练成为必然趋势
常见的并行策略:
-
数据并行
- 将数据进行切分,每个设备上都拥有完整的模型
-
模型并行
- 将模型进行切分,每个设备上都拥有完整的数据
-
流水并行
- 将神经网络切分为多个阶段,并分发到不同的计算设备上
-
混合并行
- 将多种并行策略混用
9.LM的危害
-
性能差异
- 性能差异意味着模型在某些群体中表现更好,在其他群体中表现更差。
- 例如,自动语音识别(ASR)系统在黑人说话者的识别性能要差于白人说话者
-
社会偏见和刻板印象
- 刻板印象是一种特定且普遍存在的社会偏见形式,其中的关联是被广泛持有、过度简化并且一般固定的。对于人类来说,这些关联来自于获得快速的认知启发。它们对于语言技术尤为重要,因为刻板印象是通过语言构建、获取和传播的
- 社会偏见可能导致性能差异,如果大型语言模型无法理解表明反刻板印象关联的数据,则它们在这些数据上的表现可能会较差
-
有害信息
- 有毒性定义为“粗鲁、不尊重或不合理的行为,可能使某人想要离开一场对话”
-
虚假信息
- 误导性信息(Misinformation)指的是不论意图如何,被误导性地呈现为真实的错误信息
- 虚假信息(Disinformation)则是有意为之地呈现错误或误导性信息以欺骗某一特定受众,其中存在对抗性质
10.LM法律
-
版权问题:
- 大模型训练数据来源广泛,其中可能包含大量受版权保护的作品。如何界定模型的原创性与侵权行为之间的界限?
- 模型生成的文本是否享有版权?如果享有,版权归属如何确定?
-
责任问题:
- 大模型生成的内容可能包含虚假信息、歧视性言论等,如何界定模型提供者的责任?
- 如果大模型造成实际损害,谁应承担赔偿责任?
-
隐私问题:
- 大模型训练过程中可能涉及大量个人隐私数据,如何保护这些数据?
- 大模型生成的文本中是否可能泄露个人隐私信息?
-
安全问题:
- 大模型可能被用于生成虚假信息、进行网络攻击等非法活动,如何保障网络安全?
-
伦理问题:
- 大模型的发展可能带来一系列伦理问题,如就业歧视、社会不平等等。
11.环境影响
- 大多数关于人工智能和机器学习对环境影响的工作都集中在温室气体排放上
- 数据中心使用水进行冷却,发电是第二大用水需求,处理水和废水需要电力
- 释放到环境中(空气、水、土壤)的化学物质,可致癌
12.Agent–基于大模型的智能体
一般而言,基于LLM的智能体框架包括以下核心组件:
-
用户请求 - 用户的问题或请求
-
智能体/大脑 - 充当协调者的智能体核心
-
规划 - 协助智能体规划未来的行动
-
无反馈规划
- 思维链&思维树:分步骤细分复杂问题为一系列更小、更简单的任务
- 思维链&思维树:分步骤细分复杂问题为一系列更小、更简单的任务
-
有反馈规划
- 模型能够根据过去的行动和观察反复思考和细化执行计划
- 模型能够根据过去的行动和观察反复思考和细化执行计划
-
-
记忆 - 管理智能体的过往行为
- 短期记忆 - 关注于当前情境的上下文信息,是短暂且有限的,通常通过上下文窗口限制的学习实现。
- 长期记忆 - 储存智能体的历史行为和思考,通过外部向量存储实现,以便快速检索重要信息。
- 混合记忆 -通过整合短期和长期记忆
如何学习AI大模型 ?
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
😝有需要的小伙伴,可以VX扫描下方二维码免费领取🆓
👉1.大模型入门学习思维导图👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
👉2.AGI大模型配套视频👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。
👉3.大模型实际应用报告合集👈
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)
👉4.大模型落地应用案例PPT👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)
👉5.大模型经典学习电子书👈
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
👉6.大模型面试题&答案👈
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓