楚朋志,肖雄子彥,陳江平,徐季旻,熊振華
(上海交通大學a.學生創新中心;b.生物醫學工程學院,上海 200240)
2018年,教育部頒發《高等學校人工智能創新行動計劃》提出,“推動高校人工智能學科建設、人才培養、理論創新、技術突破和應用示范,為構筑人工智能發展優勢提供戰略支撐?!?020 年3月,教育部、發改委、財政部聯合印發《關于“雙一流”建設高校,促進學科融合加快人工智能領域學生培養的若干意見》,提出依托“雙一流”建設,深化人工智能內涵,構建基礎理論人才與“人工智能+X”復合型人才并重的培養體系,探索深度融合的學科建設和人才培養模式[1-4]。一系列政策表明,智能時代大潮呼喚高等教育優化人工智能專業新結構,系統化培養人工智能領域人才,為我國新一代人工智能發展提供戰略支撐。
然而在具體的人才培養過程中,我們也會遇到很多問題。首先,大量學生并沒有專業硬件可以進行實驗操作,造成了理論與實踐的脫節,往往在上完課后,無法通過實踐加深對算法及網絡的認知,最終導致紙上空談[5];其次,人工智能教學實踐環境建設門檻高,以機器學習和模式識別為例,目前主要有Matlab、Python、R 等不同編程語言,對深度學習來說,又需要搭建不同的框架,如TensorFlow[6]、Caffe[7]、MindSpore[8]、Pytorch[9]等。不同的環境的安裝配置對學生來說較為繁瑣,尤其對交叉學科中非工科專業的學生來講更是困難重重;同時,目前實踐環節中的教學案例較少,實踐案例有限且相互孤立,無法進一步提升學生能力。因此如何建設一個管理方便、操作便捷、利于學習、高性價比的人工智能實踐平臺至關重要。
上海交通大學學生創新中心人工智能實踐平臺是一個面向全校學生開放、周期性預約的高性能并行計算實訓平臺,包含了中央處理單元(Central Processing Unit,CPU)與圖像處理單元(Graphics Processing Unit,GPU)。其硬件結構包括2 個管理節點(CPU:E52620,內存:128 GB),其中一個為登錄節點,一個為管理控制節點;一套并行存儲(2 個IO 節點,300 TB 可用容量);14 個GPU計算節點(CPU:5118,GPU:1080TI,內存:128 GB);一套FDR 56 GB Infini-band 高速網絡[10]。
通常用每秒所執行的浮點運算次數(Floating Point Operations Per Second,FLOPS)來衡量電腦的計算能力,1 PFLOPS 為1024 TFLOPS,即一千萬億次浮點指令/s。該平臺單精度理論峰值約1 PFLOPS,可為每位用戶提供約為30 FLOPS的運算能力,具體架構見圖1。

圖1 人工智能實踐平臺硬件架構
Linux 資源管理工具(Simple Linux Utility for Resource Management,SLURM)[11]是一種可用于大型計算節點集群的高度可伸縮和容錯的集群管理器和作業調度系統,被世界范圍內的超級計算機和計算集群廣泛采用。SLURM維護著一個待處理工作的隊列并管理此工作的整體資源利用。它以一種共享或非共享的方式管理可用的計算節點(取決于資源的需求),以供用戶執行工作。SLURM 會為任務隊列合理地分配資源,并監視作業至其完成[12]。
SLURM 系統有3 種作業運行模式:交互模式,以srun命令運行;批處理模式,以sbatch 命令運行;分配模式,以salloc 命令運行。本文在集群中使用批處理方式sbatch命令來運行腳本,具體批處理的參數及作用見表1 所列。

表1 SLURM調度系統參數說明
Module工具的全稱是module-environment,用來專門管理環境變量的工具。在Linux中,當同一款編輯器、運行庫、軟件存在多個版本且多個版本都需要在不同的場景或人員使用時,如何配置這些環境變量是一個較為復雜的工程問題。而Module 工具則提供了一個簡單快速的方法。
安裝Module 工具,需要執行該指令進行初始化,完成source/usr/share/modules/init/bash之后,在實踐平臺中即可使用Module工具。常用的Module 指令及功能見表2 所列。

表2 Module命令功能說明
學生創新中心人工智能實踐平臺面向全校學生的課程及科創提供技術支持與服務,因此要考慮多種框架和網絡,而不同版本框架對驅動及環境的要求也不盡相同,于是安裝了如圖2所示的各類模塊。經過近3 年的測試運行,基本囊括了學生科創與科研所需的常用軟件及驅動。

