謝作如
摘要:隨著深度學習技術的發(fā)展,人工智能的門檻逐步下降,借助大量數據和開源算法即可獲得相應的智能,已經成為人們的共識。本文以“解決真實問題”為核心問題,介紹了適合青少年使用的模型訓練和部署工具,并以“害蟲識別”為例,介紹了具體的工作流程和技術工具,形成技術地圖。
關鍵詞:新一代人工智能;人工智能教育;XEdu
中圖分類號:G434? 文獻標識碼:A? 論文編號:1674-2117(2024)01-0085-03
數據、算法和算力被公認為推動人工智能發(fā)展的三駕馬車。隨著深度學習技術的發(fā)展,人工智能的門檻逐步下降。從2021年開始,筆者陸續(xù)在本刊發(fā)表以“用人工智能解決真實問題”為核心的系列文章,介紹了具有代表性的人工智能開發(fā)工具。越來越多的教師開始認同,借助大量數據和開源算法,訓練具備一定智能的模型,從而解決一些簡單的真實問題,應成為中小學人工智能課程的核心內容。
2023年12月,筆者在第十一屆中小學STEAM教育大會上介紹了一個AI開源課程的眾籌計劃。這個課程以真實問題解決為導向,以項目式學習的方式組織課程內容,引發(fā)了很多教師的關注和支持,有教師提出,能不能為一線教師提供一份用AI解決問題的技術地圖,讓教師們能快速入門?
用AI解決真實問題的流程分析
人工智能的開發(fā)框架很多,相關的工具也很多,但教師們常因缺少對工具的全面了解而很難設計出一份合理的技術地圖,容易走彎路。因此,為了能更加清晰地表述,筆者以勞動和科學教育中常遇到的昆蟲識別問題為例,結合一個害蟲識別應用的開發(fā)過程來介紹各種技術工具的選擇。
首先,要訓練一個昆蟲的分類或者識別模型。人工智能的核心是模型,用人工智能解決真實問題實際上可以等同為用模型來解決問題。要識別害蟲,可以借助提供網絡API服務的AI開放平臺,也可以使用一個已經訓練好的昆蟲模型。但如果AI模型不是自己訓練,顯然有“攘人之美”之嫌。當然,遇到的真實情況常常是AI開放平臺要收費或者沒有相關功能,找到的預訓練模型的識別效果不好或者根本找不到。而農場中出現的昆蟲種類并不多,完全可以自行收集數據訓練模型。
其次,訓練好的模型需要部署為智能應用。應用模型也有多種選擇,一種是將模型部署在服務器或者可以長時間開機的電腦上,提供WebAPI服務,使用帶攝像頭和Wi-Fi的開源硬件,將害蟲的照片發(fā)回到Web服務器,然后得到推理結果。一般來說,只有較大的模型才需要這么做。另一種是直接將模型運行在開源硬件上,拍攝、識別和執(zhí)行等功能全部整合在一起。能運行Python的開源硬件,絕大多數都支持ONNX的模型推理,如行空板、樹莓派和愛克斯板等。只要模型不是太大,都能直接部署推理。
具體的流程分析如下頁圖1所示。而識別昆蟲的模型,使用圖像分類技術即可,選擇常見的MobileNet模型約10M,ResNet18模型也才50M。以愛克斯板為例,即使不做OpenVINO加速,推理速度也很快。
訓練AI模型的技術地圖
對自行訓練模型來說,收集數據是一件最核心的工作。因為算法是開源的,算力是購買的,對學生來說核心工作也只有數據收集、清洗等。一般來說,如果不追求精度,每個類別的昆蟲圖片有數十張就夠了,采用遷移學習的方式,訓練速度很快,甚至可以直接在網頁端訓練。這個訓練模型的過程不需要寫代碼。
如果數據比較多,建議選擇MMEdu來訓練模型。用MMEdu訓練模型,核心代碼就六行。只要按照ImageNet的數據集格式,將昆蟲圖片放在不同的分類目錄中即可。具體可以參考XEdu的幫助文件,或者打開浦育平臺的“貓狗”“手寫體數字”之類的數據集來查看。即使用MMEdu來訓練,也有幾種方式可以選擇,如圖2所示。
用浦育平臺提供的服務器(容器)訓練模型。浦育平臺提供了GPU服務器,訓練速度比普通電腦要快一些,唯一不方便的是需要將數據集打包上傳到平臺。
搭建本地XEdu環(huán)境訓練模型。即使在浦育平臺上,訓練模型一般也要選擇XEdu服務器,如果電腦能夠安裝Win7的64位,或者Win10、Win11等操作系統(tǒng),就可以下載XEdu一鍵安裝包,解壓后訓練環(huán)境就配置好了。XEdu提供了各種參考代碼,改一下目錄就可以使用了。
實際上,XEdu也提供了無代碼訓練模型的工具。當運行EasyTrain系列工具時,系統(tǒng)會打開一個網頁,按照網頁上的提供,將數據集放在相應的位置,一步一步操作,最后生成代碼,并直接開始模型訓練,如下頁圖3所示。
應用AI模型的技術地圖
在模型訓練結束后,接下來就是模型應用推理了。不同的AI模型有不同的推理框架,筆者推薦使用ONNX格式。這是一種非常通用的模型交換格式,推理環(huán)境的安裝很容易,推理速度又快。MMEdu提供ONNX模型轉換的功能,參考代碼如“model.convert(checkpoint=in_file, out_file=out_file)”。如果使用EasyTrain工具,訓練結束后都會提示要不要轉換為ONNX。
用浦育平臺的“AI體驗”網頁中圖像分類模塊訓練的模型,也能轉換為ONNX格式的模型。在平臺的“項目”欄目輸入關鍵字“tensorflow”,即可找到類似“模型轉換:從TensorFlowJS到ONNX”的項目,任選一個,按照提示,即可完成模型轉換。
對于ONNX模型的推理,實際上就屬于傳統(tǒng)編程的學習內容了。使用模型推理和使用一個Python的庫沒有任何區(qū)別。Mind+中有個名叫BaseDeploy的插件,安裝后就能用圖形化的方式寫推理代碼了。MMEdu在轉換模型的同時,會產生Python參考代碼,簡潔易懂,其使用的是XEduhub庫。對于浦育平臺訓練出來的ONNX模型,使用“mmcls= wf(task='mmedu',checkpoint= 'insect.onnx')”即可推理。圖4中的代碼是將圖片“insect01.jpg”進行了推理,并輸出了結果。
結語
如上所述,筆者成功地完成了一個昆蟲識別的AI應用。限于篇幅,本文沒有展開介紹如何從攝像頭中獲取圖片、如何根據推理結果做出不同的執(zhí)行動作等。在這個過程中,學生有多種可選的方法和工具,具體要視情況作出合適的選擇。而本文在介紹各種技術的過程中,也展示了人工智能教育區(qū)別于傳統(tǒng)編程教育的最重要標志,那就是要訓練AI模型。