Page 33 - 《软件学报》2020年第10期
P. 33
徐梦炜 等:面向移动终端智能的自治学习系统 3009
3 分布式自治学习系统 AutLearn:设计与实现
我们实现了第 1 个分布式自治学习系统框架 AutLearn.本节介绍 AutLearn 系统的设计和具体实现.首先介
绍该系统的核心思想;然后,介绍总体架构以及系统中每一个功能模块的具体实现;最后,以输入法和图像处理
为例介绍特定的应用如何在该系统上运行,以达到自治学习的目的.
3.1 核心思想
为了解决终端设备上训练数据不足的问题,AutLearn 采用了云端协同思想,在云端服务器上利用公共数据
训练一个泛化能力较强的模型,然后在终端利用迁移学习 [17] 技术对模型进行调整,得到一个适用于该终端设备
的可用于部署的模型.为了保证用户的隐私,云端服务器在预训练模型时不能要求用户上传数据,而是通过数据
挖掘的方式从公共数据中寻找与用户数据分布相似的替代数据,达到公私合赢的目标.这里的公共数据包括那
些获得用户授权的数据、通过合法途径购买的数据、利用爬虫技术从公网上爬取的数据等等.此外,我们还引
入了数据增强技术用于提高终端上用于训练的数据量.
为了解决终端设备计算资源及电量受限的问题,AutLearn 引入了一系列的优化技术,包括模型层压缩、运
行时缓存优化、神经网络编译器等.这些技术在保证模型精度(或极少精度损失)的前提下,极大地节省了终端设
备上神经网络训练的资源开销.
3.2 总体架构
本文提出的自治学习系统框架 AutLearn 如图 3 所示.在云端服务器,首先利用公共数据集对模型进行预训
练.考虑到模型需要部署在终端,AutLearn 内置了基于奇异值分解 [18] 的模型剪枝算法.剪枝结束之后需对模型进
行重新训练以恢复模型精度.接下来,AutLearn 会利用神经网络编译技术对剪枝后的模型进行编译,从而优化其
在相应终端计算硬件(CPU、GPU 等)上的运算效率.关于编译的具体内容将在第 3.4 节进行介绍.
编译后的模型被下载到各个终端设备,利用本地数据在适宜的时间段进行迁移学习,这个过程我们称其为
离线学习.其中,AutLearn 会对本地数据进行增强以提高数据量.训练结束后模型会被用于部署,执行神经网络的
前向推断.为了让模型可以持续学习用户行为的改变以获取更高的准确率,AutLearn 同时实现了在线学习,即在
终端设备上生成训练数据之后立即进行训练.相较于离线学习,在线学习的优势是可以更快地对用户行为改变
进行适应,从而在接下来的推断中得到更合理的结果,且数据无需保存在本地,进一步地减少了隐私泄露的风
险.具体地,使用离线学习还是在线学习,亦或是两者结合,需要取决于具体的应用场景.我们将在第 3.6 节中介绍
如何选择合适的训练模式.
Fig.3 Architecture of AutLearn
图 3 AutLearn 系统架构图