QUICK REVIEW
[论文解读] Neural Network Distiller: A Python Package For DNN Compression Research
Neta Zmora, Guy Jacob|arXiv (Cornell University)|Oct 27, 2019
Computational Physics and Python Applications参考文献 39被引用 52
一句话总结
本文介绍 Neural Network Distiller,一个用 PyTorch 编写的开源 Python 包,提供一套 DNN 压缩算法、调度工具和教程,便于在模型压缩研究中进行轻松的实验和扩展。
ABSTRACT
This paper presents the philosophy, design and feature-set of Neural Network Distiller, an open-source Python package for DNN compression research. Distiller is a library of DNN compression algorithms implementations, with tools, tutorials and sample applications for various learning tasks. Its target users are both engineers and researchers, and the rich content is complemented by a design-for-extensibility to facilitate new research. Distiller is open-source and is available on Github at https://github.com/NervanaSystems/distiller.
研究动机与目标
- 在边缘设备推理场景中,激励建立标准化、可重复的 DNN 压缩研究需求。
- 为研究人员和工程师提供可扩展、易用的压缩算法及工具库。
- 通过调度系统和 YAML 配置实现训练与压缩的交错,以实现快速实验。
提出的方法
- 在 Python/PyTorch 框架内实现核心压缩组件(剪枝、量化、正则化)。
- 提供附加技术(低秩分解、条件计算、知识蒸馏、自动化压缩)及与现有模型/数据集的集成。
- 引入带有 YAML 配方解析器的压缩调度子系统,以根据用户定义的时间表交错训练和压缩。
- 提供日志、检查点、数据加载、模型摘要以及导出到 ONNX 的工具,以支持实验和部署工作流。
- 使用 Torchvision 和 Cadene 的模型,展示在图像分类、推荐系统、NLP、目标检测等任务中的适用性,并为新模型/任务提供易于扩展的能力。
实验结果
研究问题
- RQ1研究人员如何在相同的实验条件(数据集、预处理、超参数、执行环境)下测试和比较 DNN 压缩方法?
- RQ2如何将压缩方法与培训有效交错,以实现迭代剪枝、量化或其他压缩?
- RQ3Distiller 是否支持混合压缩方法(如量化和剪枝),并提供灵活的框架来原型化新想法?
- RQ4Distiller 的调度与工具在快速研究原型设计和知识共享方面的范围与实用性如何?
主要发现
- Distiller 将大范围的压缩方法(剪枝、量化、正则化)及相关技术(低秩、蒸馏)聚合到一个库中。
- 它提供一个压缩调度子系统和基于 YAML 的配置,用于以编程方式或通过配置文件控制训练与压缩迭代。
- 该工具包旨在与 PyTorch、Torchvision 模型和 Cadene 模型轻松集成,并包含教程、笔记本和文档来加速研究。
- Distiller 支持多任务,包括图像分类、推荐系统、NLP 和目标检测,展示其在各领域的灵活性。
- 作者承认当前的局限性,例如使用 FP32 操作模拟 INT8,以及当前版本中缺少 ONNX/Glow 导出,并计划与原生 PyTorch 量化保持一致。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。