NNCF v2.17.0发布:模型量化与压缩技术全面升级
项目简介
NNCF(Neural Network Compression Framework)是Intel开源的一个神经网络压缩框架,专注于为深度学习模型提供高效的量化与压缩解决方案。作为OpenVINO工具套件的重要组成部分,NNCF支持PyTorch、TensorFlow、ONNX等多种深度学习框架,能够显著减小模型体积、提升推理速度,同时保持模型精度。
核心更新内容
训练后量化技术增强
通用改进
在PyTorch后端中,function_hook模块现已从实验状态升级为默认模型追踪机制,并迁移至核心nncf.torch命名空间。这一变化使得模型量化过程更加稳定可靠。
新增特性
-
4位数据无关AWQ量化:本次更新在OpenVINO、PyTorch和TorchFX后端中引入了基于权重列幅度的4位AWQ(Activation-aware Weight Quantization)量化技术。这种创新方法无需依赖数据集即可实现更精确的压缩,特别适合资源受限的场景。
-
OpenVINO FP8支持扩展:新增了对ScaledDotProductAttention中value输入的FP8量化支持,进一步扩展了低精度计算的应用范围。
-
ONNX后端强化:
- 增加了使用INT4(INT8)进行数据无关权重压缩的支持
- 新增了LLM权重压缩示例,展示了如何在ONNX格式下优化TinyLlama-1.1B-Chat-v0.3模型
- 引入了BackendParameters.EXTERNAL_DATA_DIR参数,用于指定模型外部数据文件的存储路径,提升了大型模型处理的灵活性
-
TorchFX实验性功能:增加了4位权重压缩支持,结合AWQ和Scale Estimation数据感知方法,有效减少了精度损失。
问题修复与优化
- 简化了TorchFX的使用流程,移除了不必要的nncf.torch.disable_patching()上下文管理器
- 修复了无批次维度模型的BiasCorrection失败问题
- 对齐了NF4与OpenVINO实现的quantile centers
- 优化了权重压缩统计信息显示,现在能正确展示忽略权重的数据类型
- 显著提升了NF4权重压缩性能,速度提升高达10倍
- 确保nncf.data.generate_text_data支持transformer>4.52版本
压缩感知训练创新
突破性功能
本次更新引入了结合可吸收弹性LoRA适配器和神经低秩搜索(NLS)的量化感知训练(QAT)方法。这种新颖的权重压缩技术专门针对下游任务设计,相比NNCF中现有的最佳训练后权重压缩技术(Scale Estimation + AWQ + GPTQ),能显著减少int4权重LLM在下游任务中的精度损失。
新增的nncf.compress_weights API中提供了nncf.CompressionFormat.FQ_LORA_NLS压缩格式选项,开发者可以轻松体验这一前沿技术。示例QAT压缩管道展示了如何在下游任务中应用这一方法,与上一版本专注于通过知识蒸馏提升通用精度的方案形成互补。
重要改进
- 大幅缩小了Torch模型与其导出的OpenVINO等效模型之间的精度差距
- 优化了"QAT + 可吸收LoRA"结合知识蒸馏的最佳检查点评估选择流程,现在使用Wikitext的验证分割评估调优后的Torch模型,而最终结果则在测试分割上使用OpenVINO模型测量
依赖项更新
- 升级ONNX Runtime至1.21.1版本
- 更新PyTorch至2.7.1、Torchvision至0.22.1
- 移除了jstyleson依赖
技术价值与应用前景
NNCF v2.17.0的发布标志着模型压缩技术又向前迈进了一大步。特别是4位AWQ量化和QAT with LoRA/NLS这两项创新,为大型语言模型的高效部署提供了强有力的工具。
在实际应用中,开发者现在可以:
- 无需准备校准数据集即可获得高质量的4位量化模型
- 针对特定下游任务精细调整量化模型,最大限度保留任务相关精度
- 更灵活地处理ONNX格式的大型模型
- 体验显著提升的压缩速度和更稳定的量化过程
这些改进使得NNCF在边缘计算、移动端部署等资源受限场景中更具竞争力,为AI模型的普惠化应用铺平了道路。随着量化技术的不断成熟,我们有望看到更多复杂模型能够在消费级硬件上高效运行,推动AI技术在各行业的深入应用。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0191
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0113
Step-3.7-FlashStep-3.7-Flash是一个拥有 1980 亿参数的稀疏混合专家(MoE)视觉语言模型,由 1960 亿参数的语言主干网络和 18 亿参数的视觉编码器组合而成,具备原生图像理解能力。Python00
JoyAI-EchoJoyAI-Echo,这是一个独立的、仅用于推理的版本,旨在实现分钟级多镜头音视频生成。它采用了经过蒸馏的DMD生成器、配对的跨模态记忆以及故事级别的一致性。其性能的核心在于,一个跨模态视听记忆库能够在长达五分钟的视频中保持角色外观和语音音色的一致性。同时,一个训练后处理流程将基于记忆的强化学习与分布匹配蒸馏相结合,实现了7.5倍的速度提升,显著增强了视觉质量和对齐效果。00
omega-aiOmega-AI:基于java打造的深度学习框架,帮助你快速搭建神经网络,实现模型推理与训练,引擎支持自动求导,多线程与GPU运算,GPU支持CUDA,CUDNN。Java04
llm-universe本项目是一个面向小白开发者的大模型应用开发教程,在线阅读地址:https://datawhalechina.github.io/llm-universe/Jupyter Notebook08