謝作如 林淼焱



摘要:為了能讓沒有代碼基礎的學生也能順利訓練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.