Skip to main content
QUICK REVIEW

[论文解读] An Empirical Study on Deployment Faults of Deep Learning Based Mobile Applications

Zhenpeng Chen, Huihan Yao|arXiv (Cornell University)|Jan 13, 2021
Software System Performance and Reliability参考文献 41被引用 5
一句话总结

本文首次对基于深度学习的移动应用(移动 DL 应用)中的部署故障进行了全面的实证研究,分析了来自 Stack Overflow 和 GitHub 的 304 个真实故障。研究提出了一个包含 23 种故障症状类别的细粒度分类体系,并识别出常见的修复策略,为开发者和研究人员提供了切实可行的见解,以提升使用 TensorFlow Lite 和 Core ML 等框架在移动设备上部署模型的可靠性。

ABSTRACT

Deep Learning (DL) is finding its way into a growing number of mobile software applications. These software applications, named as DL based mobile applications (abbreviated as mobile DL apps) integrate DL models trained using large-scale data with DL programs. A DL program encodes the structure of a desirable DL model and the process by which the model is trained using training data. Due to the increasing dependency of current mobile apps on DL, software engineering (SE) for mobile DL apps has become important. However, existing efforts in SE research community mainly focus on the development of DL models and extensively analyze faults in DL programs. In contrast, faults related to the deployment of DL models on mobile devices (named as deployment faults of mobile DL apps) have not been well studied. Since mobile DL apps have been used by billions of end users daily for various purposes including for safety-critical scenarios, characterizing their deployment faults is of enormous importance. To fill the knowledge gap, this paper presents the first comprehensive study on the deployment faults of mobile DL apps. We identify 304 real deployment faults from Stack Overflow and GitHub, two commonly used data sources for studying software faults. Based on the identified faults, we construct a fine-granularity taxonomy consisting of 23 categories regarding to fault symptoms and distill common fix strategies for different fault types. Furthermore, we suggest actionable implications and research avenues that could further facilitate the deployment of DL models on mobile devices.

研究动机与目标

  • 为解决当前对基于深度学习的移动应用(移动 DL 应用)中部署故障缺乏理解的问题,这些应用正越来越多地应用于安全关键场景和日常使用场景。
  • 识别并描述真实世界中移动 DL 应用的部署故障,重点关注使用 TensorFlow Lite 和 Core ML 等框架在移动设备上部署模型时出现的问题。
  • 构建一个细粒度的、分层的故障症状分类体系,以捕捉部署问题的多样性。
  • 提炼每类故障症状的常见修复策略,以指导开发者并支持工具开发。
  • 为提升移动 DL 应用部署的可靠性与鲁棒性,提供可操作的启示与研究方向。

提出的方法

  • 从 Stack Overflow 和 GitHub 两个广泛使用的开发者论坛和问题追踪系统中收集了 304 个真实部署故障。
  • 通过人工分析提取故障症状,并将其归类到一个包含 23 个症状类别的分层分类体系中。
  • 通过定性分析开发人员的讨论和代码变更,将每个故障映射到其根本原因和修复策略。
  • 聚焦于两种主流的移动部署框架:TensorFlow Lite 和 Core ML,以确保与当前工业实践的相关性。
  • 采用混合方法,结合定性症状分类与修复策略的模式提取。
  • 发布脚本和数据以支持可复现性及未来研究。
Figure 1: Development and deployment of DL models
Figure 1: Development and deployment of DL models

实验结果

研究问题

  • RQ1移动 DL 应用中部署故障最常见的症状是什么?
  • RQ2这些部署故障在根本症状方面如何分类?
  • RQ3开发者用来解决这些部署故障的最常见修复策略是什么?
  • RQ4不同移动部署框架(如 TF Lite 与 Core ML)之间的故障症状和修复策略有何差异?
  • RQ5在提升移动 DL 应用开发中自动化故障检测与调试工具方面,可以得出哪些可操作的启示?

主要发现

  • 本研究从 Stack Overflow 和 GitHub 中识别出 304 个真实部署故障,凸显了移动 DL 应用中部署问题的普遍性。
  • 构建了一个包含 23 种故障症状类别的细粒度分类体系,揭示了部署挑战的广泛范围,包括模型兼容性问题、推理错误以及硬件相关问题。
  • 识别出常见修复策略,如模型量化、网络结构调整以及框架特定的配置更改,这些策略常被用于解决症状。
  • 诸如“模型无法加载”和“推理结果不正确”等故障症状报告频率最高,表明存在关键的可靠性问题。
  • 研究发现,与一般的深度学习程序故障相比,部署故障更为复杂且更难修复,这从 Stack Overflow 上相关问题数量和难度的持续上升中得到证实。
  • 研究结果表明,亟需开发用于部署故障检测与诊断的自动化工具,特别是针对移动设备特有的内存和 CPU 限制。
Figure 2: Overview of the methodology.
Figure 2: Overview of the methodology.

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。