大规模分布式机器学习本科生科研训练项目群建设探讨

2019-12-20 11:05蔡志成孟顺梅李千目
计算机教育 2019年9期
关键词:训练项目本科生分布式

张 静,蔡志成,孟顺梅,李千目

(南京理工大学 计算机科学与工程学院,江苏 南京 210094)

0 引言

大学生的科研能力训练和创新能力培养是当前大学本科教学的重点[1]。在当今新技术高速发展的大环境下,本科生科研训练作为本科生“实践”教育中不可或缺的环节,其重要性愈发凸显。国内不少高校,特别是入选“双一流”建设的高校,都已经构建出了适合自己学校人才培养特点的本科生科研训练创新实践的长效机制[2]。在这种长效机制下,本科生团队和指导教师实行双向选择,导师和课题确定后,学生自主完成研究课题立项、项目设计、项目实施、报告撰写和成果交流等工作的实践创新教学环节。通过科研训练培养学生提出问题、分析问题和解决问题的能力,进而强化创新思维与创新意识。

经过多年的探索和践行,本科生科研训练无疑在本科生能力素质培养方面起到了正面作用[3],但也必须指出,这种以导师研究课题为核心的训练方式仍存在不少亟待解决的共性问题,如科研训练与现有课程体系相容性差、课题质量参差不齐等[4]。近年来,教育部“新工科”建设要求工科高校立足于社会发展重大创新前沿建设,以培养学生创新能力为出发点的工科教育新体系和新方法[5]。这无疑对本科生科研训练工作提出了更高的要求。具体落实到计算机相关学科方面,新工科建设迫切需要聚焦大数据和人工智能两大热点技术创新方向。

1 存在的问题分析

与国内大多数高校本科生科研训练模式类似,软件工程系的科研训练为每个课题配备1名指导教师负责提供选题,训练团队成员为2~3人(设课题组长1名,组员1~2名)。课题的执行时间为2年,需经历完整的科研周期,包括立项、设计、实施、评价、总结、成果申报(投稿)、答辩等必要环节。课题的成果包括学术论文、专利、软件著作权、实物等。不少本科生通过参与科研训练完成了属于自己的论文、专利、软著,为其后续发展奠定了坚实的基础。然而,通过梳理和分析软件工程系近几年来的科研训练情况,作者发现存在如下亟待解决的问题。

问题1:本科生科研训练项目的选题没有突出“工程”特性,没有从系统化设计的高度体现软件工程学科特点。近年来,纵向科研课题大多数围绕数据挖掘、云计算、信息检索、自然语言处理、机器学习等人工智能热点方向展开,布置给学生的课题大多是“建模”和“算法”类课题。学生经过训练能够掌握一些人工智能研究的方法和技术,但所取的成果距离实际工程应用尚远,学生无法从智能系统设计的角度考虑现实问题的工程化解决方法,无法掌握大数据智能系统全栈设计开发思路,系统集成能力和代码开发能力也无法有效提升。

问题2:在智能计算和大数据工程前沿技术方面,科研训练课题未建立有效联系。现有的科研训练选题往往理论性过强,过于偏向学术研究层面。学生通过阅读论文、理论推导、模型设计、算法仿真、实验验证等手段对某一问题提出新的解决方法。考虑到绝大多数本科生未来工作主要集中在工业界,科研训练的选题应该瞄准工程应用难题,对企业级技术热点进行深入研究。具体来说,工业界为了对海量数据进行处理,一方面需要开发高效的处理算法,另一方面会选择低成本的开源大数据处理平台(如Hadoop、Spark、Flink等)。因此,作为科研训练选题,不仅要训练学生将这些平台搭建起来进行应用开发,更重要的是在这些平台上高效实现常用的人工智能(机器学习)算法,切实提高技术创新水平。

问题3:科研训练选题系统化程度低,未形成具有特色的教学团队和持续的高质量课题输出。不可否认,软件工程系近年来引进的年轻教师拥有较高的学术水平,他们工作在学科前沿,每年都会发表高质量的学术论文。然而,在教学上教师往往喜欢“单打独斗”,这种状态显然不能有效解决上述两个问题。当前以结果为导向的工程教育,本质上要求以系统化的团队支撑稳定的教学资源输出[6],团队中必须具备多个领域的专家,在统一的框架下合作,形成有效的课题开发机制。目前,科研训练教学团队的建设是大多数院系的短板。只有形成了有机统一的教学团队,形成一套自我改进的闭环课题开发机制,才能源源不断地贡献高质量的科研训练选题,才能培养出带有学校品牌印记的学生。

