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的智能体框架包括以下核心组件:
-
用户请求 - 用户的问题或请求
-
智能体/大脑 - 充当协调者的智能体核心
-
规划 - 协助智能体规划未来的行动
-
无反馈规划
- 思维链&思维树:分步骤细分复杂问题为一系列更小、更简单的任务
- 思维链&思维树:分步骤细分复杂问题为一系列更小、更简单的任务
-
有反馈规划
- 模型能够根据过去的行动和观察反复思考和细化执行计划
- 模型能够根据过去的行动和观察反复思考和细化执行计划
-
-
记忆 - 管理智能体的过往行为
- 短期记忆 - 关注于当前情境的上下文信息,是短暂且有限的,通常通过上下文窗口限制的学习实现。
- 长期记忆 - 储存智能体的历史行为和思考,通过外部向量存储实现,以便快速检索重要信息。
- 混合记忆 -通过整合短期和长期记忆
如何系统的去学习大模型LLM ?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
事实上,抢你饭碗的不是AI,而是会利用AI的人。
继科大讯飞、阿里、华为
等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?
与其焦虑……
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。
针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈
一、LLM大模型经典书籍
AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。
二、640套LLM大模型报告合集
这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)
三、LLM大模型系列视频教程
四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)
LLM大模型学习路线 ↓
阶段1:AI大模型时代的基础理解
-
目标:了解AI大模型的基本概念、发展历程和核心原理。
-
内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践
- L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
-
目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
-
内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例
- L2.2 Prompt框架
- L2.3 流水线工程
- L2.4 总结与展望
阶段3:AI大模型应用架构实践
-
目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
-
内容:
- L3.1 Agent模型框架
- L3.2 MetaGPT
- L3.3 ChatGLM
- L3.4 LLAMA
- L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
-
目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
-
内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
这份 LLM大模型资料
包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