谢作如 林淼焱
摘要:为了能让没有代码基础的学生也能顺利训练AI模型,作者分析了XEdu训练AI模型的核心代码,介绍了实现无代码训练AI模型的原理,并以QT、Gradio、VB等多种工具为例,展示无代码训练AI模型的XEdu插件编写过程,为一线教师和企业工程师提供了开发人工智能教学工具的新思路。
关键词:XEdu;无代码训练;深度学习
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2023)15-0065-03
人工智能教育的核心工作之一是让学生能够通过数据、算法和算力来训练相关模型。XEdu作为一款深度学习开发工具,能让学生通过简洁的代码完成各种SOTA模型的训练,即可快速搭建出AI应用系统,降低了学习人工智能的门槛。但是,没有代码基础的学生如何训练AI模型?当微软、百度、华为等IT企业相继推出无代码训练模型的平台时,笔者也在思考,能否为XEdu开发一个无代码的AI模型训练插件,以进一步降低学习门槛。
分析:XEdu训练AI模型的基本流程和代码
XEdu的核心模块是MMEdu,是基于国产计算机视觉算法包OpenMMLab做的封装。在设计MMEdu的时候,笔者对AI模型的基本流程做了梳理,归纳出四大步骤:①构建一个SOTA模型;②指定数据集路径、分类数量;③指定权重文件保存路径;④设定训练参数、开始训练。
实际上,训练模型代码(以Keras为例)之所以复杂,是因为大量的代码用于处理数据集和逐层构建神经网络模型。当MMEdu将数据集的格式做了规范,并且用SOTA模型的名称来简化模型搭建过程后,代码就变得非常简洁。XEdu团队最终设计的MMEdu训练AI模型的典型代码为6行,如图1所示的代码用于图像分类的模型训练,使用的是猫狗二分类数据集。
从图1所示的代码中可以看出,这是一个流程化(顺序结构)的指令序列。代码除了“LeNet”是专用名词外,其他无非是路径和类别数量,较容易理解。机器学习的参数很多,但MMEdu预设了默认值,唯一需要设置参数的是“epochs”(训练轮次)。如果选择其他的SOTA模型和数据集,代码需要修改的地方非常有限。
原理:无代码训练AI模型功能的实现
既然训练模型的代码如此简单,那么只要借助一款带界面设计功能的编程语言,或者网页表单,就能设计出一款“Step-by-step”(一步一步)训练AI模型的插件(全程不需要写一行代码),生成的代码可直接写入一个名为*.py的文件,调用Shell命令(Windows下调用CMD命令)即可开始AI模型的训练,具体流程如图2所示。
如图3所示是生成训练代码的核心函数,实际上仅仅使用了Python的字符串替换功能。
盘点:支持插件编写的编程工具介绍
由此可见,只要能设计程序界面的软件,都能用来开发无代码训练AI模型插件。常见的工具或者开发路径如下。
1.Python+GUI库
因为XEdu使用的是Python,所以选择Python的GUI(图形用户界面)库是最合理的,如QT、EasyGUI、unihiker库等。XEdu的一键安装包中内置了EasyTrain,是借助QT库开发的训练模型插件,界面如图4所示。
EasyTrain同时支持图像分类和目标检测两种方式,点击“更多参数”,将跳出新窗口提供OpenMMLab支持的所有模型训练参数,如优化器、隨机种子等。
2.Python+可快速搭建Web应用的库
用网页表单来选择、提交各种变量,是最自然的交互。借助Gradio、Remi和PyWebIO等可快速搭建Web应用的库,开发Web应用也很简单。其中,Gradio是一个开源的Python库,常用于搭建演示机器学习模型功能方面的程序,其代码非常简洁,关注的是输入和输出。Gradio支持通过浏览器上传各种文件,支持拍摄图像、录制声音和录制视频等功能,还支持实现多人共建数据集、内网穿透等原本不容易实现的功能。
此外,Remi和PyWebIO也是很不错的选择。相对来说,Remi更像一个Web版的GUI库,使用语法和Tkinter库(Python最经典的图形界面库)类似。
3.Python+Web开发框架
如果有Web应用的开发经验,可以选择Flask、Django和Tornado等的Web开发框架。而开发工作主要在前端,即网页模板,后端只需要生成并写入代码,再用os.system调用命令即可。浙江教育出版社出版的高中信息技术必修2中,有使用Flask搭建Web应用的学习内容。只要具备最基础的能力,就能写出这类插件。
此外,还可以在这个插件中集成图像标注、模型转换等功能。如果加上作业管理功能,就实现了一个支持多用户的算力管理平台,可将一台带GPU(哪怕是游戏显卡)的计算机转换为以Web为用户接口的算力服务器,访问方式如图5所示。
4.任何支持GUI的编程语言
中小学机房目前绝大多数使用的是Windows系统,为了获得更好的兼容体验,也可以使用VB、C#等工具来开发插件。以VB为例,设计输入框、选择框等交互控件非常容易,如图6所示。
生成*.py代码后再调用CMD命令来执行。如果生成的*.py文件和插件都运行在“XEdu一键安装包”的主目录下,那么参考代码如图7所示。
结语:人工智能教育需要更多工具
人工智能教育并不等同于编程教育,虽然二者关系非常密切。用无代码的方式训练AI模型,实际上并非仅仅为了降低难度,而是强调了训练模型属于流程化的工作,本来就不需要太多编程知识作为基础。当模型训练技术成熟后,用户在图形界面下操作自然更加方便。智能时代已经到来,期待有更多学科的教师突破学科壁垒,参与到人工智能教育中来。
参考文献:
[1]吴俊杰,戴娟,谢作如.中小学AI教育需要怎样的学习工具[J].中国信息技术教育,2022(12):4-10.
[2]谢作如.用Python写一个基于Web的物联网应用程序[J].中国信息技术教育,2021(09):78-81.
[3]谢作如,方建文.让学生真正理解数据、算法和算力——谈新一代人工智能教育教什么和怎么教[J].中小学信息技术教育,2023(06):8-10.