目录

简体中文 | English

AngelSlim

致力于打造更易用、更全面和更高效的大模型压缩工具包

✒️ TechnicalReport   |    📖 Documentation   |   🤗 Hugging Face   |   🤖 ModelScope

💬 WeChat |   🫨 Discord

📣最新进展

  • [26/03/25] 我们发布了量化算法DAQ,该方法在后训练参数更新较小时,可保留量化后模型能力 [论文] | [文档]
  • [26/02/09] 我们发布了 HY-1.8B-2Bit, 2比特端侧大模型, 模型可见[Huggingface].
  • [26/01/13] 我们发布V0.3版本, 支持了全模态场景的投机采样训练及部署,文档:Eagle3 for LLM/VLM/Audio。并且我们发布了 Sherry 新的硬件高效的1.25bit三值量化算法 [论文] | [代码]🔥🔥🔥
  • [25/11/05] 我们发布V0.2版本,支持了包括GLM-4.6/Qwen3-VL/Qwen3-Omni等更多模型的量化,开源投机采样Eagle3训练框架,更新Diffusion模型量化工具。
  • [25/09/30] 我们开源了思考早退新算法 SpecExit [论文] | [文档] | [vLLM代码]
  • [25/09/30] 我们发布了三值量化新算法 Tequila [论文] | [代码]
  • [25/09/24] 我们支持了Qwen3系列模型的NVFP4的PTQ量化,我们还开源了Qwen3-32B-NVFP4Qwen3-235B-A22B-NVFP4权重。
历史更新
  • [25/09/01] 我们支持了Hunyuan-MT-7B翻译开源模型的FP8量化;支持了Eagle3的Torch推理及Benchmark评测流程。
  • [25/08/06] 我们支持了Hunyuan 0.5B/1.8B/4B/7BQwen2.5VL 3B/7B/32B/72B的FP8、INT4量化,支持了DeepSeek-R1/V3Kimi-K2模型的W4A8-FP8量化。我们还开源了Hunyuan 1.8B/4B/7B系列模型的Eagle3权重。
  • [25/07/04] 我们支持了Hunyuan/Qwen2.5/Qwen3/DeepSeek-R1-Distill-Qwen等模型的量化,包含INT8、FP8、INT4等算法。 我们还开源了Qwen3系列模型的Eagle3权重。

🌟主要特性

  • 高度集成化:本工具将主流的压缩算法集成到工具,开发者可一键式调用,具有很好的易用性。
  • 持续算法创新:本工具除了集成工业界使用最广的算法,还持续自研更好的压缩算法,并且会陆续开源。
  • 追求极致性能:在模型压缩流程、压缩算法部署方面,本工具持续端到端优化,例如单卡GPU可量化Qwen3-235B和Deepseek-R1。

💼技术概览

场景 模型 压缩策略
量化 投机采样 其他技术
文生文(LLM)
  • 稀疏注意力
    • Minference(建设中)
图/视频生文(VLM)
  • Token剪枝
    • 建设中
文生图/视频/3D(Diffusion) -
语音(TTS/ASR)
  • Token剪枝
    • 建设中

🛎️如何使用

1、安装 AngelSlim

推荐使用pip直接安装最新稳定版AngelSlim

pip install angelslim

也可以选择克隆代码仓库后,以可编辑的方式从源代码安装:

cd AngelSlim && python setup.py install

更详细的安装说明以及不同平台的安装指引,可参考安装文档

2、快速开始

2.1 投机采样

完成安装AngelSlim后,您可以通过以下脚本快速开始Eagle3训练:

# 启动vLLM server
bash scripts/speculative/run_vllm_server.sh
# 生成训练数据
bash scripts/speculative/generate_data_for_target_model.sh
# 进行Eagle3模型的在线训练
bash scripts/speculative/train_eagle3_online.sh

全模态大模型的 Eagle3 训练与部署指南可参考:LLM | VLM | Audio(ASR) | Audio(TTS).

2.2 LLM/VLM模型量化

完成安装AngelSlim后,您可以通过以下脚本快速开始,完成Qwen3-1.7B模型的静态FP8量化:

1、一键式启动

python3 tools/run.py -c configs/qwen3/fp8_static/qwen3-1_7b_fp8_static.yaml

