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 指标进行分布式跟踪)