我们生活在一个令人惊叹的大型语言模型时代,例如 ChatGPT、GPT-4 和 Claude,它们可以执行多种令人叹为观止的任务。
许多部署工具来为 LLM 提供更快的推理服务,例如 vLLM、c2translate、TensorRT-LLM 和 llama.cpp。量化技术还用于优化 GPU 以加载非常大的语言模型。
延迟和吞吐量
影响大语言模型速度性能的一些主要因素是 GPU 硬件要求和模型大小。
模型规模越大,运行它所需的 GPU 计算能力就越多。用于测量大型语言模型的速度性能的常见基准指标是延迟和吞吐量。
-
延迟:这是大型语言模型生成响应所需的时间。它通常以秒或毫秒为单位进行测量。
-
吞吐量:这是大型语言模型每秒或毫秒生成的令牌数量。
安装所需的软件包
以下是运行大型语言模型所需的两个包:Hugging Face Transformer和accelerate。
pip3 install transformer
pip3 install accelerate
什么是 Phi-2?
Phi-2是微软提供的最先进的基础模型,拥有 27 亿个参数。它使用各种数据源(从代码到教科书)进行了预先训练。
使用 Hugging Face Transformer 对 LLM 延迟和吞吐量进行基准测试
生成的输出
Latency: 2.739394464492798 seconds
Throughput: 32.36171766303386 tokens/second
Generate a python code that accepts a list of numbers and returns the sum. [1, 2, 3, 4, 5]
A: def sum_list(numbers):
total = 0
for num in numbers:
total += num
return total
print(sum_list([1, 2, 3, 4, 5]))
逐步代码分解
第 6-10 行:加载Phi-2模型并标记提示“生成接受数字列表并返回总和的 Python 代码。 ”
第12-18行:从模型生成响应,并通过计算生成响应所需的时间获得延迟。
第21-23行:获取生成的响应中令牌的总长度,将其除以延迟并计算吞吐量。
该模型在 A1000(16GB GPU)上运行,实现了2.7 秒的延迟和32 个令牌/秒的吞吐量。
使用 vLLM 部署大型语言模型
vLLM 是一个开源 LLM 库,用于以低延迟和高吞吐量为大型语言模型提供服务。
vLLM 的运作方式
Transformer是大型语言模型的构建块。Transformer 网络使用一种称为注意力机制的机制,网络使用该机制来研究和理解单词的上下文。注意力机制由一系列称为注意力键和值的矩阵数学计算组成。这些注意力键和值交互所使用的内存会影响模型的速度。
vLLM 引入了一种称为PagedAttention的新注意力机制,该机制可以在令牌生成过程中有效管理变压器注意力键和值的内存分配。事实证明,vLLM 的内存效率对于以低延迟和高吞吐量运行大型语言模型非常有用。
这是 vLLM 如何运作的高级解释。要了解更深入的技术细节,请访问 vLLM 文档。
安装vLLM
pip3 install vllm==0.3.3
使用 vLLM 运行 Phi-2
生成的输出:
<li style="outline-style: initial; outline-width: 0px; ove
Keyword: Suno