当前位置: 首页 > news >正文

使用 LMCache + vLLM 提升 AI 速度并降低 GPU 成本

原文:https://zhuanlan.zhihu.com/p/1936172655175796340

前面介绍了,使用序列并行实现长上下文的低延迟和高吞吐量推理(又名 Arctic Ulysses)

​编辑大模型推理性能如何优化?37 赞同 · 2 评论 回答

低延迟和高吞吐量对于在企业AI中部署大语言模型(LLMs)至关重要。低延迟能够支持聊天等交互式体验,并在复杂的智能工作流程中实现及时响应。另一方面,高吞吐量可以降低运营成本 - 使LLMs的大规模部署更加经济实惠,也更容易被客户所接受。

然而,同时实现低延迟和高吞吐量仍然是一个核心挑战 - 特别是对于长上下文推理任务,如检索增强生成(RAG)、摘要生成或代码生成。更长的输入需要更多的计算量,导致首个token生成时间(TTFT)增加和用户体验下降(见图2)。

从系统角度来看,减少长序列的TTFT通常需要积极使用张量并行(TP),这在vLLM和TensorRT-LLM等推理库中都有实现。TP将模型的计算分散到多个GPU上以减少延迟 - 但这需要付出很大代价。TP通过all-reduce集合通信引入了大量的GPU间通信,限制了其在多个GPU上的可扩展性。因此,虽然TP可以减少延迟,但可能会导致每个GPU的吞吐量显著下降(见图2),从而增加成本。

今天我们学习介绍的是LMCache,它是一个免费工具,可以让你的 AI(那些大型、精巧的语言模型)运行得更快。

什么是 LMCache?

LMCache 是 vLLM 等运行大型 AI 模型的系统的小助手。它保存这些被称为 KV 缓存的东西——基本上是 AI 阅读文本后的便利贴。LMCache 不会每次都涂写新的笔记,而是将它们放在手边,这样你的 AI 就不会浪费时间或消耗昂贵的 GPU 算力。

为什么这很酷:

  • 你的 AI 开始以惊人的速度回答问题——有时快七倍,不开玩笑。
  • 它使用更少的 GPU 资源,所以你不会因为云账单而哭泣。
  • 它非常适合聊天机器人或应用程序,在这些应用中,你会一直看到相同的文本,比如搜索结果或冗长的设置消息。

所以,当你的 AI 阅读东西时,它会创建这些 KV 缓存来记住发生了什么。它们位于 GPU 内存中,这就像一个超级小、超级昂贵的背包。如果相同的文本再次出现——比如,聊天机器人的“嘿,有什么事吗?”——AI 通常会像个傻瓜一样重新开始。LMCache 就像是,“等等,让我们聪明一点。”

  • 将这些笔记藏在其他地方,比如 CPU 甚至你的硬盘驱动器。
  • 当文本重复时,将它们拉出来,不需要额外的工作。
  • 与其他 AI 共享它们,就像在课堂上传递小抄。

对于大型任务来说,这是一个救星,比如聊天机器人处理长时间的聊天,或者应用程序挖掘文档寻找答案。节省时间,节省金钱。

LMCache 的三个亮点

LMCache 有一些巧妙的招数。以下是它的亮点。

1. 将东西缓存到其他地方

如果你的 GPU 背包满了,LMCache 会将这些缓存移动到 CPU 或磁盘。这就像把额外的衣服扔进抽屉里来清理你的桌子。这在以下情况下非常有用:

  • 你有一个每个人都会看到的很长的介绍消息,比如聊天机器人的“嗨,我在这里!”
  • 你的 GPU 抱怨空间不足。

我曾经有一个机器人,它一直被一个巨大的设置文件噎住。将缓存存储到 CPU 本可以使它像没人管一样飞速运行。

2. 与其它AI服务分享

有大量 AI 正在运行?LMCache 允许它们共享缓存,就像一个厨房里所有的厨师都使用相同的切碎蔬菜。这在以下情况下非常完美:

  • 你在一个设置上运行多个 AI。
  • 人们向不同的 AI 提出相同的问题。

我曾经在一个支持机器人上工作,每个人都像,“嘿,我的包裹在哪里?”共享缓存意味着一个 AI 的工作帮助了其他的 AI,没有人等待太久。