该示例将会加载HugggingFace模型进行PTQ量化校准,最终量化产出模型权重.

2、源码启动

例如对Qwen3-1.7B完成动态FP8量化:

from angelslim.engine import Engine

slim_engine = Engine()
# Prepare model
slim_engine.prepare_model(model_name="Qwen", model_path="Qwen/Qwen3-1.7B")
# Initialize compressor
slim_engine.prepare_compressor("PTQ", default_method="fp8_dynamic")
# Compress model
slim_engine.run()
# Save compressed model
slim_engine.save("./output")

详情请参考量化快速开始文档

2.3 Diffusion模型量化

使用 scripts/diffusion/run_diffusion.py 脚本进行量化与推理:

# 在线量化并运行推理
python scripts/diffusion/run_diffusion.py \
  --model-name-or-path black-forest-labs/FLUX.1-schnell \
  --quant-type fp8-per-tensor \
  --prompt "A cat holding a sign that says hello world" \
  --height 1024 --width 1024 --steps 4 --guidance 0.0 --seed 0

更多量化推理方式请参考Diffusion模型量化文档

2.4 Token 压缩 (多模态/VLM)

AngelSlim 提供了一套基于元数据驱动的通用视觉 Token 剪枝与合并框架。你可以通过以下 Smoke Test 快速验证压缩策略(如 VisionZip):

python tools/test_universal_pruning.py \
    --model_path "Qwen/Qwen2.5-VL-3B-Instruct" \
    --config "configs/qwen2_5_vl/pruning/visionzip_r0.9.yaml"

关于如何新增自定义剪枝策略及算法实现细节,请参考 Token 压缩说明文档

3、部署与测试

3.1 离线推理

通过transformers加载量化模型进行离线推理。

执行脚本细节
python scripts/deploy/offline.py $MODEL_PATH "Hello, my name is"

其中 MODEL_PATH 为量化产出模型路径。

3.2 服务部署

支持通过 vLLMSGLang推理框架部署 OpenAI 兼容的 API 服务。

执行脚本细节
  • vLLM

    vLLM 服务启动脚本,建议版本vllm>=0.8.5.post1,部署MOE INT8量化模型需要vllm>=0.9.2

    bash scripts/deploy/run_vllm.sh --model-path $MODEL_PATH --port 8080 -d 0,1,2,3 -t 4 -p 1 -g 0.8 --max-model-len 4096

    其中-d为可见设备,-t为张量并行度,-p为流水线并行度,-g为显存使用率。

  • SGLang

    SGLang 服务启动脚本,建议版本 sglang>=0.4.6.post1

    bash scripts/deploy/run_sglang.sh --model-path $MODEL_PATH --port 8080 -d 0,1,2,3 -t 4 -g 0.8

3.3 服务调用

通过 OpenAI 格式 接口发起请求。

执行脚本细节
bash scripts/deploy/openai.sh -m $MODEL_PATH -p "Hello, my name is" --port 8080 --max-tokens 4096 --temperature 0.7 --top-p 0.8 --top-k 20 --repetition-penalty 1.05 --system-prompt "You are a helpful assistant."

其中-p为输入prompt

3.4 效果验证

使用 lm-evaluation-harness 评估量化模型精度,建议版本lm-eval>=0.4.8

执行脚本细节
bash scripts/deploy/lm_eval.sh -d 0,1 -t 2 -g 0.8 -r $RESULT_PATH -b "auto" --tasks ceval-valid,mmlu,gsm8k,humaneval -n 0 $MODEL_PATH

其中RESULT_PATH为测试结果保存目录,-b为batch size大小,--tasks为评测任务,-n为few-shot数量

详细操作指南请参阅部署文档

📈Benchmark

1、投机采样

我们使用vLLM在代码、数学、指令跟随、文本生成、多模态理解等任务上评测了AngelSlim所训练的Eagle3模型,设置num_speculative_tokens=2 or 4 下我们所训的模型加速和接收长度表现如下所示,接收长度在1.8-3.5,最高加速可达1.4-1.9倍。

AngelSlim

1.1 Qwen3系列模型

