首页 SEO技术 正文

AI大模型推理环节和优化技术

SEO技术 2024-10-28 30
AI大模型推理环节和优化技术

本文目录导航:

AI大模型推理环节和优化技术

AI大模型推理环节与优化技术概述:大模型推理关键基于Transformer架构,其外围是留意力机制。

推理分为prefill(输入了解和初始化)和decoding(递归推理与解码输入)两个阶段。

prefill阶段先对用户输入启动tokenize,计算自留意力并生成KV缓存,占据约90%的期间,随后采样输入,前往给客户。

decoding阶段则逐词预测并计算留意力,对每个token启动计算,占80%的期间,还需启动detokenize转换。

功能评估目的包含:1. **吞吐量**:权衡单位期间内生成字符的数量,受用户输入长度影响。

2. **首字提前**:用户输入后系统照应生成首字符的期间,与输入长度相关。

3. **提前**:生成每个字符的期间,影响流利度,受batch size影响。

4. **QPS**:每秒处置恳求数,受恳求混合和GPU应用率影响。

优化技术关键包含:- **KVCache**:存储已计算的KV值,防止重复计算。

- **散布式推理**:经过并行处置提高效率。

- **流水线处置**:优化GPU资源经常使用,如Tokenize和Detokenize。

- **灵活批处置**:兼并恳求,混合prefill和decoding。

- **量化**:如INT4、INT8、FP8,降落内存消耗和减速计算。

- **System Prompt**:共享前缀缓存,缩小首字提前。

- **预测生生长度**:预先预计长度,灵活调配内存。

- **Flash Attention**:应用GPU存储档次结构减速计算。

- **Paged Attention**:分页内存治理,按需追加显存。

- **精简Attention**:如MQA和GQA,共享参数缩小计算。

选用适合的配件也至关关键,包含Nvidia和国产AI芯片。

总的来说,优化技术旨在优化推理效率,缩小计算资源消耗,提供更快更流利的用户体验。

Scaled Dot Product Attention (SDPA) 在 CPU 上的 功能优化

PyTorch 2.0 引入了 SDPA(Scaled Dot Product Attention 的优化),以改良 Transformer 中的 MHA(multi-head attention)功能。

SDPA 旨在处置大型言语模型(LLM)的两个关键痛点,以后版本关键允许 CUDA 设施,未来将在下一个版本中参与 CPU 版本。

该优化算法分为三种,其中两种成功无损减速,不扭转数学计算,因此不损失精度。

以下是对 SDPA 优化算法的概述及其如何处感功能疑问的具体说明。

在早期版本中,PyTorch 1.3 曾经对 启动优化,关键经过将点乘运算融合,清楚缩小了对 attn 操作的内存访问。

这种优化方法基于将 Q、K、V 的大小与 T(序列长度)和 K(每个头的特色大小)的相关思考在内,经过融合操作大幅度提高了功能。

SDPA 优化算法的改良环节从最后的 efficient attention 算法开局,逐渐演进至 flash attention。

外围在于如何经过 tiling(即数据块化)防止在内存中调配大块的 attn 数据,从而应用缓存长处减速 pointwise 操作。

原始 scaled dot product attention 的计算环节可以合成为三个步骤。

首先引入 lazy softmax 来防止为 attn 调配实践内存,仅在每个线程中保管一些累积值,从而清楚缩小内存占用。

但是,这种成功形式在功能上还有待优化,由于它造成计算退步,但仍能大幅缩小内存需求。

进一步优化触及在 KV 数据上实施数据块化,缩小对输入的写操作次数,经过每次迭代计算 q_i 与一个 K block 和 V block 的内积结果。

这种方法虽参与了计算的规模,但同时优化了内存访问形式,使其更具效率。

为了进一步缩小 KV 数据的读取次数,优化算法将 Q 数据启动块化处置,每次迭代计算一个 Q block 与一个 KV block,以此缩小对 KV 数据的读取。

这一步骤经过参与计算规模,成功了对内存访问的优化,同时保障缓存命中率,提高功能。

在浮点数类型上成功 SDPA 包含对 float16 或 bfloat16 的允许,关键经过经常使用 float32 启动累积运算,并应用配件减速优化,如 Intel Xeon 上的 AMX 配件减速。

SDPA 在处置因果掩码(Causal mask)时,经过在 s_i 缓存中运行掩码来缩小不用要的 GEMM(矩阵乘法)运算,从而进一步提高功能。

实践运行中,经过数据块化技术,可以清楚提高处置效率。

优化环节中遇到的应战包含负载不平衡疑问,须要平衡在不同维度(如批次、头部、数据块)上的并行处置,以确保功能平衡。

此外,内存访问不平衡和并行性疑问也需处置,例如如何让 GEMM 和 pointwise 运算并行口头,以提高全体效率。

虽然存在这些应战,SDPA 优化算法经过逐渐迭代和优化,有效优化了 Transformer 模型在 CPU 上的功能,为大规模言语模型的训练和推理提供了更高效的允许。

【Transformer 位置编码】改良Transformer位置编码,成功最强SOTA方法!

本文聚焦于改良Transformer位置编码,以成功最优SOTA方法。

自2017年Transformer架构提出后,位置编码成为钻研热点。

本文以2022年ICLR的一篇论文“Train short, Test long: Attention with linear biases enables input length extrapolation”为例,具体讨论位置编码的改良战略。

位置编码关键分为相对位置编码和相对位置编码两大类。

相对位置编码经过函数公式或可学习参数取得每个token的位置编码,间接参与到token输入表征中。

而相对位置编码(RPE)在self-attention环节中,关注以后token时,应用其余token与其的相对位置编码传递位置消息。

其中,Sinusoidal位置编码是最基础的相对位置编码形式,其公式设计旨在让模型学习到token之间的相对位置相关。

虽然尝试了可学习位置编码,但二者结果相似,且Sinusoidal编码在序列长度外推方面体现杰出,因此成为Transformer模型的首选。

Sinusoidal编码实践上具备有限序列长度外推才干,但在embedding维度较小时,不同位置词的position embedding差异清楚,当维度增大后,差异逐渐减小。

关于BERT-large 768维度的embedding,或者已足够,但更复杂状况则需探求更适合的位置编码形式。

另一种方法是经过参数初始化构建位置矩阵,让模型学习到相对位置编码。

这种形式在训练成功后不可成功序列外推,但基于档次合成思绪,可以处置超长文本处置疑问。

但是,最优参数a的选用需经过试验验证。

另外,FLOATER等钻研应用递归模型,确保结构学习到位置消息。

相对位置编码作为transformer架构罕用形式,强调相邻词间强位置相关。

位置编码类型可进一步划分为XLNet、T5和DeBERTa等。

“Attention with Linear Biases (ALiBi)”是2022年ICLR文章提出的一种陈腐位置编码方法。

它优化了Transformer的期间复杂度,清楚优化了训练效率和内存经常使用。

经过在Q*K^T上加上天位编码,成功更优的外推才干,展现出比Sinusoidal编码更好的模型外推功能。

本文深化讨论了位置编码的改良战略,从基本的Sinusoidal编码到相对编码、学习编码,再到“Attention with Linear Biases”的翻新运行,旨在为人造言语处置畛域提供更高效、更准确的模型构建方法。

是比 为什么 Ingress Traefik APISIX 更好的选用
« 上一篇 2024-10-28
片面优化产品设计的战略 DFX
下一篇 » 2024-10-28

文章评论