MIT 6.5940(一)

记录了Lecture 1~8

Lecture 1 Introduction

TinyML and Efficient Deep Learning Computing

在这里插入图片描述

摘要

AI systems need to continually adapt to new data collected locally

  • 在设备学习:better privacy, lower cost, customization, life-long learning
  • Training is more expensive than inference, hard to fit edge hardware (limited memory)

MCUNetV3 enables efficient on-device training on microcontrollers

Diffusion model、GAN compression。

Lite Trnsformer reduces the model size with pruning and quantization

Large language models show emergent behaviors:

  • zero/few learning
  • chain-of-thought

SpAtten accelerates language models by pruning redundant tokens

LLM Quantization

TihyChat

在这里插入图片描述
PPT里面画的很多图、表都挺不错的。
在这里插入图片描述
Prerequisites:
6.191 Computation Structures and 6.390 Intro to Machine Learning.

在这里插入图片描述

Lecture 2 Basics

在这里插入图片描述
宽浅的神经网络运算效率较低,而深细的神经网络运算效率较高。

Popolar Neural Network Layers

全连接层(Linear Layer)
卷积层:使用权重共享,时间换空间。
在这里插入图片描述
笔记本(似乎是韩松手上的那个遥控器)有一个聚焦功能,贼好用。

Grouped Convolution Layer

组卷积在权重共享机制的基础上,沿着通道的维度进行分组。
在这里插入图片描述

Normalization Layer

归一化特征可以使优化过程更快。
因为归一化常常会将一个通道上的特征图作为最小单位,所以在下面画的归一化的四张图上,将H和W画到一起了。
在这里插入图片描述

网络复杂度指标

latency指的是单个执行器执行代码所需要的时间,而Throughput指的是在某个机器上执行代码所需要的时间。
latency往往是MCU上关心的指标,而Throughput则是数据中心所关心的指标。
在这里插入图片描述
在这里插入图片描述

DRAM内存访问的能量消耗显著高于其他操作,大约是整数加法的200倍。
在这里插入图片描述

在这里插入图片描述
模型大小表示给定的神经网络的权重的存储。
在这里插入图片描述

激活是CNN推理中的内存瓶颈,而不是参数数量。
在这里插入图片描述

MobileNetV2 的内存分布不平衡
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Lecture 3 Pruning and Sparsity Part I

Pruing can release the memory using so that the energy can be saved.
Pruing make neural network smaller by removing synapses and neurons.

随着剪枝率的提升,网络的准确率下降
在这里插入图片描述
加入finetuning,中间那些靠近0的权重的值有所恢复,并且网络的accuracy有所回升。
在这里插入图片描述
如果是迭代剪枝,网络的accuracy可以恢复得很高,并且压缩率更高。
在这里插入图片描述
在这里插入图片描述
修剪 NeuralTalk LSTM 并不会损害图像字幕的质量。

近年来剪枝和稀疏神经网络的出版物在2023年达到顶峰。
在这里插入图片描述

在这里插入图片描述

决定剪枝的颗粒度
在这里插入图片描述
内核级别剪枝并没有减少滤波器的数量;
而通道级别剪枝会减少输入的通道个数,从而减少上一层的滤波器。
在这里插入图片描述

在这里插入图片描述
prune那些scaling factor值小的。
在这里插入图片描述
基于二阶的剪枝。
一阶、二阶也不见得哪个会好很多,里面的效果往往取决于数据集和网络结构。
在这里插入图片描述

在这里插入图片描述
prune里面APoZ最大的:
在这里插入图片描述
最小化pruned matric和unpruned matric。
在这里插入图片描述

  • 最小化beta,这样就可以将最小beta的channel移除了,图中的实例X有四列,所以有4个beta。
  • 固定W,求beta用于通道选择;固定beta,求W用于最小化重建损失。
    在这里插入图片描述
    年度论文数量的折线图统计方法。

Lecture 4 Pruning IV

Part 1 Prunig ratio

AMC效果好过uniform scaling pruning。
分析每一层的敏感性。(result are before retrain)
在这里插入图片描述
这种敏感性分析忽略了层与层之间的交互。
通常,这个过程依赖于人类的专业知识、反复试验和错误。
在这里插入图片描述
在这里插入图片描述

设置一个步长 Δ R \Delta R ΔR
在这里插入图片描述

Section 2: Fine-tuning / Training

