vllm量化03—INT4 W4A16

本系列基于Qwen2.5-7B,學習如何使用vllm量化,并使用benchmark_serving.py、lm_eval 測試模型性能和評估模型準確度。
測試環境為:

OS: centos 7
GPU: nvidia l40
driver: 550.54.15
CUDA: 12.3

本文是該系列第3篇——INT4 W4A16

一、量化

from transformers import AutoTokenizer, AutoModelForCausalLM
from datasets import load_dataset
from llmcompressor.transformers import oneshot
from llmcompressor.modifiers.quantization import GPTQModifier
from llmcompressor.modifiers.smoothquant import SmoothQuantModifier
from vllm import LLMmodel_path = "./Qwen2.5-7B"
model = AutoModelForCausalLM.from_pretrained(model_path, device_map="auto", torch_dtype="auto", trust_remote_code=False)
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=False)NUM_CALIBRATION_SAMPLES = 512
MAX_SEQUENCE_LENGTH = 2048# Load and preprocess the dataset
ds = load_dataset("/data/ultrachat_200k", split="train_sft")
ds = ds.shuffle(seed=42).select(range(NUM_CALIBRATION_SAMPLES))def preprocess(example):return {"text": tokenizer.apply_chat_template(example["messages"], tokenize=False)}
ds = ds.map(preprocess)def tokenize(sample):return tokenizer(sample["text"], padding=False, max_length=MAX_SEQUENCE_LENGTH, truncation=True, add_special_tokens=False)
ds = ds.map(tokenize, remove_columns=ds.column_names)# Configure the quantization algorithms
recipe = GPTQModifier(targets="Linear", scheme="W4A16", ignore=["lm_head"])# Apply quantization
oneshot(model=model,dataset=ds,recipe=recipe,max_seq_length=MAX_SEQUENCE_LENGTH,num_calibration_samples=NUM_CALIBRATION_SAMPLES,
)# Save the compressed model
SAVE_DIR = "./Qwen2.5-1.5B-W4A16-G128"
model.save_pretrained(SAVE_DIR, save_compressed=True)
tokenizer.save_pretrained(SAVE_DIR)

二、部署

 vllm  serve Qwen2.5-1.5B-W4A16-G128 --disable-log-requests 

三、benchmark

python /vllm/benchmarks/benchmark_serving.py --backend vllm --model Qwen2.5-1.5B-W4A16-G128 --endpoint /v1/completions --dataset-name sharegpt --dataset-path ./ShareGPT_Vicuna_unfiltered/ShareGPT_V3_unfiltered_cleaned_split.json  --num-prompts 100
============ Serving Benchmark Result ============
Successful requests:                     100
Benchmark duration (s):                  12.28
Total input tokens:                      23260
Total generated tokens:                  22059
Request throughput (req/s):              8.14
Output token throughput (tok/s):         1795.86
Total Token throughput (tok/s):          3689.50
---------------Time to First Token----------------
Mean TTFT (ms):                          1529.15
Median TTFT (ms):                        1562.42
P99 TTFT (ms):                           2646.95
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          44.98
Median TPOT (ms):                        22.79
P99 TPOT (ms):                           223.34
---------------Inter-token Latency----------------
Mean ITL (ms):                           19.59
Median ITL (ms):                         14.49
P99 ITL (ms):                            222.72
==================================================

四、lm_eval

4.1 gsm8k

lm_eval --model vllm  \--model_args pretrained="./w4a16/Qwen2.5-1.5B-W4A16-G128",add_bos_token=true,gpu_memory_utilization=0.5  \--tasks gsm8k \--num_fewshot 5  \--limit 250 \--batch_size 'auto'
TasksVersionFiltern-shotMetricValueStderr
gsm8k3flexible-extract5exact_match0.784±0.0261
strict-match5exact_match0.688±0.0294

4.2 mmlu