圖2 人工智能實踐平臺常用軟件及驅動
Anaconda[13]是一個基于Python 編程語言的數據科學平臺,Anaconda的特點是擁有大量的科學包和一些依賴項。同時Anaconda支持創建虛擬環境,可以讓不同用戶在自己的環境下安裝和管理包。對于多用戶集群來說,這個特性將非常方便。因此,本架構方案中采用Anaconda進行深度學習環境的配置。
在選擇框架上做了基礎調研。在工業應用領域,TensorFlow 依然保有優勢,尤其在TensorFlow 1.2 版本融合Keras 作為高級獨立應用程序接口(Application Program Interface,API)之后,其在工業領域的優勢則更加明顯。在研究領域,PyTorch 的使用率在近2 年飛速提升。69%的CVPR 論文、75%以上的NAACL 和ACL 論文,以及50%以上的ICLR 和ICML 論文都選擇使用PyTorch[14]。與此同時,我們也積極推進國產框架的生態布局,在集群上部署了華為自研的MindSpore深度學習環境。它是一個全場景深度學習框架,旨在實現易開發、高效執行、全場景覆蓋三大目標,不僅對于API友好、調試難度低,同時支持云、邊緣以及端側場景。實踐平臺中使用Anaconda 集成的深度學習框架,如圖3 所示。

圖3 人工智能實踐平臺集成的深度學習環境
考慮到使用本平臺的學生專業背景與計算機能力的差異,開發了用戶友好的可視化界面,主要提供以下兩項功能:①云桌面,便于零開發基礎的同學進行一步步可視化操作,提升操作友好度;②云端Jupyter Notebook,可讓學生快速進行代碼驗證及案例調試,具體界面如圖4 所示。

圖4 人工智能實踐平臺可視化界面
由于硬件的數量有限,且為了提升資源的利用效率,制定了不同情況下的資源申請與使用方案,包括申請、續申請與算力提升申請。
初次申請:每期開始前,將設計預約問卷,通過學生創新中心官方發送預約通知,根據問卷反饋情況篩選100 名學生作為本期使用者,且為每個賬戶分配兩塊GPU的算力。在使用2 個月后,將自動回收賬號與資源,準備用于下一期資源開放申請。
續用申請:如有同學在上一期使用后,由于比賽或者項目的緊迫性仍需繼續使用資源,則需要填寫“續用申請說明”,并由課程導師簽字或出具相關證明,符合條件的同學將保留其賬號與資源,延續使用至下一期。
算力提升申請:為進一步激勵學生動手實踐和科研創新,同學們可申請提升算力(將原有的2 塊GPU算力提升到4 塊甚至6 塊)。提出申請的同學雖被重點支持,但對他們也同時提出了更高的審核要求,如所參加的科創競賽成績較優秀,已進入市賽、國賽等階段。
為了讓學生快速上手,運維教師負責編寫了詳盡的實驗操作手冊,該手冊以經典的MNIST手寫數字集為例,介紹了如何在平臺上使用顯卡對網絡進行訓練,如圖5 所示。

圖5 實踐平臺使用手冊
具體的操作實踐步驟如下:
(1)ssh登錄,建議使用工具MobaXterm;
(2)利用module指令加載所需模塊;
(3)利用Anaconda指令加載已安裝環境或自定義環境;
(4)使用SLURM調度系統的sbatch 指令提交測試腳本;
(5)通過sq指令查看任務運行狀態;
(6)如有報錯,通過錯誤日志輸出調整代碼;
(7)最后通過輸出日志查看輸出結果。
平臺面向全校學生預約使用,考慮到部分學生基礎較弱,為了提升他們的使用及學習體驗,在本平臺放置了一系列經典實踐案例與常用數據集(見表3)。

表3 經典實踐案例及數據集
經過近3 年的運行、管理與維護,該平臺每年服務學生數量1250人,其中本科生800人,研究生450 人。學生使用人工智能實踐平臺,在相關頂會、頂刊發表論文數十篇,圖6 為其中一篇CVPR作者致謝。

圖6 學生科研成果致謝
平臺在競賽方面也獲得豐富的產出,除支撐校內賽外,該平臺總計支撐了校內RoboMaster 機器人、VEX、RoboCup機器人、無人機、賽車隊等社團,獲市級以上獎項40 余項(見表4)。

表4 大賽獲獎
從硬件到軟件的一體化人工智能實踐平臺建設,包含了硬件的架構設計和軟件的系統設計,同時關于具體運維方式也給出了建設性方案。首先,利用SLURM的調度系統和Anaconda 集成環境為學生進行人工智能算法實踐類學習提供技術保障;其次,對于非工科學生,可視化界面操作及詳盡的指導手冊都較大提升了用戶使用友好度和操作的便捷性;最后利用規范化的申請管理方式,積極引導學生參與競賽和科創,不僅支撐發表了數十篇頂級會議論文,也助力學生賽隊斬獲了10 項冠軍及眾多賽事獎項。我們提供的一體化人工智能建設方案解決了學生實踐能力不足的問題,助力更多跨專業的學生掌握人工智能實踐技能,為我國“AI+X”復合型人才培養貢獻力量。