0

0

微软提出自动化神经网络训练剪枝框架OTO,一站式获得高性能轻量化模型

PHPz

PHPz

发布时间:2023-04-04 12:50:02

|

2097人浏览过

|

来源于51CTO.COM

转载

oto 是业内首个自动化、一站式、用户友好且通用的神经网络训练与结构压缩框架。

在人工智能时代,如何部署和维护神经网络是产品化的关键问题考虑到节省运算成本,同时尽可能小地损失模型性能,压缩神经网络成为了 DNN 产品化的关键之一。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

图片

DNN 压缩通常来说有三种方式,剪枝,知识蒸馏和量化。剪枝旨在识别并去除冗余结构,给 DNN 瘦身的同时尽可能地保持模型性能,是最为通用且有效的压缩方法。三种方法通常来讲可以相辅相成,共同作用来达到最佳的压缩效果。

图片

然而现存的剪枝方法大都只针对特定模型,特定任务,且需要很强的专业领域知识,因此通常需要 AI 开发人员花费大量的精力才能将这些方法应用于自己的场景中,非常消耗人力物力成本。

OTO 概述

为了解决现存剪枝方法的问题并给 AI 开发者提供便利,微软团队提出了 Only-Train-Once OTO 框架。OTO 是业内首个自动化、一站式、用户友好且通用的神经网络训练与结构压缩框架,系列工作陆续发表于 ICLR2023 和 NeurIPS2021。

通过使用 OTO,AI 工程师可以方便地训练目标神经网络,一站式地取得高性能且轻量化的模型。OTO 最小化了开发者的工程时间精力的投入,且全程无需现有方法通常需要的非常耗时的预训练和额外的模型微调。

  • 论文链接:
  • OTOv2 ICLR 2023: https://openreview.net/pdf?id=7ynoX1ojPMt
  • OTOv1 NeurIPS 2021:https://proceedings.neurips.cc/paper_files/paper/2021/file/a376033f78e144f494bfc743c0be3330-Paper.pdf
  • 代码链接:
    ​https://github.com/tianyic/only_train_once

框架核心算法

理想化的结构剪枝算法应该做到:针对通用神经网络,自动化地一站式地从零开始训练,同时达到高性能且轻量化的模型,并无需后续微调。但因为神经网络的复杂性,实现这一目标是一件极其有挑战性的事情。为了实现这一最终目的,下面的三个核心问题需要被系统性地解决:

  • 如何找出哪些网络结构可以被移除?
  • 如何在移除网络结构的过程中,尽可能不损失模型性能?
  • 如何能自动化地完成如上两点?

微软团队设计并实现了三套核心算法,首次系统性地,全面性地解决这三个核心问题。

自动化 Zero-Invariant Groups (零不变组) 分组

由于网络结构的复杂性和关联性,删去任意网络结构可能会导致剩余的网络结构无效。因此自动化网络结构压缩的一个最大的问题之一是如何找到必须要被一起剪枝的模型参数,使得余下的网络依然有效。为了解决该问题,微软团队在 OTOv1 中提出了零不变组 Zero-Invariant Groups  (ZIGs)。零不变组可以理解为一类最小的可移除单元,使得该组对应的网络结构移除后剩余网络依然有效。零不变组的另一大特性是,如果一个零不变组等于零,那么无论输入值是什么,输出值永远是零。在 OTOv2 中,研究者进一步提出并实现了一套自动化算法来解决通用网络的零不变组的分组问题。自动化分组算法是由一系列图算法精心设计组合而成,整套算法非常高效,具有线性的时间空间复杂度。

图片

双半平面投影梯度优化算法 (DHSPG)

当划分目标网络所有的零不变组后,接下来的模型训练和剪枝任务需要找出哪些零不变组是冗余的,哪些又是重要的。冗余的零不变组对应的网络结构需要被删除,重要的零不变组需要保留并保证压缩模型的性能。研究者公式化这个问题为一个结构性稀疏化问题,并提出全新的 Dual Half-Space Projected Gradient  (DHSPG) 优化算法来解决。

图片

DHSPG 可以非常有效地找出冗余的零不变组并将其投影成零,并持续训练重要的零不变组来取得跟原始模型相媲美的性能。

与传统稀疏优化算法相比,DHSPG 具有更强更稳定地稀疏结构探索能力,且扩展了训练搜索空间并因此通常要获得更高的实际表现效果。

图片

自动化构建轻量压缩模型

通过使用 DHSPG 对模型进行训练,我们会得到一个服从于零不变组的高结构稀疏性的解,即该解里有很多被投影成零的零不变组,此外该解还会具有很高的模型性能。接下来,研究者把所有对应与冗余零不变组的结构删去来自动化地构建压缩网络。由于零不变组的特性,即如果一个零不变组等于零,那么无论输入值是什么,输出值永远是零,因此删去冗余的零不变组不会对网络产生任何影响。所以通过 OTO 得到的压缩网络和完整网络会有相同的输出,无需传统方法所需要的进一步模型微调。

数值实验

分类任务

标书对比王
标书对比王

标书对比王是一款标书查重工具,支持多份投标文件两两相互比对,重复内容高亮标记,可快速定位重复内容原文所在位置,并可导出比对报告。

下载

图片

表 1:CIFAR10 中的 VGG16 及 VGG16-BN 模型表现

在 CIFAR10 的 VGG16 实验中,OTO 将浮点数减少了 86.6%,将参数量减少了 97.5%,性能表现令人印象深刻。

图片

表 2:CIFAR10 的 ResNet50 实验

在 CIFAR10 的 ResNet50 实验中,OTO 在没有量化的情况下优于 SOTA 神经网络压缩框架 AMC 和 ANNC,仅使用了 7.8% 的 FLOPs 和 4.1% 的参数。

图片

表 3. ImageNet 的 ResNet50 实验

在 ImageNet 的 ResNet50 实验中,OTOv2 在不同结构稀疏化目标下,展现出跟现存 SOTA 方法相媲美甚至更优的表现。

图片

表 4: 更多结构和数据集

OTO 也在更多的数据集和模型结构上取得了不错的表现。

Low-Level Vision 任务

图片

表 4:CARNx2 的实验

在 super-resolution 的任务中,OTO 一站式训练压缩了 CARNx2 网络,得到了跟原始模型有竞争力的性能且压缩了越 75% 的运算量和模型大小。 

语言模型任务

图片

此外,研究者还在 Bert 上针对核心算法之一,DHSPG 优化算法,进行了对比试验,验证了其相较于其他稀疏优化算法的高性能性。可以发现在 Squad 上,利用 DHSPG 进行训练所得到的参数量减小和模型性能要远远优于其他稀疏优化算法。

结论

微软团队提出了一个名为 OTO(Only-Train-Once)的 自动化一站式神经网络训练结构剪枝框架。它可以将一个完整的神经网络自动化地压缩为轻量级网络,同时保持较高的性能。OTO 大大简化了现有结构剪枝方法复杂的多阶段流程,适合各类网络架构和应用,且最小化了用户的额外工程投入,具有通用性,有效性和易用性。

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

23

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

68

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

162

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

84

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

113

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

29

2026.03.03

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

79

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

62

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

51

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 4.1万人学习

Excel 教程
Excel 教程

共162课时 | 20.5万人学习

PHP课程
PHP课程

共137课时 | 13.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号