lm_eval --model vllm  \--model_args pretrained="./w4a16/Qwen2.5-1.5B-W4A16-G128",add_bos_token=true,gpu_memory_utilization=0.5  \--tasks mmlu \--num_fewshot 5  \--limit 250 \--batch_size 'auto'
GroupsVersionFiltern-shotMetricValueStderr
mmlu2noneacc0.7527±0.0041
- humanities2noneacc0.7635±0.0081
- other2noneacc0.7485±0.0084
- social sciences2noneacc0.8333±0.0077
- stem2noneacc0.6846±0.0083

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/80918.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80918.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/80918.shtml

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

相關文章

第二十五天打卡

常見報錯類型 try-except-else-finally 語句 首先執行try語句,若正確直接執行else語句 若try語句發生錯誤,則判斷錯誤類型,執行錯誤類型對應的except語句,不執行else語句 finally語句無條件執行,多用于資源保存&…

城市掃街人文街頭紀實膠片電影感Lr調色預設,DNG/手機適配濾鏡!

調色詳情 城市掃街人文街頭紀實膠片電影感 Lr 調色是通過 Lightroom(Lr)軟件,對城市街頭抓拍的人文紀實照片進行后期調色處理。旨在賦予照片如同膠片拍攝的質感以及電影般濃厚的敘事氛圍,不放過每一個日常又珍貴的瞬間&#xff0c…

【hadoop】Kafka 安裝部署

一、Kafka安裝與配置 步驟: 1、使用XFTP將Kafka安裝包kafka_2.12-2.8.1.tgz發送到master機器的主目錄。 2、解壓安裝包: tar -zxvf ~/kafka_2.12-2.8.1.tgz 3、修改文件夾的名字,將其改為kafka,或者創建軟連接也可&#xff1…

UDP 多點通信

一、setsockopt/getsockopt 函數詳解 1. 函數原型 c #include <sys/socket.h> int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen); int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);…

說一說Node.js高性能開發中的I/O操作

眾所周知&#xff0c;在軟件開發的領域中&#xff0c;輸入輸出&#xff08;I/O&#xff09;操作是程序與外部世界交互的重要環節&#xff0c;比如從文件讀取數據、向網絡發送請求等。這段時間&#xff0c;也指導項目中一些項目的開發工作&#xff0c;發現在Node.js運用中&#…

Charles抓包并破解ProtoBuf請求

安裝Charles并抓包 如果是外網的需要root安裝一系列證書等&#xff0c;詳細見參考文章&#xff1a; 在雷電模擬器安卓7.0上使用Charles抓包詳細教程 遇到如下問題&#xff1a; 1.粘貼到目錄/system/etc/security/cacerts內&#xff0c;粘貼不了。需要打開這個 2.模擬器wifi打…

Odoo 18 安全組與訪問權限管理指南

Odoo 18 安全組與訪問權限管理指南 一、準備工作&#xff1a;在自定義模塊中創建安全配置文件 創建 security 文件夾 在自定義模塊內創建名為 security 的文件夾&#xff0c;用于存放安全組和訪問權限的定義文件。 二、定義模型訪問權限&#xff1a;ir.model.access.csv 文…

使用lldb查看Rust不同類型的結構

目錄 前言 正文 標量類型 復合類型——元組 復合類型——數組 函數 &str struct 可變數組vec Iter String Box Rc Arc RefCell Mutex RwLock Channel 總結 前言 筆者發現這個lldb挺好玩的&#xff0c;可以查看不同類型的結構&#xff0c;雖然這好像是C的東…

uniapp使用ui.request 請求流式輸出

正文&#xff1a; 在現代Web開發中&#xff0c;實時數據流和長時間運行的請求變得越來越常見&#xff0c;尤其是在處理大量數據或進行實時通信時。在這種情況下&#xff0c;uniapp 提供的 ui.request 請求方法可以幫助我們輕松實現流式輸出請求。本文將介紹如何使用 uni.reques…

如何恢復被勒索軟件加密的服務器文件(解密與備份策略)

針對勒索軟件加密文件的恢復和解密策略&#xff0c;結合當前數據安全最佳實踐&#xff0c;整理應對指南如下&#xff1a; 一、文件解密與修復方法 立即隔離設備? 斷開網絡連接并禁用共享功能&#xff0c;防止病毒橫向傳播 通過文件后綴異常&#xff08;如.locked、.wxx&…