3. 分配工作

AI 做两件事:读取输入(即预填充)和编写答案(解码)。LMCache 可以将这些工作分配到不同的机器上,就像一个人切洋葱,另一个人烤汉堡。这:

  • 使你的设备工作更智能,而不是更努力。
  • 当你有大量用户时,保持快速。

在一个拥有无数用户的项目上,这个技巧使我们的成本保持在较低水平,并使答案快速。不需要额外的服务器。

如何开始

想让你的 AI 加快速度吗?如果你在 Linux 上使用 NVIDIA GPU,LMCache 可以非常简单地与 vLLM 一起设置。以下是详细介绍。

Step 1:

Pop open your terminal and type:

pip install lmcache

If you’ve got vLLM, you’re mostly set. Hit a snag? The LMCache docs are your friend.

Step 2:

Here’s a quick script to mess around with LMCache and vLLM, using CPU to store extra stuff:

import lmcache
import vllm
​
# Get vLLM going with LMCache
model = vllm.LLM(model="meta-llama/Llama-3-8b", enable_lmcache=True)
# Tell LMCache to use CPU for extra room
lmcache_config = {"offload_to": "cpu",  # Or try "disk" if you're feeling wild"cache_prefixes": True  # Keeps repeated stuff ready
}
lmcache.configure(**lmcache_config)
# Throw in a prompt
prompt = "Hey, cool AI, what's the capital of France?"
response = model.generate(prompt)
print(response)

This fires up an AI, tells LMCache to park caches on CPU, and tries a prompt. Use that prompt again, and LMCache grabs the old notes, making things quick.

为什么选择LMCache

LMCache 不只是说说而已。它:

  • 使答案显示速度提高 3-10 倍,尤其是在具有大量文档的聊天或应用程序中。
  • 减少 GPU 使用——我做的一个项目节省了大约一半的云预算。
  • 处理大量人群而不会崩溃。

我曾经有一个 AI,它为每个问题爬取相同的 PDF。LMCache 的缓存技巧把它变成了一台速度机器,就像把自行车换成摩托车一样。

我已经见过很多技术工具,但 LMCache 是一颗宝石。它是免费的,它很容易,而且它解决了实际问题。它不仅仅是关于快速 AI——它使 AI 成为像我这样的普通人可以负担得起的东西。它可以与 vLLM、KServe 和其他东西很好地配合使用,因此它可以融入到项目中。

http://www.dtcms.com/a/383123.html

相关文章:

  • 快速排序:高效的分治排序算法
  • stap用法
  • 鸿蒙Next ArkWeb网页文件上传与下载完全指南
  • 云轴科技ZStack AI多语种翻译平台建设实践
  • Android SDK中关于BoardConfig.mk的宏定义继承和覆盖规则
  • 链表与数组
  • 【Python】字符串
  • 【Python】实现一个文件夹快照与比较工具
  • Python的深度学习
  • 自动化测试的概念
  • [QT]信号与槽
  • 高精度运算:大数计算全攻略
  • LeetCode 3302.字典序最小的合法序列
  • 深入解析3x3矩阵:列优先与行优先约定的全面指南
  • Codeforces 1049 Div2(ABCD)
  • 【开题答辩全过程】以 “居逸”民宿预订微信小程序为例,包含答辩的问题和答案
  • AWS IAM 模块全面优化:实现完整生命周期管理与性能提升
  • RK3568 PWM驱动基础知识
  • 贪心算法应用:钢铁连铸优化问题详解
  • 9. LangChain4j + 整合 Spring Boot
  • 返利app的消息队列架构:基于RabbitMQ的异步通信与解耦实践
  • React Native架构革命:从Bridge到JSI性能飞跃
  • Qt---描述网络请求QNetworkRequest
  • XLua教程之Lua调用C#
  • 第七章:AI进阶之------条件语句(if-elif-else)(一)
  • 从希格斯玻色子到QPU:C++在高能物理与量子计算领域的跨界征程与深度融合
  • 二、vue3后台项目系列——安装相关依赖、项目常用辅助开发工具
  • Knockout.js 备忘录模块详解
  • VS2022下载+海康SDK环境配置实现实时预览
  • 前端基础 —— C / JavaScript基础语法