迭代剪枝:第一次剪枝30%、第二次50%、第三次70%,每次剪枝后都会train一下weight。

System Support for Sparsity

在这里插入图片描述
(W4A16表示权重被量化为4位,即每个权重用4位二进制数表示;A16表示激活保持16位精度。)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Lecture 5 Quantization Part I

为什么需要quantization?
少位数的操作更便宜。
在这里插入图片描述
数值表示:FP32、FP16、FP4、Int4。
在这里插入图片描述
四位的浮点数表示,就是乘 2 − 4 2^{-4} 24
在这里插入图片描述
浮点数表示:
在这里插入图片描述
如果要表示0,则强制Fraction为0(0就表示为0):
在这里插入图片描述

在这里插入图片描述
Exponent width ->Range;Fraction Width->Precision。
蓝色是Exponent,黄色是Fraction:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

量化是将输入从连续的或其他方面较大的值集约束到离散集的过程。

在这里插入图片描述

K-Means-based Quantization

在这里插入图片描述

在这里插入图片描述
剪枝和quantization可以一起使用:
在这里插入图片描述
先剪枝还是先量化呢?

  • 先剪枝再量化。

在这里插入图片描述
retain后,central会有小小的偏移:

在这里插入图片描述

Linear Quantization

列出来的等式见下图:
在这里插入图片描述
其中, q max ⁡ q_{\max } qmax q min ⁡ q_{\min } qmin r max ⁡ r_{\max } rmax r max ⁡ r_{\max } rmax已知,则可以求S和Z。
进一步的,因为权重的分布是沿Y轴对称的,所以可以假设 Z W Z_{W } ZW=0
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Lecture 6 Quantization Part II

Post-Training Quantization、Quantization-Aware Training
Per-Tensor Quantization:
在这里插入图片描述
Per-channel Quantization:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Post-Training Quantization

在这里插入图片描述
直接戒掉两边的数据
在这里插入图片描述
通过在训练过的FP32模型上运行几批“校准”批样品
使用KL散度来约束。(下面这个图片并没有看懂)
在这里插入图片描述
使用MSE来约束。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Quantization-Aware Training

在这里插入图片描述
计算梯度的时候会省略掉第二项。
在这里插入图片描述
Quantization-Aware Training效果要好于Post-Train Quantization。

Binary/Ternary Quantization

Ninarization有两种方法:直接二值化、随机二值化。

只二值化权重效果还是不错的:
在这里插入图片描述

在这里插入图片描述

Ternary Weight Networks (TWN)

在这里插入图片描述
当正的值和负的值表示得太一样时,则称之为Trained Ternary Quantization:
在这里插入图片描述

Mixed-Precision Quantization
在这里插入图片描述

Lecture 7 Neural Architecture Search Part I

Primitive Operations,基本操作

Fully-connection、
Convolution layer、
Groped Convolution layer、
Depthwise convolution layer、
1*1 convolution layer。

Classic Building Blocks

相比原来的MACs下降了8.5*
在这里插入图片描述
相比原来的Params下降了8.5*
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
Peak activation 是指在整个前向传播过程中,任何时间点上激活值占用的最大内存。 这通常发生在某些层(如卷积层、全连接层)处理大量输入数据时。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

What is NAS?

巨大的设计空间,手工设计是不可扩展的。因此,需要NAS。

NAS的目标是在搜索空间中找到最佳的神经网络结构,最大化感兴趣的目标(例如,准确性、效率等)。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Network-level search space: depth dimension

Network-level search space: resolution dimension

Network-level search space: width dimension

Network-level search space: kernel size dimension

Network-level search space: topology connection

Design the Search Space

对于NAS,设计搜索空间十分重要。

在这里插入图片描述

在内存限制下,良好的设计空间有可能实现高的浮点运算次数(FLOPs)。

在这里插入图片描述
搜索策略:
网格搜索、随机搜索。
在这里插入图片描述
搜索策略:强化学习(使用RNN作为控制器)
在这里插入图片描述
搜索策略:梯度下降
在这里插入图片描述
新加一个latency损失项,从而实现对latency的约束。
在这里插入图片描述
搜索策略:
进化搜索
在这里插入图片描述
进化搜索的突变:
在这里插入图片描述
进化搜索的交叉:
在这里插入图片描述

Lecture 8 Neural Architecture Search Part II

在这里插入图片描述

