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

【vLLM 学习】Cpu Offload Lmcache

vLLM 是一款专为大语言模型推理加速而设计的框架,实现了 KV 缓存内存几乎零浪费,解决了内存管理瓶颈问题。

更多 vLLM 中文文档及教程可访问 →https://vllm.hyper.ai/

*在线运行 vLLM 入门教程:零基础分步指南

源码 examples/offline_inference/cpu_offload_lmcache.py

# SPDX-License-Identifier: Apache-2.0"""
该文件演示了 CPU 卸载的示例用法
与 LMCache。
请注意,运行此示例需要 "pip install lmcache"。
在 https://github.com/LMCache/LMCache 中了解有关 LMCache 的更多信息。
"""
import os
import timefrom lmcache.experimental.cache_engine import LMCacheEngineBuilder
from lmcache.integration.vllm.utils import ENGINE_NAMEfrom vllm import LLM, SamplingParams
from vllm.config import KVTransferConfig# 与 LMCache 相关的环境变量
# 在 LMCache 中使用实验功能
os.environ["LMCache_USE_EXPERIMENTAL"] = "True"
# LMCache 设置为每块使用256个 token
os.environ["LMCache_CHUNK_SIZE"] = "256"
# 在 LMCache 中启用本地 CPU 后端
os.environ["LMCache_LOCAL_CPU"] = "True"
# 将本地 CPU 内存限制设置为 5.0 GB
os.environ["LMCache_MAX_LOCAL_CPU_SIZE"] = "5.0"# 此示例脚本以共享前缀运行两个请求。
shared_prompt = "Hello, how are you?" * 1000
first_prompt = [shared_prompt + "Hello, my name is",
]
second_prompt = [shared_prompt + "Tell me a very long story",
]sampling_params = SamplingParams(temperature=0, top_p=0.95, max_tokens=10)ktc = KVTransferConfig.from_cli('{"kv_connector":"LMCacheConnector", "kv_role":"kv_both"}')
# 将 GPU 内存利用设置为 0.8,用于 40GB 显存的 A40 GPU。
# 如果您的 GPU 的内存较少,则降低值。
# 请注意,LMCache 目前与块预填充不兼容。
llm = LLM(model="mistralai/Mistral-7B-Instruct-v0.2",kv_transfer_config=ktc,max_model_len=8000,enable_chunked_prefill=False,gpu_memory_utilization=0.8)outputs = llm.generate(first_prompt, sampling_params)
for output in outputs:generated_text = output.outputs[0].textprint(f"Generated text: {generated_text!r}")
print("First request done.")time.sleep(1)outputs = llm.generate(second_prompt, sampling_params)
for output in outputs:generated_text = output.outputs[0].textprint(f"Generated text: {generated_text!r}")
print("Second request done.")# 清理 LMCache 后端
LMCacheEngineBuilder.destroy(ENGINE_NAME)
http://www.lqws.cn/news/191989.html

相关文章:

  • 视频监控平台建设方案
  • 瑞它鲁肽 Retatrutide
  • 6个月Python学习计划 Day 16 - 迭代器、生成器表达式、装饰器入门
  • 【同数增位累加2+22+222+2222】2022-4-15
  • 嵌入式学习之系统编程(十一)网络编程之协议头,测试命令及工具
  • 深度学习模型部署与加速汇总
  • Linux LVM与磁盘配额
  • CMOS图像传感器系列--(二)HDR之DAG技术
  • 浏览器后台服务 vs 在线教育:QPS、并发模型与架构剖析
  • 基于J2EE架构的在线考试系统设计与实现【源码+文档】
  • Python Pandas库超详细教程:从入门到精通实战指南
  • C++.OpenGL (9/64)复习(Review)
  • python打卡44天
  • 破壁焕新能:DeviceNET转EtherNet/IP网关赋能烟草智能制造跃迁
  • 通过Spring AI框架搭建mcp服务端说明
  • 动态内存管理
  • C++——红黑树
  • 22N60-ASEMI光伏逆变器专用22N60
  • N2语法 列挙、話題提出
  • ROS1: 使用rosbag的方式将点云topic保存为pcd文件
  • 软考 系统架构设计师系列知识点之杂项集萃(83)
  • H_Prj06 8088单板机的串口
  • Java下载文件(特殊字符编码处理)
  • 为什么说数列是特殊的函数
  • 2025主流智能体Agent终极指南:Manus、OpenManus、MetaGPT、AutoGPT与CrewAI深度横评
  • Day14
  • Java-IO流之压缩与解压缩流详解
  • 前端开发面试题总结-JavaScript篇(一)
  • SQLAlchemy 中的 func 函数使用指南
  • 手机号段数据库的作用