JS,ES,TS三者什么區別

Java Script(JS)、ECMAScript(ES)、TypeScript(TS) 的核心區別與關聯的詳細解析,結合技術背景、設計目標及應用場景展開說明: 一、核心定義與關系 JavaScript(JS) 定義:一種動態類型、基于原型的腳本語言,由 Netscape 公司于 1995 年首次開發,用于網頁交互功能。角…

【MapReduce入門】深度解析MapReduce:定義、核心特點、優缺點及適用場景

目錄 1 什么是MapReduce&#xff1f; 2 MapReduce的核心特點 2.1 分布式處理 2.2 容錯機制 3 MapReduce的完整工作流程 4 MapReduce的優缺點分析 4.1 優勢 4.2 局限性 5 MapReduce典型應用場景 5.1 適用場景 5.2 不適用場景 6 MapReduce與其他技術的對比 7 總結 1…

【Redis】分布式鎖的實現

目錄 一、本地鎖存在的問題 二、redis實現分布式鎖原理 三、使用示例 四、鎖誤刪問題 解決思路 獲取鎖和釋放鎖代碼優化 五、鎖釋放的原子性問題 解決思路&#xff08;Lua腳本&#xff09; 使用流程 總結 大家好&#xff0c;我是千語。上期給大家講了使用悲觀鎖來解決…

Unity3D對象池設計與實現詳解

前言 在Unity3D中&#xff0c;對象池&#xff08;Object Pooling&#xff09;是一種優化技術&#xff0c;用于減少頻繁實例化和銷毀對象帶來的性能開銷。以下是對象池的詳細設計和實現步驟&#xff1a; 對惹&#xff0c;這里有一個游戲開發交流小組&#xff0c;希望大家可以點…

[Spring]-組件的生命周期

組件生命周期 認識組件的聲明周期 實驗1 通過Bean指定組件的生命周期 package com.guigu.spring.ioc.bean;Data public class User {private String username;private String password;private Car car;Autowiredpublic void setCar(Car car) {System.out.println("自動…

【golang】網絡數據包捕獲庫 gopacket

詳解 github.com/google/gopacket/pcap 包 github.com/google/gopacket/pcap 是 Go 語言中一個強大的網絡數據包捕獲庫&#xff0c;它是 gopacket 項目的一部分&#xff0c;提供了對 libpcap&#xff08;Linux/Unix&#xff09;和 WinPcap&#xff08;Windows&#xff09;的 G…

RBTree的模擬實現

1&#xff1a;紅黑樹的概念 紅?樹是?棵?叉搜索樹&#xff0c;他的每個結點增加?個存儲位來表?結點的顏?&#xff0c;可以是紅?或者??。通過對任何?條從根到葉?的路徑上各個結點的顏?進?約束&#xff0c;紅?樹確保沒有?條路徑會?其他路徑?出2倍&#xff0c;因…

React 第三十九節 React Router 中的 unstable_usePrompt Hook的詳細用法及案例

React Router 中的 unstable_usePrompt 是一個用于在用戶嘗試離開當前頁面時觸發確認提示的自定義鉤子&#xff0c;常用于防止用戶誤操作導致數據丟失&#xff08;例如未保存的表單&#xff09;。 一、unstable_usePrompt用途 防止意外離開頁面&#xff1a;當用戶在當前頁面有…

OSI 7層模型

OSI 7層模型&#xff1a; 1、物理層&#xff08;光纖等把電腦連接起來的物理手段&#xff09; 2、數據鏈路層&#xff08;以太網&#xff0c;確認0和1電信號的分組方式&#xff0c;負責MAC地址&#xff0c;MAC地址用于在網絡中唯一標示一個網卡&#xff0c;相當于網卡的身份證…

視頻編解碼學習十一之視頻原始數據

一、視頻未編碼前的原始數據是怎樣的&#xff1f; 視頻在未編碼前的原始數據被稱為 原始視頻數據&#xff08;Raw Video Data&#xff09;&#xff0c;主要是按照幀&#xff08;Frame&#xff09;來組織的圖像序列。每一幀本質上就是一張圖片&#xff0c;通常采用某種顏色格式…