LMDeploy 量化部署
InternLM 2.5 20b量化前部署
lmdeploy serve api_server \
/root/learning/InternLM/XTuner/merged_20b \
--model-format hf \
--quant-policy 0 \
--cache-max-entry-count 0.01\
--server-name 0.0.0.0 \
--server-port 23333 \
--tp 1
lmdeploy serve api_server:这个命令用于启动API服务器。
/root/learning/InternLM/XTuner/merged_20b:这是模型的路径。
–model-format hf:这个参数指定了模型的格式。hf代表“Hugging Face”格式。
–quant-policy 0:这个参数指定了量化策略。
–cache-max-entry-count 0.01: 这个参数控制kv缓存占用剩余显存的最大比例。默认的比例为0.8
–server-name 0.0.0.0:这个参数指定了服务器的名称。在这里,0.0.0.0是一个特殊的IP地址,它表示所有网络接口。
–server-port 23333:这个参数指定了服务器的端口号。在这里,23333是服务器将监听的端口号。
–tp 1:这个参数表示并行数量(GPU数量)。
显存占用
W4A16 模型量化
HF_DATASETS_TRUST_REMOTE_CODE=True
lmdeploy lite auto_awq \
/root/learning/InternLM/XTuner/merged_20b \
--calib-dataset 'ptb' \
--calib-samples 128 \
--calib-seqlen 2048 \
--w-bits 4 \
--w-group-size 128 \
--batch-size 1 \
--search-scale False \
--work-dir /root/learning/InternLM/XTuner/merged_20b-w4a16-4bit
lmdeploy lite auto_awq: lite这是LMDeploy的命令,用于启动量化过程,而auto_awq代表自动权重量化(auto-weight-quantization)。
/root/learning/InternLM/XTuner/merged_20b: 模型文件的路径。
–calib-dataset ‘ptb’: 这个参数指定了一个校准数据集,这里使用的是’ptb’(Penn Treebank,一个常用的语言模型数据集)。
–calib-samples 128: 这指定了用于校准的样本数量—128个样本
–calib-seqlen 2048: 这指定了校准过程中使用的序列长度—1024
–w-bits 4: 这表示权重(weights)的位数将被量化为4位。
/root/learning/InternLM/XTuner/merged_20b-w4a16-4bit: 这是工作目录的路径,用于存储量化后的模型和中间结果。
量化模型部署
lmdeploy serve api_server \
/root/learning/InternLM/XTuner/merged_20b-w4a16-4bit \
--model-format awq \
--quant-policy 4 \
--cache-max-entry-count 0.01\
--server-name 0.0.0.0 \
--server-port 23333 \
--tp 1
显存占用
streamlit web
streamlit run /root/learning/HayLM/app.py