版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
清华大学出版社《向量计算》配套课件·课堂讲义第9章大模型推理与优化换个角度学AI,打通任督二脉刘鹏著·清华大学出版社让千亿参数大模型跑得更快、更省、更远《向量计算》配套课件第9章大模型推理与优化第9章大模型推理与优化2/38教学目标1理解Int8/FP4量化的原理与精度—性能权衡2掌握注意力即向量相似度的数学本质3掌握FlashAttention分块与IO感知优化4了解KV缓存、批处理与并行等推理技术5能规划大模型推理性能优化全流程重点与难点1重点:量化映射公式与注意力相似度计算2重点:FlashAttention分块降低内存访问3难点:O(n²)复杂度成因与IO感知优化思路《向量计算》配套课件第9章大模型推理与优化第9章大模型推理与优化3/38本章内容导航9.1量化(Int8/FP4)对向量计算的影响9.2注意力机制(Attention)本质就是向量相似度9.3FlashAttention:IO感知的向量计算优化9.4大模型推理的其他关键优化技术9.5实战:大模型推理性能优化全流程《向量计算》配套课件·第9章大模型推理与优化9.1量化(Int8/FP4)对向量计算的影响9.1.1为何需要量化·9.1.2数学原理·9.1.3精度与性能·9.1.4转换实战《向量计算》配套课件9.1量化(Int8/FP4)对向量计算的影响第9章大模型推理与优化5/38为什么需要量化:大模型的瘦身需求●参数规模爆炸式增长:GPT-31750亿→万亿级–1750亿参数用FP32存储约需700GB(每参4字节)●推理需频繁访问参数,内存带宽成为严重瓶颈●量化:把高精度FP32转为低精度Int8/FP16/FP8/FP4–类比:将超高清图压缩为手机尺寸,保留关键信息《向量计算》配套课件9.1量化(Int8/FP4)对向量计算的影响第9章大模型推理与优化6/38量化的数学原理:Int8量化五步●核心:把连续浮点值映射为离散整数或低精度浮点●①确定范围:找出张量的最大值max与最小值min●②缩放因子:scale=(max-min)/(2⁸-1)●③零点偏移:zero_point=-round(min/scale)-128●④量化→Int8;⑤反量化→近似还原浮点值《向量计算》配套课件9.1量化(Int8/FP4)对向量计算的影响第9章大模型推理与优化7/38Int8量化与反量化公式int8value=round(floatvalue/scale)+zero_pointfloatvalue=(int8value-zero_point)×scalescale、zero_point为量化学习到的转换参数式(9-1)量化;式(9-2)反量化●FP4:存储空间降至FP32的1/8(1符号+2指数+1尾数)–FP4精度损失更大,靠分组量化、混合精度补偿《向量计算》配套课件9.1量化(Int8/FP4)对向量计算的影响第9章大模型推理与优化8/38量化对向量计算的影响:提速与省存●FP16→Int8内存减半,FP4降至1/4,缓解带宽瓶颈●TensorCore等低精度单元可并行更多数据,吞吐提升●低精度计算能耗更低,适合移动与边缘场景–代价:量化不可避免带来精度损失,需补偿《向量计算》配套课件9.1量化(Int8/FP4)对向量计算的影响第9章大模型推理与优化9/38量化精度损失与补偿技术●ImageNet上Int8精度损失极小,速度提升近4倍●校准:少量数据确定最佳量化范围,减少误差–混合精度:关键层保留高精度–量化感知训练QAT:训练中模拟量化效果–分组量化:分组分别量化,提高精度图9-1不同量化方法的性能对比《向量计算》配套课件9.1量化(Int8/FP4)对向量计算的影响第9章大模型推理与优化10/38量化实战:用PyTorch做动态量化importtorchimporttorch.nnasnnfromtorch.quantizationimportquantize_dynamic#定义一个简单的线性层模型classSimpleModel(nn.Module):def__init__(self):super().__init__()self.fc=nn.Linear(512,512)defforward(self,x):returnself.fc(x)#创建模型并生成随机输入model=SimpleModel()input_tensor=torch.randn(1,512)#动态量化模型quantized_model=quantize_dynamic(model,#要量化的模型{nn.Linear},#要量化的层类型dtype=torch.qint8#量化目标类型)注:教材§9.1.4,动态量化SimpleModel并比较输出误差与模型大小《向量计算》配套课件·第9章大模型推理与优化9.2注意力机制(Attention)本质就是向量相似度9.2.1直观理解·9.2.2数学表达·9.2.3自注意力·9.2.4可视化·9.2.5复杂度《向量计算》配套课件9.2注意力机制(Attention)本质就是向量相似度第9章大模型推理与优化12/38注意力机制的直观理解:聚焦关键信息●模拟人类认知:重点关注关键词,忽略次要细节●核心:计算Query与各Key的相似度得到权重●再用权重对Value加权求和,得到输出–图书馆找书:查询(Query)对标签(Key)匹配,综合内容(Value)《向量计算》配套课件9.2注意力机制(Attention)本质就是向量相似度第9章大模型推理与优化13/38缩放点积注意力:相似度计算Attention(Q,K,V)=softmax(QKᵀ/√dₖ)·VQ查询、K键、V值矩阵;dₖ为键向量维度除以√dₖ做缩放,避免Softmax进入饱和区●①匹配:Q与Kᵀ点积,衡量Query与所有Key相似度●②缩放:点积除以√dₖ,把数值拉回合理范围●③输出:Softmax归一化权重后对V加权求和《向量计算》配套课件9.2注意力机制(Attention)本质就是向量相似度第9章大模型推理与优化14/38注意力机制的计算流程●Query与Key计算相似度→注意力权重●权重与Value相乘→加权混合输出–权重越大的Value,其信息被保留得越多图9-2注意力机制计算过程《向量计算》配套课件9.2注意力机制(Attention)本质就是向量相似度第9章大模型推理与优化15/38自注意力与多头注意力●自注意力:Q、K、V均来自同一序列,建模内部依赖–例:“我爱自然语言处理”中,词间关联程度各不相同●多头:将Q/K/V投影到多个子空间并行计算–MultiHead=Concat(head₁,…,headₕ)·Wᴼ–headᵢ=Attention(QWᵢQ,KWᵢK,VWᵢV),从不同角度捕捉关系《向量计算》配套课件9.2注意力机制(Attention)本质就是向量相似度第9章大模型推理与优化16/38注意力可视化:绘制权重热力图attention_weights=attentions[layer][0][head].detach().numpy()#获取tokentokens=tokenizer.convert_ids_to_tokens(inputs["input_ids"][0])#绘制热力图plt.figure(figsize=(10,8))sns.heatmap(attention_weights,annot=True,fmt=".2f",cmap="viridis",xticklabels=tokens,yticklabels=tokens)plt.title(f"BERTAttentionWeights(Layer{layer+1},Head{head})")plt.show()注:教材§9.2.4,先加载bert-base-chinese并取outputs.attentions,再画第12层第0头热力图《向量计算》配套课件9.2注意力机制(Attention)本质就是向量相似度第9章大模型推理与优化17/38注意力的计算挑战:O(n²)复杂度●标准自注意力时间与空间复杂度均为O(n²)–n=1024需算1024×1024≈100万个相似度分数–n=4096计算量增至1600多万,内存负担巨大●优化方向:稀疏、局部、滑动窗口注意力●FlashAttention(2022斯坦福)保精度同时降内存与耗时《向量计算》配套课件·第9章大模型推理与优化9.3FlashAttention:IO感知的向量计算优化9.3.1瓶颈·9.3.2分块创新·9.3.3性能·9.3.4实战·9.3.5趋势《向量计算》配套课件9.3FlashAttention:IO感知的向量计算优化第9章大模型推理与优化19/38传统注意力的性能瓶颈:内存访问●四步:算Q/K/V→QKᵀ相似度→缩放Softmax→乘V●瓶颈在内存:中间结果过大,放不进GPU高速缓存SRAM–被迫频繁CPU-GPU交换(PCIe)与显存访问,慢于计算–例:n=2048、d=1024时相似度矩阵约400万元素《向量计算》配套课件9.3FlashAttention:IO感知的向量计算优化第9章大模型推理与优化20/38FlashAttention核心创新:分块与重排序●分块Tiling:Q/K/V切成小块放入SRAM,减少全局内存访问●重排序Reordering:让K/V内存访问更连续,提高缓存命中●增量计算:增量求行最大/行和,不存完整中间结果●异步预取:算当前块时预取下一块,隐藏访问延迟●核心思想:最小化全局内存访问,用足高速缓存《向量计算》配套课件9.3FlashAttention:IO感知的向量计算优化第9章大模型推理与优化21/38FlashAttention的分块计算策略●把大矩阵分成小块,在SRAM内完成计算●避免把完整相似度矩阵写回全局内存–显著降低内存访问次数,实现加速图9-3FlashAttention分块计算示意图《向量计算》配套课件9.3FlashAttention:IO感知的向量计算优化第9章大模型推理与优化22/38性能提升与FlashAttention-3●理论复杂度仍为O(n²),但内存访问模式大幅优化–不再存完整相似度矩阵,内存占用显著下降●长序列上比传统实现快2~4倍,序列越长优势越明显–支持16k、32k甚至更长上下文●三代新增:自适应分块、双向分块、原生Int8/FP8量化《向量计算》配套课件9.3FlashAttention:IO感知的向量计算优化第9章大模型推理与优化23/38FlashAttention实战:性能对比importtorchimporttimefromtransformersimportGPT2LMHeadModel,GPT2Tokenizerfromflash_attnimportflash_attn_func#设置随机种子torch.manual_seed(42)#加载模型和分词器model_name="gpt2"tokenizer=GPT2Tokenizer.from_pretrained(model_name)model=GPT2LMHeadModel.from_pretrained(model_name).to("cuda")#生成长文本输入text="Hello,world!"*1000#生成重复文本inputs=tokenizer(text,return_tensors="pt").to("cuda")input_ids=inputs.input_idsseq_len=input_ids.shape[1]print(f"输入序列长度:{seq_len}")#传统注意力计时model.eval()withtorch.no_grad():start_time=time.time()注:教材§9.3.4,加载GPT-2、构造长输入并为传统注意力计时《向量计算》配套课件9.3FlashAttention:IO感知的向量计算优化第9章大模型推理与优化24/38注意力优化的未来方向●实测:4096序列Flash快2~3倍,内存省约50%●线性注意力:核函数把O(n²)降到O(n),如Performer●稀疏注意力:只算关键位置,如Longformer、BigBird–硬件感知优化:针对TPU/NPU设计实现–混合注意力:不同层用不同策略,兼顾精度与效率《向量计算》配套课件·第9章大模型推理与优化9.4大模型推理的其他关键优化技术9.4.1KV缓存·9.4.2批处理·9.4.3并行·9.4.4推理框架《向量计算》配套课件9.4大模型推理的其他关键优化技术第9章大模型推理与优化26/38KV缓存:避免重复计算●自回归生成时,前序token的K、V不会改变●缓存K/V中间结果,供后续步骤直接读取–生成第n个token只算第n个的K/V,其余取缓存●生成时间复杂度由O(n²)降到O(n)《向量计算》配套课件9.4大模型推理的其他关键优化技术第9章大模型推理与优化27/38KV缓存的工作流程●随生成token增多,缓存的KV对逐渐累加●已算过的K/V直接复用,避免重复计算–显著提升逐token生成速度图9-4KV缓存工作流程《向量计算》配套课件9.4大模型推理的其他关键优化技术第9章大模型推理与优化28/38批处理:提高硬件利用率●多输入合并成批处理,用满GPU并行能力–降低每个样本的平均处理时间●挑战①:序列长度不一致,padding过多浪费算力●挑战②:请求动态到达,需平衡延迟与吞吐●对策:自适应批处理+连续批处理(完成即补样本)《向量计算》配套课件9.4大模型推理的其他关键优化技术第9章大模型推理与优化29/38模型并行与张量并行●万亿参数即使量化也放不进单卡,需多卡分布●模型并行:不同层分到不同GPU(前段GPU0,后段GPU1)●张量并行:单层权重按列拆分到多GPU,部分结果汇总●3D并行(数据+模型+张量)配合ZeRO成为标准方案《向量计算》配套课件9.4大模型推理的其他关键优化技术第9章大模型推理与优化30/38推理优化框架:简化部署流程●NVIDIATensorRT:权重量化、图优化、动态形状●IntelOpenVINO:面向CPU/GPU/专用芯片多精度●ONNXRuntime:跨平台,覆盖CPU/GPU/加速器●vLLM:集KV缓存与PagedAttention的大模型框架《向量计算》配套课件·第9章大模型推理与优化9.5实战:大模型推理性能优化全流程9.5.1指标·9.5.2步骤·9.5.3Llama案例·9.5.4展望《向量计算》配套课件9.5实战:大模型推理性能优化全流程第9章大模型推理与优化32/38优化目标与评估指标●延迟Latency:请求到响应的时间(ms)●吞吐Throughput:单位时间处理的请求或token数●内存占用:决定可部署的模型大小与批次●精度Accuracy:优化中须控制精度损失在可接受范围–指标相互制约:实时对话重延迟,批量任务重吞吐《向量计算》配套课件9.5实战:大模型推理性能优化全流程第9章大模型推理与优化33/38优化步骤:从模型到部署●①模型选择与准备:按需选Llama/GPT/Falcon,转换格式●②量化优化:试FP16/BF16/Int8/FP8,校准并保留关键层精度●③引擎选择配置:TensorRT/vLLM,设KV缓存与批处理●④性能测试调优:测延迟吞吐,定位瓶颈并调参●⑤部署与监控:上线后监控指标,随数据动态调整《向量计算》配套课件9.5实战:大模型推理性能优化全流程第9章大模型推理与优化34/38案例:Llama27B4-bit量化加载#安装必要的库!pipinstalltransformersacceleratebitsandbytesflash-attnimporttorchfromtransformersimportAutoTokenizer,AutoModelForCausalLM,BitsAndBytesConfig#模型配置model_name="meta-llama/Llama-2-7b-chat-hf"device="cuda"iftorch.cuda.is_available()else"cpu"#4-bit量化配置bnb_config=BitsAndBytesConfig(load_in_4bit=True,bnb_4bit_use_double_quant=True,bnb_4bit_quant_type="nf4",bnb_4bit_compute_dtype=torch.bfloat16)#加载模型和分词器tokenizer=AutoTokenizer.from_pretrained(model_name)model=AutoModelForCausalLM.from_pretrained(model_name,quantization_config=bnb_config,注:教材§9.5.3,用BitsAndBytesC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《人工智能工程师(初级)资格考试试卷》
- 烧碱蒸发工安全知识宣贯评优考核试卷含答案
- 公路水运工程试验检测员安全实践考核试卷含答案
- 仪表着陆系统、测距仪机务员岗前诚信品质考核试卷含答案
- 光学镜头装配调试工QC管理测试考核试卷含答案
- 压力机(生产线)操作工保密意识知识考核试卷含答案
- 石英晶体生长设备操作工岗前跨界整合考核试卷含答案
- 玻璃制品加工工岗前行为意识考核试卷含答案
- 环己烷装置操作工岗位设备性能考核试卷含答案
- 机织无结网片工安全生产能力知识考核试卷含答案
- 2026年云南省昆明市公安招聘辅警考试试卷带答案
- 26年秋八年级历史1-12课材料研读想一想课后活动答案
- 初中化学中考复习中和反应及反应后溶液成分探究教学设计
- 2026年初级注册安全工程师考试题库(附答案)
- 纪念中国工农红军长征胜利90周年应知应会100题及答案解析
- 新教材部编人教版五年级上册道德与法治(课件)第11课走进新时代
- DB53T 1176.1-2023 云南省行政村、社区编码 第1部分:总则
- 2026上海城投水务校园招聘103人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年酸枣仁行业分析报告及未来发展趋势报告
- 2026年中考历史考前冲刺:小论文 满分方法指导讲义
- 金矿详查实施方案
评论
0/150
提交评论