我们使用vLLM(v0.11.2)评测了Qwen3系列Eagle3模型在MT-benchHumanEvalGSM8KAlpaca等数据集上的接收长度和吞吐。全部结果都是在单张GPU上用以下设置测得:tp=1, ep=1, num_speculative_tokens=2, batch_size=1, output_len=1024

Model Method GSM8K Alpaca HumanEval MT-bench Mean
throughput (tokens/s)accept length throughput (tokens/s)accept length throughput (tokens/s)accept length throughput (tokens/s)accept length throughput (tokens/s)accept length
Qwen3-1.7B Vanilla 376.421 378.861 378.381 390.531 381.051
Eagle3 616.92.13 653.292.19 680.12.2 621.442.17 642.932.17
Qwen3-4B Vanilla 229.051 235.291 234.661 234.041 233.261
Eagle3 389.352.07 395.972.1 377.842.08 384.62.07 386.942.08
Qwen3-8B Vanilla 149.631 149.931 153.851 153.811 151.811
Eagle3 257.322 266.692.02 244.891.97 258.21.97 257.521.99
Qwen3-14B Vanilla 92.971 92.661 92.941 94.461 93.261
Eagle3 153.721.87 140.461.78 144.681.76 142.451.74 145.331.79
Qwen3-32B Vanilla 43.491 43.381 43.191 43.31 43.321
Eagle3 80.432.01 72.491.9 71.571.86 74.11.86 74.11.91
Qwen3-30B-A3B Vanilla 311.841 320.431 325.771 325.421 320.871
Eagle3 453.972.1 432.452.04 428.812.02 437.062.01 438.072.04

1.2 多模态理解模型

1.2.1 Qwen3-VL系列模型

我们使用(v0.12.0)评测了Qwen3-VL系列Eagle3模型在语言理解任务和多模态理解任务上的接收长度和吞吐。全部结果都是在单张GPU上用以下设置测得:tp=1, ep=1, num_speculative_tokens=4, batch_size=1, output_len=1024

Model Method GSM8K Alpaca HumanEval MT-bench MATH-500 MMMU MMStar Mean
throughput (tokens/s) accept length throughput (tokens/s) accept length throughput (tokens/s) accept length throughput (tokens/s) accept length throughput (tokens/s) accept length throughput (tokens/s) accept length throughput (tokens/s) accept length throughput (tokens/s) accept length
Qwen3-VL-2B-Instruct Vanilla 348.55 1 350.9 1 346.07 1 346.31 1 82.96 1 83.27 1 81.63 1 234.24 1
Eagle3 511.52 2.11 560.55 2.26 826.01 3.39 555.22 2.29 163.09 2.57 154.18 2.55 139.73 2.31 415.76 2.5
Qwen3-VL-4B-Instruct Vanilla 212.87 1 213.24 1 211.69 1 212.1 1 67.96 1 65.88 1 67.75 1 150.21 1
Eagle3 415.29 2.57 372.89 2.26 459.37 2.82 382.33 2.34 141.87 2.72 104.44 2.05 107.07 2.1 283.32 2.41
Qwen3-VL-30B-A3B-Instruct Vanilla 179.94 1 184.6 1 168.68 1 180.57 1 31.08 1 31.51 1 30.93 1 115.33 1
Eagle3 281.93 2.82 241.42 2.13 223.05 2.57 240.47 2.19 75.31 2.79 48.47 1.78 52.57 1.94 166.17 2.32
1.2.2 HunyuanOCR模型

我们使用(v0.13.0)评测了HunyuanOCR Eagle3模型在OmniDocBench上的接收长度和吞吐。结果是在单张GPU上用以下设置测得:tp=1, ep=1, num_speculative_tokens=4, batch_size=1, output_len=1024

Model Method OmniDocBench
throughput (tokens/s) accept length
Hunyuan-OCR Vanilla 70.12 1
Eagle3 108.1 2.08

1.3 语音模型

1.3.1 Qwen2-Audio模型

我们使用(v0.12.0)评测了Qwen2-Audio Eagle3模型在LibriSpeech数据集上的接收长度和吞吐。结果是在单张GPU上用以下设置测得:tp=1, ep=1, num_speculative_tokens=4, batch_size=1, output_len=1024

Model Method LibriSpeech
throughput (tokens/s) accept length
Qwen2-Audio Vanilla 78.76 1
Eagle3 146.66 3.51
1.3.2 Fun-CosyVoice3模型