在这里插入图片描述
Performance Estimation Strategy:

  • train from scratch
  • inherit weight
  • hypernetwork
    在这里插入图片描述
    超网络:
  • 在每个训练阶段,一个随机模型架构在搜索空间中采样。
  • 超网络基于模型架构生成权重。
  • 使用梯度下降来更新超网络的权重。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
实际上,MACs != 实际硬件效率。
在这里插入图片描述
通过读取时延查阅表上的数据来读取设备上的时延:
在这里插入图片描述
逐层的预测可以预测得挺准的。
在这里插入图片描述
但问题是,逐层的时延预测不代表整个网络的时延预测,因为网络在GPU上运行有时会出现算子融合的情况,这样两个算子融为一个,则预测的时延会多于实际在设备上运行的时延。

在这里插入图片描述

在这里插入图片描述
神经架构和加速器架构设计对于实现特化和加速都很重要。
在这里插入图片描述

卷积循环巢可分为时间映射和空间并行性两部分

在这里插入图片描述
Once-for-All for 点云理解、GAN、姿态估计、on-device汽车、行人检测、凝视估计、分割、quantum AI。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/966581.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux TCP 编程详解与实例

一、引言 在网络编程的领域中,TCP(Transmission Control Protocol)协议因其可靠的数据传输特性而被广泛应用。在 Linux 环境下,使用 C 或 C 进行 TCP 编程可以实现各种强大的网络应用。本文将深入探讨 Linux TCP 编程的各个方面&…

一款由 .NET 官方团队开源的电子商务系统 - eShop

项目介绍 eShop是一款由.NET官方开源的,基于.NET Aspire构建的用于参考学习的服务架构电子商务系统,旨在展示如何利用.NET框架及其相关技术栈构建一个现代化的电子商务网站。该项目采用服务架构,将应用程序分解为多个独立的服务,…

crewai框架第三方API使用官方RAG工具(pdf,csv,json)

最近在研究调用官方的工具,但官方文档的说明是在是太少了,后来在一个视频里看到了如何配置,记录一下 以PDF RAG Search工具举例,官方文档对于自定义模型的说明如下: 默认情况下,该工具使用 OpenAI 进行嵌…

2011-2020年各省电话普及率数据

2011-2020年各省电话普及率数据 1、时间:2011-2020年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区名称、年份、电话普及率(包括移动电话)(部/百人) 4、范围:31省 5、指标说明:电话普及率是衡量一个…

【自开发工具介绍】SQLSERVER的ImpDp和ExpDp工具演示05

SQLSERVER的ImpDp和ExpDp工具演示 1、表部分数据导出 (-query) ※「-query」和「-include_table」必须一起使用 「-query」后面字符串是sql文的where语句,但要注意要使用%,需要写%% 验证用:导出的表,导入到新的数据库 db的数…

ASP.NET Core 使用 WebClient 从 URL 下载

本文使用 ASP .NET Core 3.1,但它在.NET 5、 .NET 6和.NET 8上也同样适用。如果使用较旧的.NET Framework,请参阅本文,不过,变化不大。 如果想要从 URL 下载任何数据类型,请参阅本文:HttpClient 使用WebC…

快速上手Vim的使用

Vim Linux编辑器-vim使用命令行模式下所有选项都可以带数字底行模式可视块模式(ctrlV进入) Linux编辑器-vim使用 Vim有多种模式的编辑器。能帮助我们很快的进行代码的编辑,甚至完成很多其他事情。 默认情况下我们打开vim在命令模式下&#x…

nodejs - vue 视频切片上传,本地正常,线上环境导致磁盘爆满bug

nodejs 视频切片上传,本地正常,线上环境导致磁盘爆满bug 原因: 然后在每隔一分钟执行du -sh ls ,发现文件变得越来越大,即文件下的mp4文件越来越大 最后导致磁盘直接爆满 排查原因 1、尝试将m3u8文件夹下的所有视…

114,【6】攻防世界 web wzsc_文件上传

进入靶场 传个桌面有的 直接空白了 我们 访问一下上传的东西 /index 没显示用于解析的.htaccess和.user.ini 文件,还两个都不显示 .htaccess 和 .user.ini 文件分别用于 Apache 服务器和 PHP-FPM 环境的目录级配置 但上传的时候bp查看状态码是200,…

Open3d Qt的环境配置