最后,希望形成一种教研相长的良性发展态势。由于大数据工程化技术和人工智能(机器学习)技术的结合本身就是非常有挑战性的研究课题,每年两大方向的顶级国际学术会议中都会报告两者结合的最新研究成果,因此,在科研训练过程中,本科生们不仅要成为合格的被训练者,更希望他们以开拓者的姿态发现新问题、提出新观点、找到新解法、产生新知识,最终让教学反哺科研。

2 项目群建设思路

为了解决上述三大问题,作者团队正在开展“大规模分布式机器学习本科生科研训练项目群建设”教学改革研究项目,尝试建立一套面向产出的工程化科研训练课题生产模式,形成一批高质量的本科生科研训练选题。

2.1 总体目标

面向新兴人工智能企业对高素质研发人才的需求,我们统一梳理软件工程系多位教师的研究成果,形成面向大规模分布式机器学习算法的本科生科研训练项目开发框架指南;在此指南指导下,逐步创建多个大规模分布式机器学习本科生科研训练项目并付诸实施,同时在新的教学大纲上对本科生科研训练涉及的理论知识体系进行支撑;对新设立的科研训练项目过程和结果进行充分评价,并将评价的结果反馈到新的科研训练项目开发过程中,最终形成项目群闭环生产。

2.2 建设内容

在总体目标的指导下,笔者拟从框架指南、具体项目、教学大纲调整3个方面进行建设。框架指南既是具体项目开发的指导性文件,又是整个项目开发团队合作工作的基础框架;教学大纲调整则是为保证具体项目实施效果的必要支撑。

2.2.1 本科生科研训练项目开发框架指南

科研训练项目开发框架指南是建立本科生科研训练项目群的先决条件。良好的框架指南能够使相关教师持续稳定地开发出具有品质保证的科研训练项目。框架指南的建立首先瞄准企业需求,项目群建设小组与院系长期合作的国际领先IT研发机构专家进行持续深入沟通,收集企业对于毕业生在知识结构、能力水平、职业素养等方面的现实需求。项目群建设小组针对这些需求,梳理系内教师的科研课题和技术能力,确定首批科研训练项目的技术选型,同时制定科研训练项目开发框架指南。该指南包括项目群建设小组工作过程、技术选型和融合、项目设计和管理、项目过程监督和控制、项目结果评价、项目反馈和持续改进等几个部分。该指南作为本科生科研训练项目群开发的指导性文件将贯穿整个科研训练项目开发和实施过程,并在此过程中持续修订。

2.2.2 大规模分布式机器学习本科生科研训练首批示范项目

项目群建设遵循循序渐进的原则,重在评价示范项目的执行效果。首批拟建设2~3个示范性项目,下面以两个正在进行的项目对项目设计原则进行示例。

示例1:基于Hadoop与Spark混合平台的高性能推荐算法。

采用Hadoop与Spark混合平台的目标是结合两者在存储和计算上的各自优势。Hadoop具有一个分布式存储系统存放海量数据。传统上使用Hadoop平台时,上层应用系统用MapReduce框架进行大规模分布式计算。在此课题中,将使用Spark平台的并行计算技术代替MapReduce。Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架。它效率高于MapReduce且支持更灵活的编程模型[7]。

本项目拟让学生在从部署混合平台出发,逐步在这个平台上建立一个大规模分布式关联规则挖掘算法,实现通用的购物篮分析。该算法首先将大量数据进行切割,并分配到Spark平台的各Slave节点上,每个节点进行频次分析;随后,Slave节点与Master节点交换频次信息,各节点建立局部的关联依赖有向无环图;接着再与Master节点通讯,交换局部有向无环图信息,建立全局依赖图;最后,各Slave节点在全局图的不同区域挖掘自己所需的关联规则。该算法将使用Spark提供的API进行实现。

学生在此过程中不但可以学会大数据平台的部署和工程开发方法,而且能将传统的关联规则挖掘算法进行分布式并行化以及适当扩展,最后还将使用海量数据评估算法的性能。

示例2:基于Map-Reduce模型的兴趣感知服务推荐方法。

兴趣感知型服务推荐方法,包含历史评论信息爬取和存储、基于关键词列表的用户兴趣提取、目标用户与候选服务历史用户相似度评分、目标用户对于候选服务个性化评分4个关键步骤。

学生需要在Map-Reduce分布式编程环境中对上述4个步骤分别进行并行化处理。其中对于步骤1的并行化较为简单,可以用现有的分布式爬虫工具实现。对于步骤2,要求将所有候选服务的评论转化为历史用户兴趣关键词集合,并对该过程进行并行化处理。对于步骤3,要求将候选服务的历史用户的所有评论转化为评论关键词集合,并对该过程进行并行化处理,同时将利用TF-IDF方法计算候选服务的历史用户兴趣关键词集合的权重向量过程进行并行化处理。对于步骤4,要求将为目标用户计算对每个候选服务的个性化评分的过程进行并行化处理。上述4个步骤均具有多个不同的算法可以选择,学生需要利用TripAdvisor网站上香港酒店预订数据测试这些算法的性能。