我们评测了Fun-CosyVoice3 Eagle3模型在LibriTTS数据集上的接收长度。结果是在单张GPU上用以下设置测得:tp=1, ep=1, num_speculative_tokens=4, batch_size=1, output_len=1024

Model Method LibriTTS
throughput (tokens/s) accept length
Fun-CosyVoice3 Vanilla - 1
Eagle3 - 1.96

Adapted for Transformers backend inference, only displays accept length. vLLM speedup ~1.6×, estimated from baseline LLM speedup.

2、量化

下面只展示了部分模型的效果测试情况,完整Benchmark可以参考Benchmark文档

2.1 Hunyuan系列模型

Hunyuan-Instruct的BF16FP8INT4-GPTQINT4-AWQOlympiadBenchAIME 2024DROPGPQA-Diamond上的评测结果如下:

ModelQuantizationOlympiadBenchAIME 2024DROPGPQA-Diamond
Hunyuan-A13B-Instruct BF1682.787.3091.171.2
FP8-Static83.086.791.1-
Int4-GPTQ82.786.791.1-
Int4-AWQ82.685.691.0-
Hunyuan-7B-Instruct BF16 76.581.185.960.1
FP8-Static76.680.986.060.1
Int4-GPTQ76.281.085.760.0
Int4-AWQ76.480.985.960.1
Hunyuan-4B-Instruct BF16 73.178.378.261.1
FP8-Static73.176.678.360.2
Int4-GPTQ72.9-78.158.1
Int4-AWQ72.8-78.2-
Hunyuan-1.8B-Instruct BF16 63.456.776.747.2
FP8-Static62.555.275.147.7
Int4-GPTQ60.9-73.044.4
Int4-AWQ61.7-71.743.6
Hunyuan-0.5B-Instruct BF16 29.617.252.823.3
FP8-Static29.617.251.622.5
Int4-GPTQ26.8-50.923.3
Int4-AWQ26.3-48.923.3

2.2 Qwen3系列模型

Qwen3系列模型的BF16FP8-StaticFP8-DynamicINT8-DynamicINT4-GPTQINT4-AWQCEVALMMLUGSM8KHUMANEVAL上的评测结果如下:

ModelQuantizationCEVALMMLUGSM8KHUMANEVAL
Qwen3-0.6BBF1645.8447.2142.9919.51
FP8-Static45.9946.8738.0618.90
FP8-Dynamic45.9946.9338.2920.73
INT8-Dynamic45.1746.9541.1721.34
Qwen3-8BBF1679.2774.7887.7963.41
FP8-Static78.2374.7986.9662.20
FP8-Dynamic78.4574.7587.6462.80
INT8-Dynamic78.0174.8486.9667.07
INT4-GPTQ77.1973.2686.4362.20
INT4-AWQ76.1573.5986.9663.41
Qwen3-14BBF1683.0678.9088.4055.49
FP8-Static82.6278.5789.4657.32
FP8-Dynamic82.2478.9288.3252.44
INT8-Dynamic81.8778.1386.2856.10
INT4-GPTQ81.0578.0287.3457.93
INT4-AWQ82.0277.6884.2361.59
Qwen3-32BBF1686.5582.0074.5337.80
FP8-Static86.9281.7870.2039.63
FP8-Dynamic86.5581.8970.4338.41
INT4-GPTQ86.1881.01-43.29
INT4-AWQ86.1881.54-36.59
Qwen3-30B-A3BBF1683.6679.3689.9931.71
FP8-Static83.9579.4789.0131.10
FP8-Dynamic84.1079.4089.1632.93
INT8-Dynamic83.3679.4889.1634.15
Qwen3-235B-A22BBF1689.6086.2885.2927.44
FP8-Static89.6786.1986.9627.44
FP8-Dynamic89.6786.1885.2228.05
INT8-Dynamic88.9386.2086.2023.78

2.3 DeepSeek系列模型

DeepSeek-R1-0528模型的FP8-Block-WiseW4A8-FP8GPQA DiamondAIME 2024SimpleQALiveCodeBench上的评测结果如下:

ModelQuantizationGPQA DiamondAIME 2024SimpleQALiveCodeBench
DeepSeek-R1-0528FP8-Block-Wise78.2888.6727.877.1
W4A8-FP877.3788.6726.8378.86
备注
  • 以上评测结果使用TRT-LLM框架部署测试5次求平均
  • 评测时使用的超参如下:
    {
    "top_k": 20,
    "top_p": 0.6,
    "temperature": 0.7,
    "output_seq_len": 32768,
    "max_input_seq_len": 16384
    }

2.4 Qwen-VL 系列模型

Qwen3-VL Benchmark

Qwen3VL系列模型的BF16FP8-StaticFP8-DynamicMMMU_VALDocVQA_VALChartQA_TEST上的评测结果如下:

ModelQuantizationMMMU_VALDocVQA_VALChartQA_TEST
Qwen3-VL-32B-InstructBF1660.1196.0894.64
FP8-Static61.2296.0094.64
FP8-Dynamic60.7896.1994.72
Qwen3-VL-30B-A3B-InstructBF1650.4495.2895.36
FP8-Dynamic50.6795.2595.20
Qwen2.5VL Benchmark

Qwen2.5VL系列模型的BF16FP8-StaticFP8-DynamicINT4-GPTQINT4-AWQMMMU_VALDocVQA_VALChartQA_TEST上的评测结果如下:

ModelQuantizationMMMU_VALMMLDocVQA_VALUChartQA_TEST
Qwen2.5VL-3BBF1647.1178.5780.32
FP8-Static47.3379.3479.68
FP8-Dynamic45.9946.9338.29
INT4-GPTQ46.5677.2078.96
INT4-AWQ45.78-79.60
Qwen2.5VL-7BBF1645.4489.7184.64
FP8-Static47.0089.8385.92
FP8-Dynamic47.2289.8088.64
INT4-GPTQ46.6790.45-
INT4-AWQ45.6789.28-
Qwen2.5VL-32BBF1657.0090.03-
FP8-Static57.0089.88-
FP8-Dynamic56.4489.88-
INT4-GPTQ55.2289.80 -
INT4-AWQ55.2290.30-
Qwen2.5VL-72BBF1658.7894.3985.60
FP8-Static57.8994.4185.84
FP8-Dynamic58.6794.3885.60
INT4-GPTQ57.5694.4686.48
INT4-AWQ58.7894.1987.28

2.5 Qwen-Omni 系列模型

Qwen3-Omni Text to Text Benchmark

Qwen3-Omni系列模型的BF16FP8-StaticFP8-Dynamicaime25gpqa_diamondmmlu_redux上的评测结果如下:

ModelQuantizationaime25gpqa_diamondmmlu_redux
Qwen3-Omni-30B-A3B-InstructBF1673.3256.7788.09
FP8-Static71.3356.5787.91
FP8-Dynamic73.3355.1588.07
备注
  • 以上评测结果使用vllm框架部署测试5次求平均(vllm只支持thinker部分)
  • 评测时使用的超参如下:
    {
    "top_p": 0.95,
    "temperature": 0.6,
    "do_sample": true,
    "max-model-len 65536": 65536
    }

2.6 其他模型

其他模型比如GLM、Qwen2.5、Seed-OSS等模型利用FP8-StaticFP8-DynamicINT4-GPTQINT4-AWQ量化等策略在CEVALMMLUGSM8K上进行了评测。

Benchmark实验细节
ModelQuantizationCEVALMMLUGSM8K
Qwen2.5-1.5B-InstructBF1667.0160.0554.28
FP8-Static66.2760.23-
FP8-Dynamic66.7960.0851.71
Qwen2.5-7B-InstructBF1681.2074.5579.98
FP8-Static81.1374.0379.30
FP8-Dynamic80.3174.0779.00
INT4-GPTQ79.0573.0574.75
INT4-AWQ79.3573.2279.38
Qwen2.5-32B-InstructBF1687.3083.2181.73
FP8-Static87.5983.0881.58
FP8-Dynamic87.3083.0481.58
INT4-GPTQ86.7082.4582.03
INT4-AWQ87.0082.64-
DeepSeek-R1-Distill-Qwen-7BBF1653.4953.8075.74
FP8-Static53.5754.1776.19
FP8-Dynamic52.9754.1374.15
INT4-GPTQ51.8652.4475.89
INT4-AWQ53.4953.70-
DeepSeek-R1-Distill-Qwen-14BBF1677.7174.2885.67
FP8-Static77.5674.6686.73
FP8-Dynamic76.8274.6387.11
INT4-GPTQ74.2972.3784.61
INT4-AWQ74.8173.0086.05
DeepSeek-R1-Distill-Qwen-32BBF1684.1880.8987.41
FP8-Static83.4380.9087.57
FP8-Dynamic83.7381.1086.43
INT4-GPTQ84.1079.8086.73
INT4-AWQ82.8480.1587.19

