【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.pswp.cn/diannao/85957.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/85957.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/85957.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于深度強化學習的Scrapy-Redis分布式爬蟲動態調度策略研究

在大數據時代,網絡數據的采集與分析變得至關重要,分布式爬蟲作為高效獲取海量數據的工具,被廣泛應用于各類場景。然而,傳統的爬蟲調度策略在面對復雜多變的網絡環境和動態的抓取需求時,往往存在效率低下、資源浪費等問…

openlayers實現可拖拽的節點(類似知識圖譜)

/** * 本文介紹了實現知識圖譜可視化的技術方案,主要分為兩個圖層實現: * 1、線圖層 不拖動 * 2、點圖層 需要拖動 */ 線圖層 - 負責繪制靜態連接線,使用LineString創建線要素并添加到矢量圖層; // 線圖層 export function add…

酷黑NBA足球賽事直播源碼體育直播M39模板賽事源碼

源碼名稱:NBA足球賽事直播源碼酷黑體育直播M39模板賽事源碼 開發環境:帝國cms7.5 空間支持:phpmysql 帶軟件采集,可以掛著自動采集發布,無需人工操作! 演示地址:https://www.52muban.com/shop…

Verilog編程技巧01——如何編寫三段式狀態機

前言 Verilog編程技巧系列文章將聚焦于介紹Verilog的各種編程范式或者說技巧,編程技巧和編程規范有部分重合,但并非完全一樣。規范更注重編碼的格式,像變量命名、縮進、注釋風格等,而編程技巧則更偏重更直觀易讀、更便于維護、綜合…

豆包和deepseek 元寶 百度ai區別是什么

豆包、DeepSeek、元寶和百度 AI 有以下區別: 開發公司 豆包5:由字節跳動公司基于云雀模型開發。DeepSeek4:是深度求索打造的開源多模態大模型。元寶1:是騰訊混元模型的落地產品,整合了 DeepSeek - R1 與混元模型。百…

網頁端 js 讀取發票里的二維碼信息(圖片和PDF格式)

起因 為了實現在報銷流程中,發票不能重用的限制,發票上傳后,希望能讀出發票號,并記錄發票號已用,下次不再可用于報銷。 基于上面的需求,研究了OCR 的方式和讀PDF的方式,實際是可行的&#xff…

讀文獻先讀圖:GO弦圖怎么看?

GO弦圖(Gene Ontology Chord Diagram)是一種用于展示基因功能富集結果的可視化工具,通過弦狀連接可以更直觀的展示基因與GO term(如生物過程、分子功能等)之間的關聯。 GO弦圖解讀 ①內圈連線表示基因和生物過程之間的…

pandas隨筆

主要操作兩個對象:一維帶標簽數組 和 二維表格DataFrame 一維帶標簽數組Series pd.Series([1, 3, 5, np.nan, 6, 8]) ,結果如下: 可指定索引,pd.Series([1, 3, 5], index[a, b, c]) 二維表格DataFrame 創建時需要指定列名&a…

java教程筆記(十一)-泛型

Java 泛型(Generics)是 Java 5 引入的重要特性之一,它允許在定義類、接口和方法時使用類型參數。泛型的核心思想是將類型由具體的數據類型推遲到使用時再確定,從而提升代碼的復用性和類型安全性。 1.泛型的基本概念 1. 什么是泛…

力扣刷題(第四十九天)

靈感來源 - 保持更新,努力學習 - python腳本學習 反轉鏈表 解題思路 迭代法:通過遍歷鏈表,逐個改變節點的指針方向。具體步驟如下: 使用三個指針:prev(初始為None)、curr(初始為…

設置應用程序圖標

(1)找一張圖片 (2)然后轉ico圖片 在線生成透明ICO圖標——ICO圖標制作 驗證16x16就可以 降低exe大小 (3) 在xxx.pro修改 添加 (4) 刪除 build 和 xxxpro_user文件 (5)編譯project 和運行xx.exe (6)右鍵 設置快捷方式

免費wordpress模板下載

西瓜紅色的免費wordpress模板,簡潔實用又容易上手,適合新手使用。 下載 https://www.waimaoyes.com/moban/2231.html

【React】React 18 并發特性

React 18 引入了 并發特性(Concurrent Features),這是一次對 React 渲染機制的重大升級,讓 React 更加智能、響應更流暢、資源更節省。 我們來詳細講解一下它的原理、特性、API 以及實際應用。 🧠 一、什么是并發特性…

FFMPEG 提取視頻中指定起始時間及結束時間的視頻,給出ffmpeg 命令

以下是提取視頻中指定起始時間及結束時間的 ffmpeg 命令示例: bash 復制 ffmpeg -i input.mp4 -ss 00:01:30.00 -to 00:05:00.00 -c copy output.mp4 其中,-i input.mp4 是指定要處理的輸入視頻文件為 “input.mp4”。 -ss 00:01:30.00 表示指定視頻的起始時間為 1 分 30 …

mybatis的if判斷==‘1‘不生效,改成‘1‘.toString()才生效的原因

mybatis的xml文件中的if判斷‘1’不生效&#xff0c;改成’1’.toString()才生效 Mapper接口傳入的參數 List<Table> queryList(Param("state") String state);xml內容 <where><if test"state ! null and state 1">AND EXISTS(select…

AI 模型分類全解:特性與選擇指南

人工智能&#xff08;AI&#xff09;技術正以前所未有的速度改變著我們的生活和工作方式。AI 模型作為實現人工智能的核心組件&#xff0c;種類繁多&#xff0c;功能各異。從簡單的線性回歸模型到復雜的深度學習網絡&#xff0c;從文本生成到圖像識別&#xff0c;AI 模型的應用…

01-python爬蟲-第一個爬蟲程序

開始學習 python 爬蟲 第一個獲取使用最多的網站-百度 源代碼 并將源代碼保存到文件中 from urllib.request import urlopenurl https://www.baidu.com resp urlopen(url)with open(baidu.html, w, encodingutf-8) as f:f.write(resp.read().decode(utf-8))知識點&#xf…

四六級監考《培訓學習》+《培訓考試》

1 線上注冊 &#xff08;網址&#xff1a; https://passport.neea.edu.cn 2 登錄培訓平臺參加線上必修課程學習和考核 &#xff08;平臺網址&#xff1a; https://kwstudy.neea.edu.cn 注意選擇學員入口&#xff09; 3 考試要求&#xff1a;考試成績須達應到80分以上&#xf…

回顧Java與數據庫的30年歷程

當 Java 1.0 于 1996 年推出時&#xff0c;語言和互聯網都與今天大不相同。當時&#xff0c;網絡主要是靜態的&#xff0c;而 Java 承諾通過注入交互式游戲和動畫來為網絡注入活力&#xff0c;這一承諾極具前景。根據 1995 年寫給《連線》雜志的 David Banks 的說法&#xff0c…

simulink有無現成模塊可以實現將三個分開的輸入合并為一個[1*3]的行向量輸出?

提問 simulink有無現成模塊可以實現將三個分開的輸入合并為一個[1*3]的行向量輸出&#xff1f; 回答 Simulink 本身沒有一個單獨的模塊能夠直接將三個分開的輸入合并成一個 [13] 行向量輸出&#xff0c;但是可以通過 組合模塊實現你要的效果。 ? 推薦方式&#xff1a;Mux …