量化压缩
我们使用了自己开发的 AngleSlim 压缩工具来生成 FP8 和 INT4 量化模型。AngleSlim 是一套致力于创建更用户友好、全面且高效的模型压缩解决方案的工具集。
https://github.com/tencent/AngelSlim
FP8 量化
我们使用了 FP8 静态量化,FP8 量化采用 8 位浮点格式,通过少量校准数据(无需训练)预先确定量化尺度,将模型权重和激活值转换为 FP8 格式,以提高推理效率并降低部署门槛。您可以使用 AngleSlim 量化,也可以直接下载我们的开源量化完成模型进行使用 链接。
INT4 量化
我们使用 GPTQ 和 AWQ 算法实现了 W4A16 量化。
GPTQ 按层处理模型权重,使用少量校准数据来最小化量化权重的重构误差,并通过近似海森逆矩阵的优化过程逐层调整权重。该过程无需重新训练模型,仅需少量校准数据即可对权重进行量化,从而提高推理效率并降低部署门槛。 AWQ 使用少量校准数据(无需训练),统计计算激活值的幅度。对于每个权重通道,计算一个缩放系数 s 来扩展重要权重的数值范围,以便在量化过程中保留更多信息。
您可以使用 AngleSlim 量化,也可以直接下载我们已经完成量化的开源模型来使用 LINK。
量化基准
本小节描述了混沌量化模型的基准指标。
部署
对于部署,您可以使用 TensorRT-LLM、vLLM 或 SGLang 等框架来服务模型并创建与 OpenAI 兼容的 API 端点。
图片: https://hub.docker.com/r/hunyuaninfer/hunyuan-7B/tags
TensorRT-LLM
Docker 镜像
我们提供了基于最新版本 TensorRT-LLM 的预构建 Docker 镜像。
我们以 tencent/Hunyuan-7B-Instruct 为例
开始:
https://hub.docker.com/r/hunyuaninfer/hunyuan-large/tags
docker pull hunyuaninfer/hunyuan-7B:hunyuan-moe-7B-trtllm
docker run –privileged –user root –name hunyuanLLM_infer –rm -it –ipc=host –ulimit memlock=-1 –ulimit stack=67108864 –gpus=all hunyuaninfer/hunyuan-7B:hunyuan-moe-7B-trtllm
准备配置文件:
cat >/path/to/extra-llm-api-config.yml <<EOF
use_cuda_graph: true
cuda_graph_padding_enabled: true
cuda_graph_batch_sizes:
- 1
- 2
- 4
- 8
- 16
- 32
print_iter_log: true
EOF
启动 API 服务器:
trtllm-serve
/path/to/HunYuan-moe-7B
–host localhost
–port 8000
–backend pytorch
–max_batch_size 32
–max_num_tokens 16384
–tp_size 2
–kv_cache_free_gpu_memory_fraction 0.6
–trust_remote_code
–extra_llm_api_options /path/to/extra-llm-api-config.yml
vllm
启动
请使用 vLLM 版本 v0.10.0 或更高版本进行推理。
我们以 tencent/Hunyuan-7B-Instruct 为例
下载模型文件:
Huggingface:将由 vllm 自动下载。
ModelScope:modelscope download –model Tencent-Hunyuan/Hunyuan-7B-Instruct
通过 Huggingface 下载的模型:
export MODEL_PATH=tencent/Hunyuan-7B-Instruct
通过 ModelScope 下载的模型:
export MODEL_PATH=/root/.cache/modelscope/hub/models/Tencent-Hunyuan/Hunyuan-7B-Instruct/
启动 API 服务器:
python3 -m vllm.entrypoints.openai.api_server
–host 0.0.0.0
–port 8000
–trust-remote-code
–model ${MODEL_PATH}
–tensor-parallel-size 1
–dtype bfloat16
–quantization experts_int8
–served-model-name hunyuan
2>&1 | tee log_server.txt
成功运行服务脚本后,运行请求脚本
curl http://0.0.0.0:8000/v1/chat/completions -H ‘Content-Type: application/json’ -d ‘{
“model”: “hunyuan”,
“messages”: [
{
“role”: “system”,
“content”: [{“type”: “text”, “text”: “You are a helpful assistant.”}]
},
{
“role”: “user”,
“content”: [{“type”: “text”, “text”: “请按面积大小对四大洋进行排序,并给出面积最小的洋是哪一个?直接输出结果。”}]
}
],
“max_tokens”: 2048,
“temperature”:0.7,
“top_p”: 0.6,
“top_k”: 20,
“repetition_penalty”: 1.05,
“stop_token_ids”: [127960]
}’
定量模型部署
本节描述了使用 vLLM 部署后量化模型的过程。
默认服务器在 BF16 模式下运行。
Int8 定量模型部署
部署 HunYuan-7B 模型的仅 Int8 权重版本只需设置环境变量
接下来我们启动 Int8 服务。运行:
python3 -m vllm.entrypoints.openai.api_server
–host 0.0.0.0
–port 8000
–trust-remote-code
–model ${MODEL_PATH}
–tensor-parallel-size 1
–dtype bfloat16
–served-model-name hunyuan
–quantization experts_int8
2>&1 | tee log_server.txt
Int4 定量模型部署
部署 HunYuan-7B 模型的仅 Int4 权重版本只需设置环境变量,使用 GPTQ 方法
export MODEL_PATH=PATH_TO_INT4_MODEL
接下来我们启动 Int4 服务。运行
python3 -m vllm.entrypoints.openai.api_server
–host 0.0.0.0
–port 8000
–trust-remote-code
–model ${MODEL_PATH}
–tensor-parallel-size 1
–dtype bfloat16
–served-model-name hunyuan
–quantization gptq_marlin
2>&1 | tee log_server.txt
FP8 定量模型部署
部署 HunYuan-7B 模型的 W8A8C8 版本只需设置环境变量
接下来我们启动 FP8 服务。运行
python3 -m vllm.entrypoints.openai.api_server
–host 0.0.0.0
–port 8000
–trust-remote-code
–model ${MODEL_PATH}
–tensor-parallel-size 1
–dtype bfloat16
–served-model-name hunyuan
–kv-cache-dtype fp8
2>&1 | tee log_server.txt
SGLang
Docker 镜像
我们还提供了一个基于最新版 SGLang 构建的预构建 Docker 镜像。
我们以 tencent/Hunyuan-7B-Instruct 为例
开始步骤:
拉取 Docker 镜像
docker pull lmsysorg/sglang:latest
启动 API 服务器:
docker run –entrypoint=”python3” –gpus all
–shm-size 32g
-p 30000:30000
–ulimit nproc=10000
–privileged
–ipc=host
lmsysorg/sglang:latest
SGLANG_USE_MODELSCOPE=true -m sglang.launch_server –model-path hunyuan/huanyuan_7B –tp 4 –trust-remote-code –host 0.0.0.0 –port 30000
最后编辑:Jeebiz 更新时间:2025-08-04 23:11