3. Token 压缩 (多模态/VLM)

我们在 Qwen2.5-VL-3B-Instruct 模型上评估了多种视觉 Token 压缩策略(剪枝与合并)。你可以使用以下指令复现评测结果:

python tools/run_pruning_eval.py \
    --model_path "Qwen/Qwen2.5-VL-3B-Instruct" \
    --configs "configs/qwen2_5_vl/pruning/visionzip_r0.9.yaml" \
    --tasks "textvqa" \
    --output_dir "./results/visionzip_test"
Token 压缩详细评测结果 (Qwen2.5-VL-3B-Instruct)
方法 AI2D ChartQA DocVQA MMBCN MMB MME MMStar OCRBench POPE SQA VQAText 平均值
Baseline 79.11 83.56 92.48 73.28 77.32 1517 56.05 80.10 87.41 80.81 78.79 100.0%
保留 25% Tokens (75% 压缩比)
FastV72.7070.0475.9863.4066.92143747.3936.6086.4279.3373.5186.02%
VisionZip74.1971.3270.1167.3571.22145249.3742.5085.5181.3668.1287.34%
HiPrune73.8372.7672.1067.2772.34144948.9341.3085.8680.9169.2787.67%
VisionSelector75.1973.7290.2468.8172.59152149.9761.8085.3680.3776.8693.62%
DivPrune73.0662.9678.4667.1071.82145948.3851.4086.8180.2268.9188.15%
DART71.0865.2079.7265.3871.05142848.7841.8080.9780.9168.2586.17%
VisPruner74.2968.2072.5267.3570.88145849.7444.8086.5981.4669.6287.87%
SCOPE75.8474.0082.4068.8172.94147150.3556.0086.6280.9674.0491.98%
IDPruner75.9475.8490.0069.4273.80150549.4964.9086.2680.4276.9094.42%
保留 10% Tokens (90% 压缩比)
FastV65.8729.7236.8948.3751.98125737.2813.9079.5077.0557.7565.30%
VisionZip67.6551.6037.8859.6263.06133842.8221.4081.1480.4751.5672.75%
HiPrune67.7553.2041.1559.4563.14132641.0820.3080.9080.9653.3173.00%
VisionSelector70.5065.9279.9459.9764.69137442.8645.2082.6680.6171.5784.42%
DivPrune67.7143.1258.0361.2565.12138940.4327.9082.2479.1856.8775.50%
DART67.4947.5660.2357.9963.83129942.1823.4074.2078.6358.0274.09%
VisPruner67.7547.9248.6559.2863.32130541.5122.5078.7479.7754.9573.19%
SCOPE69.7556.2455.0164.2667.18139044.3530.8083.3480.4762.5879.37%
IDPruner71.7963.3279.3863.5768.21143844.0545.5084.5180.5770.0285.71%

📝许可协议

本项目的代码依照 License for AngelSlim 协议开源。

🔗引用

@article{angelslim2026,
  title={AngelSlim: A more accessible, comprehensive, and efficient toolkit for large model compression},
  author={Hunyuan AI Infra Team},
  journal={arXiv preprint arXiv:2602.21233},
  year={2026}
}

💬技术交流

  • AngelSlim是由腾讯混元AI Infra团队研发,新功能在持续迭代更新中,有问题或建议欢迎通过GitHub Issues给我们提issue,或者加入微信技术交流群

  • ⭐ 欢迎给这个仓库点Star来关注后续我们的更新。并且如果有兴趣加入团队进行实习或正式工作,可投递简历至邮箱:lucayu@tencent.com

邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802032778号