大模型基础笔记
所属分类 AI
浏览量 17
主要内容
1. Transformer结构
2. 主流大模型
3. 预训练Pre-train过程
4. 后训练Post-train过程
5. 模型压缩与量化
6. 专家模型MoE
7. RAG&Agent
8. 部署&分布式训练&推理加速
9. 模型评估
1. Transformer 结构
Transformer 是现代大模型的核心架构,
于 2017 年在《Attention Is All You Need》中被提出,彻底改变了自然语言处理(NLP)领域的格局 ;
它摒弃了传统 RNN、LSTM 的序列依赖处理方式,采用自注意力机制实现并行计算,大幅提升了模型训练效率和性能 ;
Transformer 整体由Encoder(编码器) 和Decoder(解码器) 两部分组成 ;
Encoder:由 N 个相同的层堆叠而成,每层包含两个子层 ;
第一个子层是Multi-Head Attention(多头注意力),通过将输入分成多个头并行计算注意力,能捕捉不同维度的语义关联;
第二个子层是Feed-Forward Network(前馈神经网络),对每个位置的特征进行独立的线性变换和非线性激活(通常用 ReLU) ;
两个子层都配有残差连接(输入与子层输出相加)和层归一化(稳定训练过程,加速收敛) ;
Decoder:
同样由 N 个相同的层组成,除了包含与 Encoder 相同的两个子层外,
还在多头注意力层前增加了一个Masked Multi-Head Attention(掩码多头注意力),确保生成序列时只能关注当前及之前的位置,避免信息泄露 ;
此外,Decoder 的多头注意力层会以 Encoder 的输出作为 “键” 和 “值”,实现对输入序列的关注 ;
自注意力计算是 Transformer 的核心,其通过计算输入序列中每个元素与其他元素的关联权重(注意力分数),生成加权求和的特征向量 ;
具体公式为:
注意力分数 = softmax ((QK^T)/√d_k) V,其中 Q(查询)、K(键)、V(值)由输入通过线性变换得到,
d_k 是 Q 和 K 的维度,√d_k 用于缩放注意力分数,防止梯度消失 ;
位置编码是 Transformer 处理序列顺序的关键,由于自注意力机制本身不具备时序感知能力,需要在输入嵌入中加入位置信息 ;
常用的位置编码有正弦余弦编码,通过不同频率的正弦和余弦函数生成位置特征,确保模型能捕捉到序列的相对位置关系 ;
2. 主流大模型
随着 Transformer 结构的发展,一系列性能优异的大模型应运而生,按结构和功能可分为以下几类:
GPT 系列(Generative Pre-trained Transformer):
由 OpenAI 推出,采用Decoder-only架构,基于自回归生成模式(从左到右生成文本) ;
从 GPT-1 到 GPT-4,模型参数量从 1.17 亿增长到千亿级,训练数据规模也不断扩大 ;
其核心特点是擅长长文本生成、对话交互等任务,广泛应用于内容创作、聊天机器人等场景 ;
BERT 系列(Bidirectional Encoder Representations from Transformers):
谷歌提出的Encoder-only模型,采用双向编码方式,通过 Masked Language Modeling(MLM)任务学习上下文语义 ;
BERT 能有效捕捉文本的双向依赖关系,在文本分类、命名实体识别、问答等自然语言理解(NLU)任务中表现突出,衍生出 RoBERTa、ALBERT 等优化版本 ;
T5(Text-to-Text Transfer Transformer):
谷歌提出的Encoder-Decoder结构模型,创新性地采用 “Text-to-Text” 框架,将所有 NLP 任务统一转化为文本生成任务(输入和输出均为文本) ;
例如,翻译任务输入 “translate English to French: Hello”,输出 “Bonjour” ;
T5 通过这种统一范式提升了模型的通用性 ;
LLaMA 系列:
Meta 推出的开源 Decoder-only 模型,参数量从 7B 到 65B 不等 ;
其特点是训练数据质量高,在开源社区中被广泛微调,衍生出 Alpaca、Vicuna 等优秀模型,推动了大模型的民主化发展 ;
PaLM(Pathways Language Model):
谷歌的大模型,采用 Decoder-only 架构,参数量达 5400 亿,通过 Pathways 系统实现多任务学习,在多语言理解、逻辑推理等任务中展现出强大能力 ;
3. 预训练 Pre-train 过程
预训练是大模型获取通用知识的关键阶段,目的是让模型从海量无标注数据中学习语言规律、世界知识和推理能力,为后续任务适配奠定基础 ;
数据来源:
预训练数据通常包括大规模文本语料,如书籍(BooksCorpus)、网页文本(Common Crawl)、维基百科(Wikipedia)、论文、小说等 ;
为保证数据质量,会进行去重、过滤低质量内容(如广告、乱码)、多语言数据平衡等处理 ;
预训练任务:不同模型采用的预训练任务不同,常见的有:
Masked Language Modeling(MLM):
BERT 等 Encoder 模型采用,随机掩盖输入文本中的部分 token(如 15% 的词),让模型预测被掩盖的 token,促使模型学习上下文语义关联 ;
Causal Language Modeling(CLM):
GPT 等 Decoder 模型采用,给定前序文本,让模型预测下一个 token,属于自回归任务,能有效训练模型的生成能力 ;
Next Sentence Prediction(NSP):
BERT 辅助任务,判断两个句子是否为连续的上下文,帮助模型学习句子级别的语义关系 ;
Span Prediction:
T5 等模型采用,随机选择文本片段进行掩盖,让模型预测整个片段,更贴近实际生成场景 ;
训练过程:
预训练通常在大规模 GPU/TPU 集群上进行,采用分布式训练策略 ;
关键参数包括 batch size(通常很大,如百万级 token)、学习率(采用线性预热后衰减的调度策略)、训练步数(以亿为单位)等 ;
训练目标是最小化预测损失,通过反向传播更新模型参数 ;
4. 后训练 Post-train 过程
后训练是在预训练基础上,针对具体场景或任务对模型进行适配的过程,目的是让模型在特定任务上表现更优,
主要包括微调(Fine-tuning)和提示学习(Prompt Tuning)等方法 ;
微调(Fine-tuning):
原理:使用有标注的任务数据(如分类、问答数据),在预训练模型的基础上更新全部或部分参数,使模型适应任务分布 ;
流程:冻结预训练模型部分底层参数(保留通用知识),微调上层参数;或采用较小的学习率微调所有参数 ;适用于数据量较充足的场景(如几千到几万样本) ;
优势:在特定任务上性能优异;劣势:不同任务需要单独微调模型,参数存储成本高 ;
提示学习(Prompt Tuning):
原理:通过设计 “提示词(Prompt)” 将任务转化为预训练任务形式(如 CLM),仅微调少量参数(如提示词相关的嵌入层),保持预训练模型主体参数不变 ;
例如,文本分类任务 “判断句子情感” 可转化为 “句子:‘今天天气很好’ ;情感:__”,让模型补全 “积极” ;
优势:参数效率高(多任务可共享基础模型),在小样本场景表现好;劣势:提示词设计对性能影响大,需要领域知识 ;
此外,还有领域自适应微调(Domain Adaptation),在特定领域语料(如医疗、法律)上进行二次预训练,
让模型学习领域专属知识,再进行任务微调,进一步提升领域任务性能 ;
5. 模型压缩与量化
大模型参数量通常达数十亿甚至万亿级,计算和存储成本极高,模型压缩与量化是解决其部署难题的关键技术,
旨在降低模型大小、减少计算量和内存占用,同时尽可能保留模型性能 ;
模型压缩:
知识蒸馏(Knowledge Distillation):
训练一个小模型(学生模型)模仿大模型(教师模型)的输出(如 logits),使小模型继承大模型的知识 ;
通过最小化学生模型与教师模型输出的差异(如 KL 散度)进行训练,适用于各种模型结构 ;
剪枝(Pruning):
移除模型中不重要的参数(如权重接近 0 的连接、贡献小的神经元),分为结构化剪枝(移除整个层或通道)和非结构化剪枝(移除单个权重) ;
结构化剪枝更利于硬件加速,但性能损失可能更大 ;
低秩分解(Low-Rank Factorization):
将模型中的高维权重矩阵分解为低维矩阵的乘积,减少参数数量,例如将一个 d×d 的矩阵分解为 d×k 和 k×d 的矩阵(k < < d) ;
量化(Quantization):
原理:将模型参数和激活值从高精度(如 FP32,32 位浮点数)转为低精度(如 FP16、BF16、INT8、INT4,甚至 INT1),降低存储和计算开销 ;
分类:
权重量化:仅量化模型权重,激活值保持高精度 ;
激活量化:同时量化权重和激活值,压缩效果更显著,但需处理量化误差累积 ;
挑战:低精度量化可能导致模型性能下降,需要采用量化感知训练(QAT)或后量化校准(如 KL 散度校准)等方法减少精度损失 ;
6. 专家模型 MoE
混合专家模型(Mixture of Experts,MoE)
是提升模型容量同时控制计算成本的高效架构,核心思想是 “稀疏激活”—— 每个输入仅由部分 “专家” 处理,而非所有参数参与计算 ;
结构组成:
专家网络(Experts):多个并行的子网络(如 Transformer 层),每个专家负责处理特定类型的输入(如不同语义、不同领域的文本) ;
路由器(Router):
对于每个输入 token,路由器通过注意力或线性层计算其与各专家的匹配分数,
选择 Top-K 个专家(通常 K=1 或 2)处理该 token,未被选中的专家不参与计算 ;
门控机制(Gating):根据路由器输出的分数,对选中专家的输出进行加权求和,得到最终结果 ;
优势:
模型容量可通过增加专家数量大幅提升(参数量与专家数成正比),但计算量仅与 K 和专家数相关(通常 K 远小于专家数),训练和推理成本可控 ;
不同专家可学习不同知识,提升模型对复杂任务的适应能力 ;
典型模型:
GLaM:谷歌提出的 MoE 模型,包含 1.2 万亿参数(1370 亿激活参数),采用 64 个专家,在多个 NLP 任务上超越同规模 dense 模型 ;
Switch Transformer:谷歌后续模型,将 K 设为 1(每个输入只由一个专家处理),进一步降低计算量,参数量达 1.6 万亿 ;
MoE 的挑战在于负载均衡(避免部分专家被过度使用)和通信成本(专家分布在不同设备时的数据传输开销) ;
7. RAG&Agent
RAG 和 Agent 是大模型应用的重要扩展技术,分别解决大模型知识局限和自主决策问题 ;
RAG(Retrieval-Augmented Generation,检索增强生成):
问题背景:大模型存在知识过时(训练数据截止到特定时间)、幻觉(生成错误信息)等问题 ;
原理:在生成回答前,先检索与问题相关的外部知识(如文档、数据库、网页),将检索到的信息作为上下文输入模型,辅助生成更准确、可靠的回答 ;
流程:问题解析→检索(如用向量数据库 FAISS、Milvus,通过语义相似度匹配)→信息整合→生成回答 ;适用于需要最新知识、专业领域知识的场景(如客服、医疗咨询) ;
Agent(智能体):
定义:具备自主规划、记忆、工具使用能力的系统,能在复杂环境中完成目标任务 ;
核心组件:
规划(Planning):将复杂任务分解为子任务,确定执行步骤(如 Chain of Thought 思维链) ;
记忆(Memory):短期记忆(当前对话信息)和长期记忆(可存储的知识) ;
工具调用(Tool Use):调用外部工具(如搜索引擎、计算器、API)获取信息或执行操作 ;
典型应用:AutoGPT(自主完成目标的 AI 助手)、LangChain(构建 Agent 的框架),可用于自动报告生成、代码开发、学术研究等场景 ;
8. 部署 & 分布式训练 & 推理加速
大模型的高效训练和部署需要解决算力、内存、速度等挑战,涉及分布式技术和优化策略 ;
部署:
硬件:主流采用 GPU(如 NVIDIA A100、H100)、TPU(谷歌张量处理器),边缘设备可采用 FPGA、ASIC(如华为昇腾芯片) ;
框架:模型部署框架如 TensorFlow Serving、TorchServe、Triton Inference Server,支持模型加载、请求处理、动态批处理等功能 ;
形态:可部署为 API 服务(如 OpenAI API)、本地化应用(如 ChatGPT 客户端),或嵌入到其他系统(如智能音箱、办公软件) ;
分布式训练:
数据并行(Data Parallelism):将训练数据分成多份,每个设备存储完整模型副本,处理不同数据,通过梯度同步(如 AllReduce)更新参数,适用于数据量大的场景 ;
模型并行(Model Parallelism):将模型拆分到多个设备(如不同层分配给不同设备),解决单设备内存不足问题 ;细分包括:
张量并行(Tensor Parallelism):将单个层的张量(如权重矩阵)拆分到多个设备,并行计算 ;
管道并行(Pipeline Parallelism):将模型层按顺序分配给不同设备,像流水线一样处理批次数据,提升效率 ;
混合并行:结合数据并行、张量并行和管道并行,适用于超大规模模型(如万亿参数模型),如 Megatron-LM、DeepSpeed 框架支持的混合并行策略 ;
推理加速:
KV 缓存(KV Cache):在生成式模型推理时,缓存之前计算的键(K)和值(V),避免重复计算,大幅降低每步生成的计算量 ;
量化推理:采用 INT8、INT4 等低精度量化,减少内存占用和计算时间,如 GPTQ、AWQ 等量化方法在精度和速度间取得较好平衡 ;
批处理(Batching):动态批处理多个推理请求,提高 GPU 利用率(如 Triton 的 Dynamic Batching) ;
模型剪枝与蒸馏:部署压缩后的小模型,直接提升推理速度 ;
推理优化框架:如 FasterTransformer、vLLM,通过优化 CUDA 内核、KV 缓存管理等加速推理 ;
9. 模型评估
模型评估是衡量大模型性能的关键,需要从多个维度全面评估,确保模型的有效性、可靠性和安全性 ;
评估维度:
性能指标:
自然语言理解:GLUE、SuperGLUE 等基准的准确率(Accuracy)、F1 分数 ;
生成任务:BLEU(机器翻译)、ROUGE(文本摘要)、CIDEr(图像描述),衡量生成文本与参考文本的相似度 ;
语言模型能力:Perplexity(困惑度,越低越好),衡量模型对文本序列的预测能力 ;
推理能力:MMLU(多任务语言理解)、GSM8K(数学推理)、HumanEval(代码生成)等基准的通过率 ;
安全性与偏见:评估模型是否生成有害内容(如暴力、歧视)、是否存在性别 / 种族偏见,采用人工标注或特定检测数据集(如 RealToxicityPrompts) ;
效率:训练 / 推理速度(tokens per second)、内存占用、能耗,评估模型的资源消耗 ;
鲁棒性:测试模型在对抗性输入(如微小文本修改)、噪声数据下的表现,避免模型脆弱性 ;
评估方法:
自动评估:利用基准数据集和指标自动计算,效率高但可能无法完全反映实际效果 ;
人工评估:由人类评委对模型输出的相关性、流畅性、逻辑性等打分,更贴近实际应用场景,但成本高、耗时 ;
用户反馈:通过实际应用中的用户评价、点击率、留存率等数据,评估模型的实用价值 ;
评估基准:
除上述提到的 GLUE、MMLU 等,
还有 HELM(Holistic Evaluation of Language Models)提供全面的评估框架,涵盖多维度、多场景的测试,为模型优化提供方向 ;
上一篇
下一篇
向量数据库在 RAG 检索增强生成中的应用
向量数据库相关的核心概念和术语
向量数据库选型
java后端程序员转大模型应用开发
Elasticsearch与向量数据库比较
langchain 和 llamaindex