机器学习应用中日志实践的研究
软件工程
2023-01-12 v1
摘要
日志是传统软件开发中的常见实践。已有若干研究工作探讨传统软件系统(如Android应用、JAVA应用、C/C++应用)中日志实践的不同特征。如今,我们正见证基于机器学习应用(ML应用)的日益增多开发。当前有许多流行库促进并助力此类应用开发,其中包括Pytorch、Tensorflow、Theano、MXNet、Scikit-Learn、Caffe与Keras。尽管ML广受欢迎,我们仍对其应用中的日志实践缺乏清晰认识。本文旨在填补此知识空白,并帮助ML从业者理解基于ML应用中日志的特征。具体而言,我们对110个开源ML应用进行实证研究。通过定量分析,我们发现ML应用中的日志实践不如传统应用(包括Android、JAVA与C/C++应用)普遍。此外,ML应用中多数日志语句处于info与warn级别,而传统应用中info占C/C++应用日志语句多数,debug、error级别构成Android应用日志语句多数。我们还对随机抽样的日志语句进行定量与定性分析,以了解ML开发者将多数日志语句置于何处,并考察其使用日志的原因与方式。这些分析得出如下观察:(i)ML开发者将多数日志语句置于模型训练与非ML组件中。(ii)数据与模型管理似乎是ML应用中引入日志语句的主要原因。
引用
@article{arxiv.2301.04234,
title = {Studying Logging Practice in Machine Learning-based Applications},
author = {Patrick Loic Foalem and Foutse Khomh and Heng Li},
journal= {arXiv preprint arXiv:2301.04234},
year = {2023}
}