文章主题:人工智能, 深度学习, 算法, 软件工程

666AI工具大全,助力做AI时代先行者!

自1956年人工智能诞生以来,相关理论和技术不断取得进展。然而,近十年来,深度学习等算法的突破、算力的提升和海量数据的累积,使得AI终于从实验室研究走向产业实践。展望未来,AI的发展将不仅注重技术创新,更会强调工程实践和安全可信,这构成了新的“三维”发展坐标。

–中国信通院《人工智能白皮书(2022年)》

概述

人工智能,特别是机器学习和数据分析这两个子领域,已经成为众多开发者和学者们热捧的话题。虽然如今市场上充斥着各种人工智能课程,从大学课程到在线慕课教程,但我们在实际操作中经常会发现, most AI education tends to focus on algorithms and technology, with a tendency to optimize model accuracy. shockingly, few courses integrate AI with software engineering. As a result, an emerging field of AI engineering is gaining traction. Simply put, AI engineering is a collection of methods, tools, and practices that guarantee the efficient delivery of AI models/software, ensuring reliability, robustness, and interpretability, while continuously adding value for users.

最近阅读了《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使能系统时变得至关重要。在建立AI使能系统时,环境也发挥着至关重要的作用。软件工程师区分机器和世界,识别环境假设,并在环境背景下评估质量,这些概念对于构建支持AI使能系统也很重要。在软件工程中,模块化和结构化的失败是众所周知的,例如,在功能交互方面,需要仔细的设计和系统级测试。同样,强大的架构和质量保证制度(超出模型精度)在支持AI使能系统中发挥着重要作用。软件工程师开发了许多技术来监控系统、评估生产中的系统和自动化决策,包括A/B测试和持续部署,这些技术在构建支持AI使能系统时再次变为必不可少的部分。许多模型会变得庞大,学习、使用和版本管理成本高昂。但是,我们收集了大量分布式、可扩展系统的构建和运营,跟踪修订等相关知识,管理大规模配置。这些都有助于设计人员学习AI使能系统。

课程范围和知识点

设计课程时,确定了如下假设和范围:

结合软件工程的术语、技术和体系(例如测试覆盖率、架构视图、故障树),将软件工程的概念转换到AI使能系统。关注AI工程实现,不关注具体的AI技术。AI组件很大程度上被认为是一个黑盒,因此较少讨论其内部机制(例如,决策树、神经网络、符号人工智能);除了一些必备的基础知识之外,较少关注数据分析过程中各个步骤,因此,课程与其他AI技术课程不冲突。围绕具体场景决策和分析课程的实践设计,及其实施管道(例如,监控、自动部署、容器)的实战经验。

课程中确定了软件工程生命周期各阶段的主题,从广义上讲,课程涵盖:

需求:了解系统目标,缺乏的AI组件规范;识别和界定质量关键点(超出模型精度),设定Safety、Security、Fairness的期望;威胁分析和故障处理;规划如何处理错误。架构:考虑质量属性之间的平衡(例如,学习时间、推理延迟、模型大小、可更新性、可解释性),规划AI组件的部署位置和方式,数据来源,模型编排、面向服务的体系结构。实施和维护:设计可扩展的分布式数据和计算系统,用于实验、A/B测试、“Canary”版本发布和持续交付的基础实施,出处和配置管理,系统监控。质量保证:离线和生产中测量模型质量,保证数据质量,测试整个ML管道,Safety、Security、Fairness Analysis。流程:迭代和规划,跨学科团队合作,技术负债,制订道德决策。

课程任务

本文旨在探讨如何通过实践性强的课程设计,提升学生们在AI工程领域的实际操作能力。为实现这一目标,我们采用了基于电影流媒体平台Netflix的场景教学模式,通过模拟用户观影行为,并深入分析相关数据,以便找出学生们所喜爱的电影类型。为了达到更好的教学效果,我们设计了五个小组作业,鼓励学生们积极参与,从而在实践中不断积累和巩固AI工程的知识与技能。

建模基础和离线评估:从系统(Kafka流和API)收集数据,构建和评估模型(通常是协同过滤),以熟悉基础架构,练习基本ML技能,并加入所有团队成员。权衡分析:通过尝试和比较不同的建模技术,并总结经验进行权衡,专注于测量各种质量(超出模型精度)。基础架构部署和测试:将解决方案从Jupyter Notebook迁移到强大且可扩展的学习和推理基础架构,构建数据质量检查并测试整个基础架构,评估生产中的模型质量,并使用Docker容器将模型部署为REST API。模型更新:完全自动化模型更新(持续部署,包括自动的Canary发布),在不停机的情况下部署更新,并使用自研的基础架构在生产中进行A/B测试实验。反馈回路:分析系统中潜在的反馈回路和攻击场景,设计预防措施,并持续监控系统性能。

经验

核心要点与优先级:我们致力于为学生提供更具针对性的教学,无论他们来自何种背景。对于机器学习学生,我们从零开始引入软件工程概念,如持续集成、版本控制和软件架构等,避免了对先前经验的假设。而对于软件工程学生,我们的课程则从实用的机器学习管道和模型质量度量出发。对于软件工程硕士学位课程,理想的方案是将内容划分为更小的部分,并将其作为模块融入到我们现有的软件工程课程中,涵盖需求、软件架构以及质量保证等方面。

在仿真领域,设计和运行仿真器是一项繁重的工程任务。鉴于时间的紧迫,我们在首个产品中并未能够实现诸多功能。比如,我们的模拟器在模拟真实观众行为方面尚有不足,如缺乏针对多部电影的高级用户模拟,没有停止、重新开始或倒带电影的功能,以及对人口统计数据或地理位置的明确建模。此外,我们注意到,平均每秒16万用户产生70个事件和1个推荐请求的使用规模偏低,这使得学生在考虑运营成本和性能时过于草率,有时可能导致对工程权衡和答案的片面理解。另外,推荐电影的机器学习任务在计算难度上并不大,无法在不同学习技术之间引发有趣的权衡讨论。对于未来产品,我们考虑将仿真器拓展至更多用户,并探讨涉及图像、音频或视频等其他学习任务的可能性。

实际基础:除了家庭作业中使用的电影推荐场景外,我们几乎在每一堂课中都使用不同的场景来讨论不同问题的广度以及做出系统特定设计和权衡决策的重要性。同时,可能值得更深入地探索一些场景,甚至具体的实现。

工具:由于人工智能是一个活跃的、快速发展的领域,我们努力为公平性和可解释性等新兴主题寻找标准技术或成熟的工具。虽然有一些工具(例如,谷歌的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年)》

下一篇:【AI工程论文解读】02-聊聊机器学习系统中的技术债

AI GPT

AI时代,拥有个人微信机器人AI助手!AI时代不落人后!

免费ChatGPT问答,办公、写作、生活好得力助手!

搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!

Leave a Reply

Your email address will not be published. Required fields are marked *