LLM常见问题(优化加速部分)-灵析社区

算法无限

1. 当前优化模型最主要技术手段有哪些?

当前优化模型最主要技术手段概括来说有以下三个层面:

  • 算法层面:蒸馏、量化
  • 软件层面:计算图优化、模型编译
  • 硬件层面:FP8(NVIDIA H系列GPU开始支持FP8,兼有fp16的稳定性和int8的速度)

2. 推理加速框架有哪一些?都有什么特点?

  • FasterTransformer:英伟达推出的FasterTransformer不修改模型架构而是在计算加速层面优化 Transformer 的 encoder 和 decoder 模块。具体包括如下: 尽可能多地融合除了 GEMM 以外的操作 支持 FP16、INT8、FP8 移除 encoder 输入中无用的 padding 来减少计算开销
  • TurboTransformers:腾讯推出的 TurboTransformers 由 computation runtime 及 serving framework 组成。加速推理框架适用于 CPU 和 GPU,最重要的是,它可以无需预处理便可处理变长的输入序列。具体包括如下: 与 FasterTransformer 类似,它融合了除 GEMM 之外的操作以减少计算量 smart batching,对于一个 batch 内不同长度的序列,它也最小化了 zero-padding 开销 对 LayerNorm 和 Softmax 进行批处理,使它们更适合并行计算 引入了模型感知分配器,以确保在可变长度请求服务期间内存占用较小

3. vLLM 的功能有哪些?

vLLM 的核心是 PagedAttention,这是一种新颖的注意力算法,它将在操作系统的虚拟内存中分页的经典思想引入到 LLM 服务中。vLLM 比 HuggingFace Transformers 提供高达 24 倍的吞吐量,而无需任何模型架构更改。

4. vLLM 的优缺点有哪些?

优点:

  • 最先进的服务吞吐量
  • PagedAttention 可以有效的管理注意力的键和值
  • 动态批处理请求
  • CUDA 内核优化
  • 与 HuggingFace 模型无缝集成
  • 高吞吐量服务与各种解码算法,包括并行采样、beam search 等等
  • 张量并行以支持分布式推理
  • 流式输出
  • 兼容 OpenAI 的 API 服务

缺点:

  • 其采样参数支持的还不是很完备(与 huggingface 相比),参数对齐后跑 human eval 指标比 hf 低一些
  • batch=1 的时候不如 hf

5. vLLM 有哪些推理实现方法?

vLLM 提供了两类推理的实现,一类是 offline inference,类似于 HF pipeline 的 batch 推理接口,用于离线批量的推理生成;另一类是和 openai api 类似的实时在线推理,用于服务端接收并发推理请求的应用部署,其本身也可以通过命令行拉起一个 web 服务端进行部署。

6. TGI(Text generation inference) 是什么?

Text generation inference 用于文本生成推理的 Rust、Python 和 gRPC 服务器。作为支持 Hugging Face Inference API 和后来的 Hugging Chat 上的 LLM 推理的内部工具,旨在支持大型语言模型的优化推理。

7. TGI 的功能特点有哪些?

  • 使用简单的启动器为最流行的大型语言模型提供服务
  • Tensor Parallelism 用于在多个 GPU 上进行更快的推理
  • 使用服务器发送事件 (SSE) 的令牌流
  • 连续批处理传入请求以提高总吞吐量
  • 优化的变换器代码,用于在最流行的架构上使用 flash-attention 进行推理
  • 使用 bitsandbytes 进行量化
  • Safetensors weight loading
  • 使用 A Watermark 的大型语言模型
  • Logits warper(temperature scaling、top-p、top-k、repetition penalty)
  • Log probabilities
  • 生产就绪(使用 Open Telemetry、Prometheus 指标进行分布式跟踪)

阅读量:980

点赞量:0

收藏量:0