Open3d Qt的环境配置 一、概述二、操作流程2.1 下载文件2.2 新建文件夹2.3 环境变量设置2.4 qt6 引用3、qt中调用4、资源下载一、概述 目前统一使用qt6配置,open3d中可视化功能目前使用vtk代替,语言为c++。 二、操作流程 2.1 下载文件 访问open3d github链接,进入releas…

零基础都可以本地部署Deepseek R1

文章目录 一、硬件配置需求二、详细部署步骤1. 安装 Ollama 工具2. 部署 DeepSeek-R1 模型3. API使用4. 配置图形化交互界面(可选)5. 使用与注意事项 一、硬件配置需求 不同版本的 DeepSeek-R1 模型参数量不同,对硬件资源的要求也不尽相同。…

Rocky Linux9安装Zabbix7.0(精简版)

Linux 系统版本 Rocky Linux release 9.3 (Blue Onyx) 注意:zabbix 7以上版本不支持CentOS 7系统,需要CentOS 8以上, 本教程支持CentOS9及Rocky Linux 9 在Rocky Linux release 9.3测试通过 Linux环境准备 关闭防火墙和selinux #关闭防…

Qt程序发布

关注后回复 qt 获取相关资料 找到Qt安装目录中的 windeployqt.exe 将其路径添加到Path环境变量中可能会涉及到多平台架构的版本,选择一个目标版本将Release版中的 ***.exe 复制到某空文件夹cmd 进入上述文件夹中执行 windeployqt.exe ***.exe此时会将该 ***.exe 文件…

从O(k*n)到O(1):如何用哈希表终结多层if判断的性能困局

【前言】   本文将以哈希表重构实战为核心,完整展示如何将传统条件匹配逻辑(上千层if-else判断)转化为O(1)的哈希表高效实现。通过指纹验证场景的代码级解剖,您将深入理解:   1.哈希函数设计如何规避冲突陷阱   2.链式寻址法的工程实现…

后端java工程师经验之谈,工作7年,mysql使用心得

mysql 工作7年,mysql使用心得 mysql1.创建变量2.创建存储过程2.1:WHILE循环2.2:repeat循环2.3:loop循环2.4:存储过程,游标2.5:存储过程,有输入参数和输出参数 3.三种注释写法4.case …

【WB 深度学习实验管理】利用 Hugging Face 实现高效的自然语言处理实验跟踪与可视化

本文使用到的 Jupyter Notebook 可在GitHub仓库002文件夹找到,别忘了给仓库点个小心心~~~ https://github.com/LFF8888/FF-Studio-Resources 在自然语言处理领域,使用Hugging Face的Transformers库进行模型训练已经成为主流。然而,随着模型复…

智能理解 PPT 内容,快速生成讲解视频

当我们想根据一版 PPT 制作出相对应的解锁视频时,从撰写解锁词,录制音频到剪辑视频,每一个环节都需要投入大量的时间和精力,本方案将依托于阿里云函数计算 FC 和百炼模型服务,实现从 PPT 到视频的全自动转换&#xff0…

如何使用Gemini模型,国内如何订阅购买Gemini Pro的教程,Gemini Pro 免费试用操作步骤, 谷歌 aistudio 使用入口

最近的榜首又被Gemini给霸占了,很多童鞋想要体验一翻 Gemini免费库模型更新了 Gemini2.0向所有人开放了!使用了真香 目前呢2.0flash和Gemini-2.0-Flash-Thinking-Exp、Gemini-2.0-Flash-Thinking-Exp-with-apps已经免费给所有注册用户开放了&#xff0c…

【学术投稿】第五届计算机网络安全与软件工程(CNSSE 2025)

重要信息 官网:www.cnsse.org 时间:2025年2月21-23日 地点:中国-青岛 简介 第五届计算机网络安全与软件工程(CNSSE 2025)将于2025年2月21-23日在中国-青岛举行。CNSSE 2025专注于计算机网络安全、软件工程、信号处…

Python----Python高级(网络编程:网络基础:发展历程,IP地址,MAC地址,域名,端口,子网掩码,网关,URL,DHCP,交换机)

一、网络 早期的计算机程序都是在本机上运行的,数据存储和处理都在同一台机器上完成。随着技术的发展,人 们开始有了让计算机之间相互通信的需求。例如安装在个人计算机上的计算器或记事本应用,其运行环 境仅限于个人计算机内部。这种设置虽然…