链载Ai

标题: LLM模型推理入门 [打印本页]

作者: 链载Ai    时间: 昨天 16:14
标题: LLM模型推理入门

ingFang SC", "Microsoft YaHei", sans-serif;font-weight: bold;line-height: 1.5;padding-top: 10px;color: rgb(85, 85, 85);letter-spacing: normal;text-wrap: wrap;background-color: rgb(255, 255, 255);">概述

ingFang SC", "Microsoft YaHei", sans-serif;font-size: 18px;letter-spacing: normal;text-wrap: wrap;background-color: rgb(255, 255, 255);">随着生成式 AI 的迅速发展,大语言模型(LLM)的推理性能和成本已成为其大规模应用的关键障碍。LLM 推理是指利用仅解码器的 Transformer 模型生成词元(token),其中大多数挑战及其解决方案都源于这一特定架构和用例。

ingFang SC", "Microsoft YaHei", sans-serif;font-size: 18px;letter-spacing: normal;text-wrap: wrap;background-color: rgb(255, 255, 255);">本文将深入探讨 LLM 推理过程的两个阶段:预填充阶段(Prefilling)和解码阶段(Decoding),并详细介绍如何通过算法创新和系统优化来提升 LLM 的推理效率。具体内容包括:

    ingFang SC", "Microsoft YaHei", sans-serif;font-size: 18px;letter-spacing: normal;text-wrap: wrap;background-color: rgb(255, 255, 255);" class="list-paddingleft-1">
  1. LLM 推理基础知识:介绍 Transformer 架构及其关键组件,如自注意力机制、多头注意力机制和前馈网络。同时,详细说明从输入词元到生成输出词元的预填充阶段和解码阶段的推理过程。

  2. LLM 推理优化方向:探讨通过算法创新和系统优化来提升 LLM 推理效率的方法,包括优化解码算法、优化架构设计和模型压缩等。

  3. LLM 推理性能指标:介绍衡量 LLM 推理性能的关键指标,如每秒请求数(RPS)、首字输出时间(TTFT)和字符间延迟(ITL)等。

ingFang SC", "Microsoft YaHei", sans-serif;font-weight: bold;line-height: 1.5;padding-top: 10px;color: rgb(85, 85, 85);letter-spacing: normal;text-wrap: wrap;background-color: rgb(255, 255, 255);">术语解释

ingFang SC", "Microsoft YaHei", sans-serif;font-weight: bold;line-height: 1.5;padding-top: 10px;color: rgb(85, 85, 85);letter-spacing: normal;text-wrap: wrap;background-color: rgb(255, 255, 255);">LLM 推理基础知识

ingFang SC", "Microsoft YaHei", sans-serif;font-weight: bold;line-height: 1.5;margin-top: 20px;margin-bottom: 15px;font-size: 1.375em;padding-top: 10px;color: rgb(85, 85, 85);letter-spacing: normal;text-wrap: wrap;background-color: rgb(255, 255, 255);">Transformer 介绍

ingFang SC", "Microsoft YaHei", sans-serif;font-size: 18px;letter-spacing: normal;text-wrap: wrap;background-color: rgb(255, 255, 255);">当前主流的 LLM 比如 OpenAI 的 GPT 系列、Meta 的 Llama 系列还有如 OPT、BLOOM、Mistral 等等,其核心是基于自注意力机制的 Transformer 架构,该机制允许模型在做出预测时对输入数据的不同部分的重要性进行权重计算。

ingFang SC", "Microsoft YaHei", sans-serif;font-weight: bold;line-height: 1.5;margin-top: 20px;margin-bottom: 15px;font-size: 1.25em;padding-top: 10px;color: rgb(85, 85, 85);letter-spacing: normal;text-wrap: wrap;background-color: rgb(255, 255, 255);">自注意力机制

在 Transformer 模型中,自注意力机制通过线性变换计算输入序列 X 的查询 Q、键 K 和值 V。自注意力分数计算公式如下:其中 dk 是键的维度。该机制使模型能够对输出的每个元素聚焦于输入序列的不同部分,从而捕捉输入序列中不同位置之间的复杂依赖关系。

前馈网络(FFN)

Transformer 的每一层中都包含前馈网络(FFN),显著增加了计算强度。FFN 通常由两个线性变换和一个非线性激活函数(通常是 ReLU)组成,公式如下:其中 W1, W2, b1, b2 是可学习参数。FFN 引入了必要的非线性,使模型能够学习更复杂的模式。每个 Transformer 层在多头注意力(MHA)聚合输入的不同部分的信息后,FFN 会独立地处理这些聚合信息。

