赞
踩
作者:王磊
更多精彩分享,欢迎访问和关注:https://www.zhihu.com/people/wldandan
目录
人工智能自1956年诞生以来,相关理论和技术持续演进。直到近十年,得益于深度学习等算法的突破、算力的不断提升以及海量数据的持续积累,AI才得以真正大范围地从实验室研究走向产业实践。未来AI除了重视技术创新以外,还更加关注工程实践和安全可信,这也构成了新的"三维"发展坐标。
--中国信通院《人工智能白皮书(2022年)》
人工智能(AI),包括ML和数据分析的子领域,是许多开发者和师生们感兴趣的热门话题。然而,尽管人工智能课程比比皆是,如高校课程以及许多在线MOOC教程,但我们会发现,在构建涉及AI的完整系统时,AI教育通常侧重于算法和技术,通常局限于优化模型精度。很少有课程关注AI与软件工程方面的结合。因此,逐渐兴起一门新兴学科-AI工程,通俗的讲,AI工程是一系列方法、工具和实践的集合,确保AI模型/软件的高效交付,具备可信、健壮性及可解释性,并持续地为用户创造价值。
最近阅读了《Teaching Software Engineering for AI-Enabled Systems》这篇论文,面对AI课程中很少有解决工程问题的课程现状,卡内基梅隆大学的Christian Kästner和Eunsuk Kang设计了一门新课程,向有ML背景的学生教授软件工程技术,在AI与软件工程结合的方向进行了探索,并分享了教授该课程的经验和相关教材,教材请参见https://github.com/ckaestne/seai/。
本次主要从论文中的课程设计、经验总结几方面介绍下本次的教学实践。
在设计课程时,考虑到数据科学家主要关注如何使用尖端技术构建模型和算法,软件工程师专注于如何通过业务代码构建AI系统。因此,课程重点围绕如何使用软件工程技术来构建更好的系统。从软件工程视角来看如何构建支持人工智能的系统,软件工程师通过哪些工作可以将机器学习的想法转化为可扩展和可靠的产品。AI工程重点关注设计、实施、运营和质量保证问题。
虽然AI组件(特别是ML模型)有明显的特征,但它们也与软件工程中的核心主题紧密相关,例如:
设计课程时,确定了如下假设和范围:
课程中确定了软件工程生命周期各阶段的主题,从广义上讲,课程涵盖:
课程设计目标是培养面向实战的AI工程经验。 课程基于电影流媒体think Netflix构建场景,通过模拟用户观看,并对数据进行分析,得出用户喜欢的电影类型。共创建了五个小组作业:
重点和先决条件:更好的解决方案是为来自任何背景的学生教授单独的部分——对于ML学生,我们将从零开始引入软件工程概念(例如,持续集成、版本控制、软件架构),而不是对先前的经验做出假设;对于软件工程学生,我们的课程可以从实用的ML管道和模型质量度量开始。对于软件工程硕士课程,理想的情况是,内容分成更小的部分,将其作为模块集成到我们现有的软件工程课程中,涉及需求、软件架构和质量保证。
仿真工程:构建和运行仿真器需要大量的工程工作,由于时间限制,我们无法在第一个产品中实现许多功能。例如,我们的模拟器中的观看行为并不是特别真实(例如,我们没有喜欢多部电影的高级用户,我们没有停止、重新开始或倒带电影的模型,我们没有明确地对人口统计数据或位置进行建模用户)。我们还发现,16万用户平均每秒产生 70个事件和 1个推荐请求的使用规模太低,无法让学生认真考虑运营成本和性能,这有时会导致相当肤浅的工程权衡和明显的答案。推荐电影的 ML 任务在计算上也没有足够的挑战性,无法在不同的学习技术之间提供有趣的权衡讨论。在未来的产品中,可能值得将模拟器扩展到更多用户,并探索涉及图片、音频或视频的其它学习任务。
实际基础:除了家庭作业中使用的电影推荐场景外,我们几乎在每一堂课中都使用不同的场景来讨论不同问题的广度以及做出系统特定设计和权衡决策的重要性。同时,可能值得更深入地探索一些场景,甚至具体的实现。
工具:由于人工智能是一个活跃的、快速发展的领域,我们努力为公平性和可解释性等新兴主题寻找标准技术或成熟的工具。虽然有一些工具(例如,谷歌的What-If工具),但大多数工具仍然是实验性的,难以用于教学。通过软件工程,可以形成一套成熟的工具和标准来满足AI系统开发人员和教育工作者不断增长的需求。
具有AI组件的系统在构建和维护方面具有挑战性。面向对人工智能感兴趣的学生教授软件工程,以培养更广泛的思维,而不是狭隘地关注静态数据集和模型质量,这是一次很有意义的课程探索。
同时,Gartner的研究表明,只有53%的项目能够从AI原型转化为生产。而AI 要成为企业的生产力,就必须以工程化的技术来解决模型开发、训练、预测等全链路生命周期的问题。AI工程的出现,正好能弥补这个短板。进一步,随着AI大规模的“平民化”,相信在不远的将来,应用场景的丰富会不断催熟AI工程,而AI工程则会对场景落地提供关键支撑,相辅相成。
[1]Christian Kästner, Eunsuk Kang, 2020. Teaching Software Engineering for AI-Enabled Systems. ICSE-SEET 2020.
[2]中国信通院《人工智能白皮书(2022年)》
说明:严禁转载本文内容,否则视为侵权。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。