学生在设计并行化算法过程中,不但可以体会到对于不同的任务类型,处理框架和算法的技术要求不尽相同,而且能够使软件体系结构中的多种体系风格和设计模式得到很好的运用。最后,学生还将学会如何将这些算法作用于实际大规模数据并产生有意义的结论。

总之,未来的科研训练项目均要实现面向实际应用且在已有的通用分布式机器学习库(如Apache Mahout、Python sickit-learn等)中没有的算法。学生将利用分布式平台提供的编程模型和接口函数在系统工程的框架下从头设计实现相关机器学习方法。同时,要求小组成员在组长的领导下,运用工程管理方法,对项目的运行情况进行控制;要求组员采用先进的分布式配置管理工具(如Github等)按照软件工程过程的相关要求进行项目管理并形成阶段性文档。最后,项目群建设小组将在项目结束后持续评估该科研训练的效果。训练效果包括近期成果和长远效应。近期成果不仅包括科研训练的产出(如论文、专利、软著、系统实物等),还包括参与学生的主观体验(调查问卷)。“长远效应”包括科研训练学生能否在未来的实践性课程中获得更高的成绩,能否在未来的面试过程中获得更多公司的青睐,甚至能否在毕业5年内成长为公司技术骨干。这与“工程认证”的培养目标评价标准相一致[8]。项目群建设小组将会依据评估结果进行持续改进形成闭环机制。

2.2.3 相关教学大纲的修订

新科研训练课题的难度有所增加,为保证科研训练产生良好效果,本科生在基础知识上必须做好充足的准备。项目群建设小组拟对软件工程教学大纲进行进一步修订,形成“软件工程+大数据+人工智能”等新格局。首先,缩减传统软件工程的课程课堂教学学时数,例如传统的软件过程模型、传统软件测试方法、基础面向对象编程等,要求学生利用网络媒体自学。其次,进一步强调软件在各种系统构建中的基础性作用,增加“软件定义XX”的课程,拓展学生视野、提高学生软件开发能力。再次,强调数学类课程在大数据和人工智能中的基础性作用,增加最优化方法、统计建模等数学类课程。最后,增加云计算调度和资源管理、数据挖掘、机器学习、自然语言处理等人工智能选修课程,紧扣时代脉搏。

2.3 创新之处

大规模分布式机器学习本科生科研训练项目群建设是一项创新性非常强的工作。新的科研训练项目采用系统化、工程化的科研训练课题开发和管理模式。与传统模式相比,这一模式强调课程开发过程管理和持续稳定的成果输出,以适应新工科的要求。项目瞄准大数据人工智能时代市场需求,紧扣技术发展前沿,以其先进性吸引广大学生主动参与。项目并不一味强调理论基础的艰深和技术方案的复杂,而是以产出为导向,注重工程开发能力和研究创新能力相结合,强调以教师团队协作为基础、以课题融合为特色,重视对参训学生的短期成果和长期效应评价反馈和持续改进。

2.4 配套政策

各个层面的配套政策是保证科研训练项目群建设成败的关键。在学校层面,已经建设一整套科研训练管理体制,确立了国家级、省级、校级三级资助体系,为科研训练的开展提供了有力的资金支持。在学院层面,已经安排专门的管理人员进行项目监管,对项目各阶段的完成质量进行监督。在学系层面,系主任和学科(专业)秘书加入项目群建设小组,为项目开发提供“工程认证”达成度模型指导,同时综合各方面的反馈,为专业培养方案的调整提供支持。

3 结语

大规模分布式机器学习本科生科研训练项目群建设是一个长期的创新性教改过程。在这一过程中,笔者希望从现实应用需求出发,以导师的最新研究课题为依托,以大数据处理框架为基础,设计实现大规模分布式并行化机器学习算法,解决当前存在的前沿性、系统化、工程化不足的问题。同时,通过顶层设计将导师的科研训练纳入统一的技术框架和管理模式,通过积极的反馈评估,形成质量稳定的科研训练选题输出,促进特色教学团队形成。

猜你喜欢
训练项目本科生分布式
能为与应为:从本科生成绩单看绩点制的功能
浅析分布式发电对电力系统的影响
更 正1
更 正2
“Without Contraries is No Progression”: Contraries in William Blake’s “The Sick Rose”
An Analysis of the Absence of Maternal Care in The Bluest Eye
本科生论文流于形式
基于预处理MUSIC算法的分布式阵列DOA估计
大学生创新训练项目的实施与探索
试论高校拓展训练项目的安全管理