Transformer 其他组件

Transformer 模型还包括其他关键组件,如位置编码(position encoding),它为序列中的每个标记添加位置信息;多头注意力机制(multi-head attention),允许模型在不同的表示空间中关注序列的不同部分。这些组件共同作用,使得 Transformer 模型能够捕捉广泛的语言上下文和细微差别,在各种 NLP 任务中设立了新的基准。

LLM 推理过程:预填充 + 解码

在介绍完 Transformer 结构之后,我们来看下 Decoder-Only 的模型如何进行模型推理。为简单起见,我们假设一次只处理一个序列(即批处理大小为 1)。在下图中,我描述了一个简单的基于 Transformer 的解码器的主要层,用于从一系列输入词元中生成输出词元。需要注意的是,解码器本身并不会输出词元,而是输出 logit(其数量与词汇表大小相同)。输出 logit 的最后一层通常被称为语言模型头(Language Model Head)或 LM 头。将 logit 转换为词元是通过一种启发式算法来完成的,这种算法通常被称为解码策略(decoding strategy),也叫做词元搜索策略(token search strategy)或生成策略(generation strategy)。解码策略的目的是在保持文本连贯性和合理性的同时,提高生成结果的质量和多样性。

简单起见,我们假设解码策略是模型的一部分,这些接受词元序列作为输入,并返回相应输出词元的实体通常被称为执行引擎或推理引擎。

如果要生成多个词元呢?使用基于 Transformer 的解码器,从一个输入文本序列(称为 prompt)中生成文本(称为 completion)通常包含以下步骤:

  1. 将模型权重加载到 GPU。

  2. 在 CPU 上对输入文本进行分词,并将文本序列词元传输到 GPU。

  3. 利用模型运行输入词元,输出第一个词元(预填充阶段)。

  4. 将生成的词元添加到输入的词元序列中,然后作为新的输入,生成下一个词元,直到生成停止词元(比如 EOS)或者到达预先配置的最大序列长度(解码阶段)。

  5. 将生成的词元传输到 CPU,并进行逆词元化(de-tokenization)获得生成的文本。上述介绍了最基础的 LLM 推理过程,目前也有一些更为先进的技术,流程上可能会有所不同。

LLM 推理优化方向

在《Towards Efficient Generative Large Language Model Serving: A Survey from Algorithms to Systems》论文中,将现有的 LLM 推理优化的方向分成两类:

算法创新

这些创新旨在优化大型语言模型(LLM)的推理过程,以提高效率、减少计算复杂度,并在不显著降低性能的情况下减小模型的计算资源需求。

优化解码算法(Decoding Algorithm)

1. 非自回归解码(Non-autoregressive Decoding)

慢。非自回归解码试图并行生成多个输出标记,从而提高解码速度。

2. 推测性解码(Speculative Decoding)

3. 提前退出(Early Exiting)

4. 级联推理(Cascade Inference)

优化架构设计(Architecture Design)

1. 配置缩减(Configuration Downsizing)

2. 注意力机制简化(Attention Simplification)

3. 激活共享(Activation Sharing)

4. 条件计算(Conditional Computing)

5. 循环单元(Recurrent Unit)

模型压缩(Model Compression)

1. 知识蒸馏(Knowledge Distillation)

2. 网络剪枝(Network Pruning)

这些算法创新方法,通过优化模型结构和推理过程,可以显著提高大型语言模型的推理效率,使其更适用于实际应用中的各种场景。

系统优化(System Optimizations)

系统优化主要集中在硬件和系统层面,通过改进底层实现和资源管理,提高大型语言模型(LLM)推理的效率。以下是几种主要的系统优化方法:

低位量化(Low-bit Quantization)

并行计算(Parallel Computation)

内存管理(Memory Management)

请求调度(Request Scheduling)

内核优化(Kernel Optimization)

减少填充和优化批处理,提高对变长序列的处理效率,如 Packing technique 和 Ragged tensor。-自动编译(Automatic Compilation):使用自动化编译工具优化模型在不同硬件平台上的执行效率,如 TVM、MLIR、JAX、OpenAI Triton。

这些系统优化方法通过改进底层硬件利用和资源管理,显著提高了大型语言模型的推理效率,使其在实际应用中更加高效和可靠。

LLM 推理性能指标

下面是 Anyscale 公司,在 llmperf 工具中采用的一些推理性能测试指标:







欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5