当前位置: 首页 > news >正文

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文

  • 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。
  • API 库覆盖低,因为各个 API 都是在各种具体场景下使用。

Muffin首先生成DAG作为结构信息,然后利用一种贪婪的层选择算法来生成层信息。通过这种方式,Muffin能够生成多样化的DL模型。为了进行差异性测试,Muffin在模型训练阶段执行数据跟踪分析。特别是,Muffin从不同的训练阶段(即正向计算(FC)、损失计算(LC)和反向计算(BC))收集数据跟踪。然后,它根据一套提出的指标来检测不同库之间的不一致性,这些指标衡量连续层的输出变化。
在这里插入图片描述
借鉴 NAS 生成模版,生成 chain structure with skips、cell-based structure(structure information),同时确保生成的 DAG,只有一个入度为 0 的顶点作为输入层,只有一个出度为 0 的顶点作为输出层,没有孤立点。在逐个实例化时,考虑输入数量限制、输入/输出形状限制,并且为了增加拓扑多样性,设计了基于适应度比例选择的方法。 s = 1 c + 1 p = s ∑ k = 1 r s k s=\frac{1}{c+1} \quad p=\frac{s}{\sum_{k=1}^rs_k} s=c+11p=k=1rsks
同一层输出差异: D ( X , Y ) = m a x m ( ∣ x m − y m ∣ ) D(X,Y)=max_m(|x_m-y_m|) D(X,Y)=maxm(xmym)

  • 正向计算:比较当前层 l i l_i li ​的输出与它的前驱层 l p l_p lp ​的输出差异: I n c _ F C = { l i , i ∈ [ 1 , n ] ∣ ( D ( O j i , O k i ) > t ) ∧ ( D ( O j p , O k p ) < ϵ , p ∈ P ( i ) ) } Inc\_{FC}=\{l_{i},i\in[1,n]\mid(D(O_{j}^{i},O_{k}^{i})>t)\wedge(D(O_{j}^{p},O_{k}^{p})<\epsilon,p\in P(i))\} Inc_FC={li,i[1,n](D(Oji,Oki)>t)(D(Ojp,Okp)<ϵ,pP(i))} 切比雪夫距离定义为两个张量在任何坐标维度上的最大差异。这种距离度量方法可以避免因张量形状不同而导致的比较问题。
  • 损失函数:比较损失函数的输出和梯度值的差异: I n c _ L C = { L ∣ ( ( ∣ L O j − L O k ∣ > t ) ∨ ( ∣ L G j − L G k ∣ > t ) ) ∧ ( D ( O j n , O k n ) < ϵ ) } Inc\_{LC}=\{L\mid((|LO_j-LO_k|>t)\lor(|LG_j-LG_k|>t))\wedge(D(O_j^n,O_k^n)<\epsilon)\} Inc_LC={L((LOjLOk>t)(LGjLGk>t))(D(Ojn,Okn)<ϵ)}
  • 反向传播:比较每一层的梯度值差异: I n c _ B C = { l i , i ∈ [ 1 , n ] ∣ ( D ( G j i , G k i ) > t ) ∧ ( D ( G j s , G k s ) < ϵ , s ∈ P ( i ) ) } Inc\_{BC}=\{l_{i},i\in[1,n]\mid(D(G_{j}^{i},G_{k}^{i})>t)\wedge(D(G_{j}^{s},G_{k}^{s})<\epsilon,s\in P(i))\} Inc_BC={li,i[1,n](D(Gji,Gki)>t)(D(Gjs,Gks)<ϵ,sP(i))}

虽然这种方式产生了巨大的模型拓扑多样性,但从微观层面而言,Structure内的多样性是匮乏的。

参数:

  1. MAXc:用于控制模型结构的大小,具体来说是控制模型中层的最大数量。
  2. MAXv:同样用于控制模型结构的大小,具体来说是控制模型中每个层的最大输入维度。
  3. t:用于不一致性检测的阈值。在比较不同库的输出差异时,如果差异大于这个阈值,则认为存在不一致性。
  4. ε:另一个用于不一致性检测的阈值,通常是一个很小的值,用于判断差异是否足够小以至于可以认为是正常的浮点数偏差。

实验

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

http://www.xdnf.cn/news/950473.html

相关文章:

  • 触发DMA传输错误中断问题排查
  • Redis哨兵模式以及主从
  • LLM基础5_从零开始实现 GPT 模型
  • CMIP6气候模式资料概览
  • 免费在线PDF转图片工具
  • gephi绘制网络拓扑图:批量给节点着色
  • nginx安装和部署
  • 免费PDF转图片工具
  • NVIDIA CUDA 技术详解:开启 GPU 并行计算的大门
  • CocosCreator 之 JavaScript/TypeScript和Java的相互交互
  • 创建型模式-单例模式
  • Python网页自动化Selenium中文文档
  • 24.解释器模式:思考与解读
  • 从零手写Java版本的LSM Tree (四):SSTable 磁盘存储
  • 9个数据分析指令为工作赋能
  • 升级背后:CANOPEN转MODBUS TCP技术如何实现精准控制?
  • 精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
  • SFTrack:面向警务无人机的自适应多目标跟踪算法——突破小尺度高速运动目标的追踪瓶颈
  • C# 表达式和运算符(求值顺序)
  • 李沐--动手学深度学习--GRU
  • RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
  • 人工智能与无人机的组合如何撕开俄空天军的 “核心“
  • [docker]镜像操作:关于docker pull、save、load一些疑惑解答
  • ubuntu 22.04搭建SOC开发环境
  • “详规一张图”——新加坡土地利用数据
  • 使用大模型预测巨细胞病毒视网膜炎的技术方案
  • 【AI学习】李广密与阶跃星辰首席科学家张祥雨对谈:多模态发展的历史和未来
  • 【向量库】Weaviate概述与架构解析
  • 如何做好一份技术文档?从规划到实践的完整指南
  • 无人机视觉跟踪模块技术解析!