用人工智能解决真实问题的技术地图

2024-01-09 03:09谢作如
中国信息技术教育 2024年1期
关键词:人工智能教育

谢作如

摘要:随着深度学习技术的发展,人工智能的门槛逐步下降,借助大量数据和开源算法即可获得相应的智能,已经成为人们的共识。本文以“解决真实问题”为核心问题,介绍了适合青少年使用的模型训练和部署工具,并以“害虫识别”为例,介绍了具体的工作流程和技术工具,形成技术地图。

关键词:新一代人工智能;人工智能教育;XEdu

中图分类号:G434  文献标识码:A  论文编号:1674-2117(2024)01-0085-03

数据、算法和算力被公认为推动人工智能发展的三驾马车。随着深度学习技术的发展,人工智能的门槛逐步下降。从2021年开始,笔者陆续在本刊发表以“用人工智能解决真实问题”为核心的系列文章,介绍了具有代表性的人工智能开发工具。越来越多的教师开始认同,借助大量数据和开源算法,训练具备一定智能的模型,从而解决一些简单的真实问题,应成为中小学人工智能课程的核心内容。

2023年12月,笔者在第十一届中小学STEAM教育大会上介绍了一个AI开源课程的众筹计划。这个课程以真实问题解决为导向,以项目式学习的方式组织课程内容,引发了很多教师的关注和支持,有教师提出,能不能为一线教师提供一份用AI解决问题的技术地图,让教师们能快速入门?

用AI解决真实问题的流程分析

人工智能的开发框架很多,相关的工具也很多,但教师们常因缺少对工具的全面了解而很难设计出一份合理的技术地图,容易走弯路。因此,为了能更加清晰地表述,笔者以劳动和科学教育中常遇到的昆虫识别问题为例,结合一个害虫识别应用的开发过程来介绍各种技术工具的选择。

首先,要训练一个昆虫的分类或者识别模型。人工智能的核心是模型,用人工智能解决真实问题实际上可以等同为用模型来解决问题。要识别害虫,可以借助提供网络API服务的AI开放平台,也可以使用一个已经训练好的昆虫模型。但如果AI模型不是自己训练,显然有“攘人之美”之嫌。当然,遇到的真实情况常常是AI开放平台要收费或者没有相关功能,找到的预训练模型的识别效果不好或者根本找不到。而农场中出现的昆虫种类并不多,完全可以自行收集数据训练模型。

其次,训练好的模型需要部署为智能应用。应用模型也有多种选择,一种是将模型部署在服务器或者可以长时间开机的电脑上,提供WebAPI服务,使用带摄像头和Wi-Fi的开源硬件,将害虫的照片发回到Web服务器,然后得到推理结果。一般来说,只有较大的模型才需要这么做。另一种是直接将模型运行在开源硬件上,拍摄、识别和执行等功能全部整合在一起。能运行Python的开源硬件,绝大多数都支持ONNX的模型推理,如行空板、树莓派和爱克斯板等。只要模型不是太大,都能直接部署推理。

具体的流程分析如下页图1所示。而识别昆虫的模型,使用图像分类技术即可,选择常见的MobileNet模型约10M,ResNet18模型也才50M。以爱克斯板为例,即使不做OpenVINO加速,推理速度也很快。

训练AI模型的技术地图

对自行训练模型来说,收集数据是一件最核心的工作。因为算法是开源的,算力是购买的,对学生来说核心工作也只有数据收集、清洗等。一般来说,如果不追求精度,每个类别的昆虫图片有数十张就够了,采用迁移学习的方式,训练速度很快,甚至可以直接在网页端训练。这个训练模型的过程不需要写代码。

如果数据比较多,建议选择MMEdu来训练模型。用MMEdu训练模型,核心代码就六行。只要按照ImageNet的数据集格式,将昆虫图片放在不同的分类目录中即可。具体可以参考XEdu的帮助文件,或者打开浦育平台的“猫狗”“手写体数字”之类的数据集来查看。即使用MMEdu来训练,也有几种方式可以选择,如图2所示。

用浦育平台提供的服务器(容器)训练模型。浦育平台提供了GPU服务器,训练速度比普通电脑要快一些,唯一不方便的是需要将数据集打包上传到平台。

搭建本地XEdu环境训练模型。即使在浦育平台上,训练模型一般也要选择XEdu服务器,如果电脑能够安装Win7的64位,或者Win10、Win11等操作系统,就可以下载XEdu一键安装包,解压后训练环境就配置好了。XEdu提供了各种参考代码,改一下目录就可以使用了。

实际上,XEdu也提供了无代码训练模型的工具。当运行EasyTrain系列工具时,系统会打开一个网页,按照网页上的提供,将数据集放在相应的位置,一步一步操作,最后生成代码,并直接开始模型训练,如下页图3所示。

应用AI模型的技术地图

在模型训练结束后,接下来就是模型应用推理了。不同的AI模型有不同的推理框架,笔者推荐使用ONNX格式。这是一种非常通用的模型交换格式,推理环境的安装很容易,推理速度又快。MMEdu提供ONNX模型转换的功能,参考代码如“model.convert(checkpoint=in_file, out_file=out_file)”。如果使用EasyTrain工具,训练结束后都会提示要不要转换为ONNX。

用浦育平台的“AI体验”网页中图像分类模块训练的模型,也能转换为ONNX格式的模型。在平台的“项目”栏目输入关键字“tensorflow”,即可找到类似“模型转换:从TensorFlowJS到ONNX”的项目,任选一个,按照提示,即可完成模型转换。

对于ONNX模型的推理,实际上就属于传统编程的学习内容了。使用模型推理和使用一个Python的库没有任何区别。Mind+中有个名叫BaseDeploy的插件,安装后就能用图形化的方式写推理代码了。MMEdu在转换模型的同时,会产生Python参考代码,简洁易懂,其使用的是XEduhub库。对于浦育平台训练出来的ONNX模型,使用“mmcls= wf(task='mmedu',checkpoint= 'insect.onnx')”即可推理。圖4中的代码是将图片“insect01.jpg”进行了推理,并输出了结果。

结语

如上所述,笔者成功地完成了一个昆虫识别的AI应用。限于篇幅,本文没有展开介绍如何从摄像头中获取图片、如何根据推理结果做出不同的执行动作等。在这个过程中,学生有多种可选的方法和工具,具体要视情况作出合适的选择。而本文在介绍各种技术的过程中,也展示了人工智能教育区别于传统编程教育的最重要标志,那就是要训练AI模型。

猜你喜欢
人工智能教育
论人工智能教育的未来发展:基于学科建设的视角
高中阶段实施人工智能教育的思考
人工智能给教育技术带来的变革
人工智能在外语教学中的应用及研究热点
中小学人工智能教育现状调查及对策研究
人工智能教育对于培养中学生信息素养的作用
人工智能背景下的职业教育发展困境及对策研究
最近发展区理论对中小学人工智能教育的启示
借助APP inventor在农村小学开展人工智能教育的尝试
高中人工智能教育信息化教学模式